晚安,我有一个备忘录,其中包含多个字符串,并且在许多行中,我想删除包含少于或多于七(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);
答案 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,则循环将删除所有行