如何根据备忘录中的行数删除备忘录中的行?

时间:2020-09-17 03:14:18

标签: delphi

晚安,我有一个备忘录,其中包含多个字符串,并且在许多行中,我想删除包含少于或多于七(7)个数字的行,而只保留那些恰好具有七(7)个数字的行。我正在尝试使用仅擦除每个备忘录的代码。

var
  cont, N: Integer;
begin
  cont := 0;
  N := Length(GetStrNumber(Memo2.Lines.Strings[cont]));
  //N = quantity of numbers on the line in the Memo

  while (cont <= Memo2.Lines.Count  - 1)  do
    if N <> 7 then  //If N is different from 7 then delete the line
    begin
      Memo2.Lines.Delete(cont)
    end
    else
      Inc(cont);

2 个答案:

答案 0 :(得分:4)

您仅检索第一行的计数。您需要在循环中为每一行执行检索,例如:

var
  cont, N: Integer;
begin
  cont := 0;
  while cont < Memo2.Lines.Count do
  begin
    N := Length(GetStrNumber(Memo2.Lines.Strings[cont]));
    if N <> 7 then
      Memo2.Lines.Delete(cont)
    else
      Inc(cont);
  end;
end;

答案 1 :(得分:1)

我对此并不陌生,所以以它的价值来考虑。 您对N的分配不在循环内,因此仅检查一次,即第0行。 因此,如果不等于7,则循环将删除所有行