Показать сообщение отдельно
  #2  
Старый 30.11.2021, 02:45
Delphi_RTTI Delphi_RTTI вне форума
Прохожий
 
Регистрация: 30.11.2021
Адрес: Киев
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Приблезительный перевод :
Код:
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" содержит массив байт.
Процедура декодирует данные из
входного потока и записывает результат
в исходящий. Кто-нибудь может это скорректировать?
Ответить с цитированием