blob: 85c9a40ab4a983fbfc7430101fdcfea562f18c09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
{$MODE objfpc}
program b64test;
uses classes, base64, sysutils;
var
b64encoder: TBase64EncodingStream;
b64decoder: TBase64DecodingStream;
BaseStream: TStream;
i, j: Integer;
buf: array[1..23] of Char;
begin
BaseStream := TMemoryStream.Create;
WriteLn('Encoded Size / Decoded Size / Data:');
for i := 1 to 22 do begin
BaseStream.Position := 0;
b64encoder := TBase64EncodingStream.Create(BaseStream);
for j := 1 to i do
buf[j] := Chr(i - j + 65);
b64encoder.Write(buf, i);
Write(b64encoder.Size: 2, ' ');
b64encoder.Free;
BaseStream.Position := 0;
b64decoder := TBase64DecodingStream.Create(BaseStream);
Write(b64decoder.Size: 2, ' ');
b64decoder.Read(buf, i);
buf[i + 1] := #0;
WriteLn(buf);
b64decoder.Free;
end;
BaseStream.Free;
end.
|