我如何将文件从磁盘上的文件读入内存中的数组?
另外,我注意到使用ReadLn只显示了第一行(看起来很明显,因为它是ReadLn,但我将如何阅读整篇文档?)
答案 0 :(得分:7)
function ReadFile(const FileName: string): string;
var
Strings: TStringList;
begin
Strings := TStringList.Create;
try
Strings.LoadFromFile(FileName);
Result := Strings.Text;
finally
Strings.Free;
end;
end;
将文件的内容返回到可以编入索引的字符串中,因此可以认为是一个数组。
或许你想要一个字符串数组而不是一个字符数组,在这种情况下,最简单的方法是直接使用字符串列表:
var
Strings: TStringList;
...
Strings := TStringList.Create;
try
Strings.LoadFromFile(FileName);
//can now access Strings[0], Strings[1], ..., Strings[Strings.Count-1]
finally
Strings.Free;
end;
答案 1 :(得分:7)
从Delphi XE 2010开始,您可以使用IOUtils.TFile.ReadAllLines
函数在一行代码中读取文本文件的内容。
class function ReadAllLines(const Path: string): TStringDynArray;
class function ReadAllLines(const Path: string; const Encoding: TEncoding): TStringDynArray; overload; static;