Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2010, 09:07   #1
alekstav
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию работа с циклом

Здравствуйте.
Подскажите, что исправить в коде.
Программа последовательно открывает файлы txt и ищет в них ключевое слово, в случае если слово нашлось, она должна записать адрес файла в Мемо3, который она открыла, а если не нашлось, то в Мемо3 не нужно нечего записывать.
Сейчас если в файле не встретилось искомое слов, то она вместо того чтоб в Мемо3 нечего не записывать, вписывает содержимое предыдущей ячейки в которой выполнилось условие.
Например:
так хотелось бы:
С:\1\1.txt
С:\1\2.txt
С:\1\4.txt

А вот как есть:
С:\1\1.txt
С:\1\2.txt
С:\1\2.txt
С:\1\4.txt
Помогите, пожалуйста.

Delphi
Код:
var
           a_mas:array[1..SIZE] of string;// массив содержаший пути к файлам   
           i_mas: integer; 
                i:integer;
                d : string;
begin
      
     for  i_mas:=1 to 4 do 
          begin
             memo2.Lines.LoadFromFile(a_mas[i_mas]);
            for i:=0 to (memo2.lines.count-1) do  
              begin
                if pos (edit3.Text, memo2.Lines[i])<>0 then  
                d := (a_mas[i_mas]);
              end;
           Form1.Memo3.Lines.Add(d);
      
        end;
end;
alekstav вне форума Ответить с цитированием
Старый 31.12.2010, 09:18   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Ошибка вот сдесь.
Вы пишете:
Код:
for i:=0 to (memo2.lines.count-1) do  
              begin
                if pos (edit3.Text, memo2.Lines[i])<>0 then  
                d := (a_mas[i_mas]);
              end;
           Form1.Memo3.Lines.Add(d);
А надо:
Код:
for i:=0 to (memo2.lines.count-1) do  
              begin
                if pos (edit3.Text, memo2.Lines[i])<>0 then                   
                  Form1.Memo3.Lines.Add(a_mas[i_mas]);               
              end;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel с циклом Alkifr Помощь студентам 1 30.10.2010 08:38
Задача в паскале. Работа с циклом while do. Йохан Шмидт Помощь студентам 12 28.07.2010 10:43
Работа с циклом в StringGrid-e artemavd Общие вопросы Delphi 2 20.07.2009 22:27
Помогите с циклом Almost_Famous Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 27.03.2008 21:08
Задача с циклом POPOV Общие вопросы Delphi 13 01.02.2008 20:33