我正在将一些字符串写入TStringStream
中,并使用字符串分隔符将它们分开。
var
Stream : TStringStream;
i : integer;
Separator : string;
begin
Separator := '|';
Stream := TStringStream.Create('');
try
i := 0;
while(i < 5) do
begin
Stream.WriteString(IntToStr(i) + ' test' + Separator);
Inc(i);
end;
Stream.Size := Stream.Size - Length(Separator) * SizeOf(Char);
Stream.SaveToFile('.\test.txt');
finally
Stream.Free;
end;
end;
在循环结束时,我想删除最后一个分隔符:
Stream.Size := Stream.Size - Length(Separator) * SizeOf(Char);
它会产生以下test.txt
输出文件:
0 test|1 test|2 test|3 test|4 tes
Delphi XE7 中的 SizeOf(Char)
为2,但似乎TStringString
的每个字符使用一个字节。我想我不能认为它总是1字节,那么如何安全地从流中剪切出最后N个字符?