Приблезительный перевод :
Код:
procedure Base45_Decode(const AInput, AOutput: TStream);
var
ch, a, b: byte;
x: word;
begin
ch:= 0;
repeat
AInput.Read(ch, 1);
a:= _C2I[ch];
//
AInput.Read(ch, 1);
b:= _C2I[ch];
//
if (a = 255) or (b = 255) then exit;
x:= a + 45 * b;
//
if AInput.Position < AInput.Size then
begin
AInput.Read(ch, 1);
a:= _C2I[ch];
//
if a = 255 then exit;
x:= x + (a * 45 * 45);
//
ch:= x shr 8;
AOutput.Write(ch, 1);
end;
ch:= x and $FF;
AOutput.Write(ch, 1);
until AInput.Position = AInput.Size;
end;
"_C2I" содержит массив байт.
Процедура декодирует данные из
входного потока и записывает результат
в исходящий. Кто-нибудь может это скорректировать?