对Delphi TMemo中的每一行执行某些操作

den*_*enn 2 delphi delphi-7

我需要阅读每一行memo1.lines并对其执行特定操作.我试过这个:

procedure TForm1.Button2Click(Sender: TObject);
var
  zoznam: TStringList;
  Line: string;
  i       : Integer;
begin
  zoznam := TStringList.Create;
  zoznam.Assign(Memo1.Lines);
  for i := 0 to zoznam.Count-1 do
  begin
    edit1.Text := Memo1.Text;
    Button1.Click;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但是,它将每一行都放入一个字符串中,我想分别读取每一行(读一行,做一些事情,阅读下一行,做一些事情......)

Rem*_*eau 6

TStrings有一个Strings[]用于访问单个字符串的属性:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  Line: string;
  zoznam: TStringList;
begin
  zoznam := TStringList.Create;
  try
    zoznam.Assign(Memo1.Lines);
    for i := 0 to zoznam.Count-1 do
    begin
      Line := zoznam.Strings[i]; // or: Line := zoznam[i];
      //...
    end;
  finally
    zoznam.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

或者,您可以直接遍历备注行:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  Line: string;
begin
  for i := 0 to Memo1.Lines.Count-1 do
  begin
    Line := Memo1.Lines.Strings[i]; // or Line := Memo1.Lines[i];
    //...
  end;
end;
Run Code Online (Sandbox Code Playgroud)

  • `Strings`是`TStrings`的默认属性,因此根本不需要它.`Memo1.Lines [i]`(或`zosnam [i]`)就是必要的. (3认同)