Heute habe ich ein bisschen in Angleslayers Rumpelkiste gestöbert, da bin auf folgenden Eintrag gestoßen. Da hat mich die Neugier gepackt, und ich wollte wissen was dort codiert ist. Leider war der Code, den Angleslayer im Nachfolgenden Post verfasst hat, für mich unslesbar. Scheint sich wohl um die Skriptsprache eines exotischen Betriebssystems zu handeln ;).

Habe dann mal das Problem, einer ASCII-Kodierten Textdatei voller 0..F zu lesbaren Text umwandeln, in Pascal gelöst:

Geht sicher auch kürzer und weniger kompliziert, aber soll für diese Zwecke reichen.

Ich weiß jetzt über die größte Hollywoodlüge bescheid, danke Angleslayer.

program HextToASCII (input,output);
{reads PSEUDO-HEX from STDIN}
    var
    inHex : text;

    procedure convert (var inFile : text);
    {converts a ascii-formated File with a bunch of Hex-digits to readable text}

        type
        tIndex = 0..maxint;
        tcurrentDec = array [tIndex] of integer;

        var
        i : integer;
        currentDec : tcurrentDec;
        aktChar : char;

        function toDec ( inChar : char ) : integer;
        { got a Hex-char an gives a Dec integer }

            const
            HEXVAL='0123456789ABCDEF';

        begin
           toDec := pos(upcase(inChar),HEXVAL) -1 ;
        end;

    begin
        i := 1;
        while (not eof(inFile)) and (i < maxint) do
        begin

            read(inFile,aktChar);

            if (aktChar = char(10)) and odd(i) then
            begin
                {if you want a LineFeed(unix only)}
                {write(char(10));}
                i := i - 1;
            end
            else
            begin
                currentDec[i] := toDec(aktChar);
                    if not odd(i) then
                        write(char((currentDec[i-1] * 16 ) + currentDec[i]))
            end;
        i := i + 1;
       end 
    end;

begin
    Assign(inHex,'');
    Reset(inHex);
    convert(inHex);
    writeln();
end.

Next post: Grub2: “Error: fd0 read error”

Previous post: Island - rund um die Ringstraße - 2010