b64test.pp 774 B

1234567891011121314151617181920212223242526272829303132333435
  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. begin
  10. BaseStream := TMemoryStream.Create;
  11. WriteLn('Encoded Size / Decoded Size / Data:');
  12. for i := 1 to 22 do begin
  13. BaseStream.Position := 0;
  14. b64encoder := TBase64EncodingStream.Create(BaseStream);
  15. for j := 1 to i do
  16. b64encoder.WriteByte(i - j + 65);
  17. Write(b64encoder.Size: 2, ' ');
  18. b64encoder.Free;
  19. BaseStream.Position := 0;
  20. b64decoder := TBase64DecodingStream.Create(BaseStream);
  21. Write(b64decoder.Size: 2, ' ');
  22. for j := 1 to i do
  23. Write(Chr(b64decoder.ReadByte));
  24. WriteLn;
  25. b64decoder.Free;
  26. end;
  27. BaseStream.Free;
  28. end.