我在 Windows 10 中使用柏林。我尝试保存tList<string>
到文件。
我知道如何处理 tStringlist、tStreamWriter 和 tStreamReader,但我需要使用 tFileStream,因为应该添加其他类型的数据。
在以下代码中,读取数据的 Button2Click 循环引发了 eOutOfMemory 异常。当我将简单的字符串值分配给 _String 时,它运行良好,但如果我将 tList 值分配给相同的 _String ,似乎文件中写入了错误的数据。我无法理解 和 之间的_String := _List.List[i]
区别_String := 'qwert'
。
我如何写信tList<string>
给 tFileSteam?
procedure TForm1.Button1Click(Sender: TObject);
var
_List: TList<string>;
_FileStream: TFileStream;
_String: string;
i: Integer;
begin
_List := TList<string>.Create;
_List.Add('abcde');
_List.Add('abcde12345');
_FileStream := TFileStream.Create('test', fmCreate);
for i := 0 to 1 do
begin
_String := _List.List[i]; // _String := 'qwert' works well
_FileStream.Write(_string, 4);
end;
_FileStream.Free;
_List.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
_FileStream: TFileStream;
_String: string;
i: Integer;
begin
_FileStream := TFileStream.Create('test', fmOpenRead);
for i := 0 to 1 do
begin
_FileStream.Read(_String, 4);
Memo1.Lines.Add(_String);
end;
_FileStream.Free;
end;