Модератор: Tolik
function Encode(S: string): string;
var i,a,x,b: Integer;
Codes64:string;
begin
Codes64:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
for i:=1 to length(s) do
if ord(s[i]) mod 2 = 0 then S[i]:=chr(ord(s[i])+1)
else S[i]:=chr(ord(s[i])-1);
Result:='';
a:=0;
b:=0;
for i := 1 to Length(s) do
begin
x:=Ord(s[i]);
b:=b*256+x;
a:=a+8;
while a >= 6 do
begin
a := a-6;
x := b div (1 shl a);
b := b mod (1 shl a);
Result := Result + Codes64[x + 1];
end;
end;
if a>0 then Result:=Result+Codes64[(b shl (6-a))+1];
end;
PechalnikU писал(а):В readme к программе написано только, что скрипты, цитирую: "пишутся на обычном pascal". (У меня версия SAS 100330) А что именно за Pascal?
function Decode64(S: string): string;
const
Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Pos(s[i], codes64) - 1;
if x >= 0 then
begin
b := b * 64 + x;
a := a + 6;
if a >= 8 then
begin
a := a - 8;
x := b shr a;
b := b mod (1 shl a);
x := x mod 256;
Result := Result + chr(x);
end;
end
else
Exit;
end;
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9