你好,最近我用TFileStream代替了TFileStream。我从来不使用它,所以我对它有小问题。
我需要定义文件的行形式,所以我做了这样的事情:
var linia_klienta:array[0..30] of string;
AssignFile(tempPlik,'klienci.txt');
Reset(tempPlik);
i:=0;
While Not Eof(tempPlik) do
begin
Readln(tempPlik,linia_klient[i]);
inc(i);
end;
CloseFile(tempPlik);然后,当第二行需要时,我只是简单地
edit1.text = linia_klienta[1];发布于 2011-12-12 16:04:19
如果需要读取文本文件并访问每一行,请尝试使用带有该类的TStringList类,您可以加载文件、读取数据(使用索引访问每行)并将数据保存回。
像这样的东西
FText : TStringList;
i : integer;
begin
FText := TStringList.Create;
try
FText.LoadFromFile('C:\Foo\Foo.txt');
//read the lines
for i:=0 to FText.Count-1 do
ProcessLine(FText[i]); //do something
//Add additional lines
FText.Add('Adding a new line to the end');
FText.Add('Adding a new line to the end');
//Save the data back
FText.SaveToFile('C:\Foo\Foo.txt');
finally
FText.Free;
end;
end;
end;发布于 2011-12-12 16:52:43
你可以使用TStreamReader / TStreamWriter的新版本,这里有一个使用TStreamReader的例子.这仅用于操作文本文件。
var
SR : TStreamReader;
line : String;
begin
SR := TStreamReader.Create('D:\test.txt');
while not (SR.EndOfStream) do
begin
line := SR.ReadLine;
ShowMessage(line);
end;
SR.Free;
end;发布于 2011-12-12 19:59:28
TStream及其直系后代大多是低级访问类。他们主要处理通用缓冲区。还有一些更专门的类从流中下降或使用流来执行更高级别的任务。
由于Delphi1 TReader和TWriter可以直接用于读取和写入Delphi类型(包含字符串),但它们的设计并不是为了处理“面向行”的文件(不幸的是,它们的设计过于考虑到组件属性流,而不是作为一个通用框架)。
涡轮功率SysTools有一个不错的TStAnsiTextStream类,它以类似于TextFile的方式实现了面向行的文本文件访问。自从Delphi2009以来,新类(参见opc0de答案)实现了相同的访问,而不需要第三方库(而且,由于Delphi2009扩展代码页支持,包括Unicode),它们支持不同的编码。
https://stackoverflow.com/questions/8477016
复制相似问题