在Delphi中将两个文本文件加载到一个TMemo组件中的最佳方法是什么?

Sha*_*elt 4 delphi

假设我有两个文本文件(.txt),我有一个包含一个TMemo组件的表单.将两个文本文件快速加载到同一个Memo中的最佳方法是什么?

Dav*_*nan 9

使用a TStringList加载每个文件,然后使用该AddStrings方法将内容传输到备忘录.

var
  Tmp: TStringList;
...
Memo1.Lines.BeginUpdate;
try
  Memo1.Lines.Clear;
  Tmp := TStringList.Create;
  try
    Tmp.LoadFromFile(FileName1);
    Memo1.Lines.AddStrings(Tmp);

    Tmp.LoadFromFile(FileName2);
    Memo1.Lines.AddStrings(Tmp);
  finally
    Tmp.Free;
  end;
finally
  Memo1.Lines.EndUpdate;
end;
Run Code Online (Sandbox Code Playgroud)

实际上,这可以很容易地推广到这样一个可能有用的方法:

procedure AppendMultipleTextFiles(Dest: TStrings; const FileNames: array of string);
var
  FileName: string;
  Tmp: TStringList;
begin
  Dest.BeginUpdate;
  try
    Tmp := TStringList.Create;
    try
      for FileName in FileNames do
      begin
        Tmp.LoadFromFile(FileName);
        Dest.AddStrings(Tmp);
      end;
    finally
      Tmp.Free;
    end;
  finally
    Dest.EndUpdate;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这样的方法:

Memo1.Lines.Clear;
AppendMultipleTextFiles(Memo1.Lines, [FileName1, FileName2]);
Run Code Online (Sandbox Code Playgroud)