Советы по Delphi

Битное кодирование/декодирование II


Пришло от читателя письмо:

Хочу предложить еще одну реализацию алгоритма декодирования base64. Код проверен, работает без глюков. .

С удовольствием публикую данный код:

Const
Base64Table='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';

function Base64Decode(cStr:string):string;
var ResStr:string;
DecStr:string;RecodeLine : array [1..76] of byte;f1,f2 : word;l:integer;beginl :=length(cStr);ResStr:='';for f1:=1 to l doif cStr[f1]='=' then RecodeLine[f1]:=0else RecodeLine[f1]:=pos(cStr[f1],Base64Table)-1;f1:=1;while f1<length(cStr) dobeginDecStr:=chr(byte(RecodeLine[f1] shl 2)+RecodeLine[f1+1] shr 4)+chr(byte(RecodeLine[f1+1] shl 4)+RecodeLine[f1+2] shr 2)+chr(byte(RecodeLine[f1+2] shl 6)+RecodeLine[f1+3]);ResStr:=ResStr+DecStr;inc(f1,4);end;Base64Decode:=ResStr;end;
[000782]



Содержание раздела