1
2// base64-encodes data from StdIn and writes the output to StdOut
3// (c) 1999 Sebastian Guenther
4
5{$MODE objfpc}
6
7program b64enc;
8uses classes, base64, sysutils;
9var
10  b64encoder: TBase64EncodingStream;
11  InputStream, OutputStream: TStream;
12  IsEnd: Boolean;
13begin
14
15  InputStream := THandleStream.Create(StdInputHandle);
16  OutputStream := THandleStream.Create(StdOutputHandle);
17
18  b64encoder := TBase64EncodingStream.Create(OutputStream);
19
20  while not IsEnd do
21    try
22      b64encoder.WriteByte(InputStream.ReadByte);
23    except
24      on e: EStreamError do IsEnd := True;
25    end;
26
27  b64encoder.Free;
28  InputStream.Free;
29  OutputStream.Free;
30end.
31