将文本文件读入数组

时间:2011-09-01 23:28:14

标签: delphi

我如何将文件从磁盘上的文件读入内存中的数组?

另外,我注意到使用ReadLn只显示了第一行(看起来很明显,因为它是ReadLn,但我将如何阅读整篇文档?)

2 个答案:

答案 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;