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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2014, 20:21   #1
halibad
Новичок
Джуниор
 
Регистрация: 27.01.2014
Сообщений: 2
Печаль Поиск строки, текстовые файлы

Ребята помогите пожалуйста реализовать такое...
Есть 2 текстовых файла (txt1 и txt2). Необходимо чтобы позаданному ключевому слову мы обращались к строке в txt1 и после этого смещались на 2 строки ниже и вставляли туда 1-ю [0] строку из txt2 и так далее до конца файла...

Код:
procedure TForm1.Button1Click(Sender: TObject);
 begin
    if opendialog1.Execute then
    richedit1.Lines.LoadFromFile(opendialog1.FileName);//подгружаем 1 файл
 end;
 
procedure TForm1.Button2Click(Sender: TObject);
 begin
    if opendialog2.Execute then
    richedit2.Lines.LoadFromFile(opendialog2.FileName);//подгружаем 2 файл
 end;
 
procedure TForm1.Button3Click(Sender: TObject);
 begin
      m:=strtoint(Edit2.text); // записываем в переменную сколько надо отступить от искомой строки
 
      Repeat
        k:=richedit1.lines.IndexOf(Edit1.text); //нашли строку по введеному Edit1.text
        richedit1.Lines[k+m]:=richedit2.Lines[z] ; // смещаемся на m количество позиций и вставляем строку с индексом z
        z:=z+1;
 
      Until richedit2.Lines.Count=z ;// До тех пор пока количество строк во 2-м richedit не уравняется с переменной z
end;
И вроде бы то что нужно, но программа топчется на одном месте , то есть вставляет поочереди все строки из richedit2 в richedit1 но в одно и тоже место (соответственно там остается последняя)...
Помогите как быть с циклом что не правильно...?

Последний раз редактировалось Stilet; 27.01.2014 в 20:46.
halibad вне форума Ответить с цитированием
Старый 27.01.2014, 20:52   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

А не проще выложить сюда 2 текстовых файла с исходником, и третий файл с результатом, и попросить результат получить программно? А то я пока читал задачу, чуть мозг себе не сломал.
doktor255 вне форума Ответить с цитированием
Старый 27.01.2014, 20:54   #3
halibad
Новичок
Джуниор
 
Регистрация: 27.01.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
А не проще выложить сюда 2 текстовых файла с исходником, и третий файл с результатом, и попросить результат получить программно? А то я пока читал задачу, чуть мозг себе не сломал.
секундочку... щас все будет)

В данном случае код должен цепляться за слово "Download" и спускаться на 2 строки (за что цепляться и на сколько перемещаться вниз должен указывать пользователь)
Вложения
Тип файла: txt tx1.txt (274 байт, 126 просмотров)
Тип файла: txt tx2.txt (26 байт, 124 просмотров)
Тип файла: txt itog.txt (294 байт, 121 просмотров)

Последний раз редактировалось Stilet; 27.01.2014 в 22:16.
halibad вне форума Ответить с цитированием
Старый 27.01.2014, 21:26   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  i, n, m: integer;
begin
  m:=strtoint(Edit2.text);
  n := 0;
  for i := 0 to RichEdit1.Lines.Count - 1 do
    if RichEdit1.Lines[i] = Edit1.Text then begin
      RichEdit1.Lines[i + m] := RichEdit2.Lines[n];
      inc(n);
  end;
end;
doktor255 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовые файлы Casillas1 Помощь студентам 10 22.05.2013 19:52
Текстовые файлы SVing Паскаль, Turbo Pascal, PascalABC.NET 23 13.05.2012 06:59
Текстовые файлы, преобразование строки(замена слов)) lusuj Помощь студентам 1 01.12.2008 16:58
Текстовые файлы на С Raptor Общие вопросы C/C++ 15 26.01.2008 21:06