Пример TWriter/TReader

Вот что вы должны cделать для того, чтобы с помощью TWriter/TReader записать строку в поток. До сих пор для простоты я использую TMemoryStream.

Ключевыми являются вызовы Read/WriteListBegin и Read/WriteListEnd. Без них вы получите исключение.

procedure TForm1.Button1Click(Sender: TObject);
var sWrite,sRead : string[25];

MyStream : TMemoryStream;
MyWriter : TWriter;
MyReader : TReader;
begin
MyStream := TMemoryStream.Create;
MyStream.SetSize(4096);
MyWriter := TWriter.Create(MyStream,4096);
sWrite := 'sWriteContents';

MyWriter.WriteListBegin;
=O4>MyWriter.WriteString(sWrite);
MyWriter.WriteListEnd;
MyWriter.free;

MyStream.Seek(0,0);

MyReader := TReader.Create(MyStream,4096);
MyReader.ReadListBegin;
sRead := MyReader.ReadString;
MyReader.ReadListEnd;
MyReader.free;

Label1.Caption := sRead;
MyStream.free;
end;