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.