Это упростило код, но проблемы не решило.
Дело в том, что весь цикл выглядит так
Код:
for i := 0 to Memo1.Lines.Count - 1 do
begin
if Pos('Value1', Memo1.Lines.Strings[i]) > 0 then
begin
Buffer := GetInfo(z);
if Pos('Multi', Buffer) > 0 then
Memo3.Lines.Add('Mnogo')
else
if Pos('Mono', Buffer) > 0 then
Memo3.Lines.Add('Malo')
else
Memo3.Lines.Add('Error')
end;
if Pos('Value2', Memo1.Lines.Strings[i]) > 0 then
begin
Buffer := GetInfo(z);
if Pos('Multi', Buffer) > 0 then
Memo3.Lines.Add('Mnogo')
else
if Pos('Mono', Buffer) > 0 then
Memo3.Lines.Add('Malo')
else
Memo3.Lines.Add('Error')
end;
if Pos('Value3', Memo1.Lines.Strings[i]) > 0 then
begin
Buffer := GetInfo(z);
if Pos('Multi', Buffer) > 0 then
Memo3.Lines.Add('Mnogo')
else
if Pos('Mono', Buffer) > 0 then
Memo3.Lines.Add('Malo')
else
Memo3.Lines.Add('Error')
end;
if Pos('Value4', Memo1.Lines.Strings[i]) > 0 then
begin
Buffer := GetInfo(z);
if Pos('Multi', Buffer) > 0 then
Memo3.Lines.Add('Mnogo')
else
if Pos('Mono', Buffer) > 0 then
Memo3.Lines.Add('Malo')
else
Memo3.Lines.Add('Error')
end;
end;
Как должен работать цикл.
Из Memo1 от начала и до конца, по очереди берется содержимое строки (z).
Потом еще один цикл проверяет содержит ли эта взятая строка Value1 или Value2 или Value3 или Value4. Когда становится понятно, какое Value содержится, то соответственно выбирается еще один цикл написанные именно под найденное Value, в нем мы передаем при помощи команды получаем значение Z. И снова цикл, чтобы определить, содержит ли Z Multi или Mono. Если содержит то в Memo3 выводим результат или Mnogo или Malo. Если не содержит то в Memo3 выводим Error.
Что на деле.
Циклы начинают работать. Работают. Но со 2-й или 3-ей строки Memo3 начинается полная пурга. Ввиде одних лишь Mnogo. И редко редко проскакивают Malo.
Как мне думается. Что-то не ладное творится в переменной Buffer. Или она не очищается или чего-то еще. Но записывая 1 раз Multi в ней то потом прога так и считает что там каждый раз Multi. Хотя
GetInfo(z) каждый раз туда пишет верные данные. Но то ли в Buffer дописывается что результат в конце, а цикл находит первое попавшееся.