Kodierung könnte wie folgt aussehen :
Delphi-Quellcode:
input : string[8];
output :array[0..7] of byte;
for i :=0 to 7 do
begin
case ord(string[i+1]) of
48..57 : output[i] := ord(string[i+1])-48; // Zahlen minus Offset
65..90 : output[i] := ord(string[i+1])-65+10; // Großbuchstaben minus offset +bereich der Zahlen
else
FEHLER !!!
end;
end;
ergibt Werte zwischen 0 und 35. Dekodierung eben genau andersrum.
Packen in DWord oder ähnliches
Delphi-Quellcode:
input string[8];
input: array[0..7] of byte;
res : DWord;
res := 0;
for i :=0 to 7 do
begin
res := res+36*i*input[i];
end;
auspacken aus DWord
Delphi-Quellcode:
input string[8];
input : DWord;
output: array[0..7] of byte;
for i :=7 downto 0 do
begin
output[i]:= input div (36*i);
input := input -(input div (36*i));
end;
Alles ungetestet, aber ich hoffe die Idee dahinter ist klar.