Показать сообщение отдельно
  #3  
Старый 05.09.2008, 14:23
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Это упростило код, но проблемы не решило.

Дело в том, что весь цикл выглядит так
Код:
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 дописывается что результат в конце, а цикл находит первое попавшееся.
Ответить с цитированием