b64test2.pp 820 B

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