开发者

Read a text file into an array

How would I go about reading a text file from a file on disk into an array in memory?

Also, I noticed using ReadL开发者_如何学Cn only shows the first line (seems kind of obvious, since it is ReadLn, but how would I go about reading the whole text document?)


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;

That returns the file's contents in a string which can be indexed and so could be considered to be an array.

Or perhaps you want an array of strings rather than an array of characters, in which case it's easiest just to use the string list directly:

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;


Starting with Delphi XE 2010 you can use the IOUtils.TFile.ReadAllLines function to read the content of text file in a single line of code.

class function ReadAllLines(const Path: string): TStringDynArray;
class function ReadAllLines(const Path: string;  const Encoding: TEncoding): TStringDynArray; overload; static;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜