delphi - 对 Delphi TMemo 中的每一行做一些事情

标签 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;

但是,它将每一行都变成一个字符串,我想分别读取每一行(读取一行,做某事,读取下一行,做某事,...)

最佳答案

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;

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

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;

关于delphi - 对 Delphi TMemo 中的每一行做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053942/

相关文章:

Delphi 7 32位执行并等待64位进程

sql - 在delphi中存储过程

delphi - 是否可以在 Delphi 中添加 "assert"作为关键字?

delphi - 使用Delphi进行SQLite归档

delphi - 将字符串从代码页 1252 转换为 1250 并返回

delphi - TClient数据集: Is there a way to make a StringField behave like an IntegerField when setting an index?

delphi - 按名称将一个单元中的现有方法分配给另一个单元中的通用 TMethod

delphi - 编译时播放声音

delphi - 将组件从 Delphi 7 迁移到 XE2

delphi - 将字节值广播到 Delphi ASM 中的所有 16 个 XMM 插槽