【问题标题】:Do something with each line in a Delphi TMemo对 Delphi TMemo 中的每一行做一些事情
【发布时间】:2015-03-14 20:40:39
【问题描述】:

我需要阅读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;

但是,它将每一行都放在一个字符串中,我想单独读取每一行(读取一行,做某事,读取下一行,做某事,...)

【问题讨论】:

    标签: delphi delphi-7


    【解决方案1】:

    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;
    

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

    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;
    

    【讨论】:

    • StringsTStrings 的默认属性,因此根本不需要它。 Memo1.Lines[i](或zosnam[i])就足够了。
    • 我在示例中确实提到了该语法。
    猜你喜欢
    • 2018-06-18
    • 2015-10-20
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多