Actually here is real code
[pascal]
procedure WriteString(ToStream:TStream; Str : AnsiString);
var
i : Integer;
begin
i := Length(Str);
ToStream.WriteBuffer(i, SizeOf(Integer));
ToStream.WriteBuffer(Str[1], i);
end;

function ReadString(FromStream:TStream) : String;
var
i : Integer;
begin
FromStream.ReadBuffer(i, SizeOf(Integer));
SetLength(result, i);
FromStream.ReadBuffer(result[1], i);
end;
[/pascal]