Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск и замена строки в текстовом файле [D7, WinXP]


Helper ©   (2004-07-08 16:38:00) 

Уважаемые программеры, помогите с решением.
Только начал изучать Делфи,попалась такая задачка, помогите реализовать :
Есть текстовый файл надо его открыть, допустим в Memo, найти в    нём строку напр. ( Delphi) и заменить её на напр.   ( Borland).

Исходные коды не помешали бы.

Зарнее Вам благодарен.


Helper   (2004-07-08 20:38:00) [1]

sskты знаеш как это реализовать ,помоги пожалуйста


Helper   (2004-07-08 19:08:00) [2]

sskСпасибо огромное помогло, и всем кто отвечал также спасибо

sskвот ещё маленький вопросец, а как сделать так чтоб после того текста который я вставил, эта рамка не перемещалась в сторону, что б рамка была фиксирована.


ssk   (2004-07-08 19:03:00) [3]

посмотрел я исходник. все решается в 4 строки, если я правильно понял автора вопроса.


Mim1   (2004-07-08 18:59:00) [4]

В принципе те задачи котрые нельзя описать словами не решаемы.


Helper   (2004-07-08 18:43:00) [5]

Ушло 10 кб.


ssk   (2004-07-08 18:37:00) [6]

давай serpantin@list.ru


Helper   (2004-07-08 18:36:00) [7]

Что то у меня оно не меняет то значение на новое, могу в принципе прислать пример на почту, что б было понятней


ssk   (2004-07-08 17:44:00) [8]

честно говоря, не вижу никакой проблемы. сделал пример, где есть твоя строка:


var
 s: string;
begin
 s:='до символа $Os после символа'; // старая строка
 ShowMessage(s); // показываем
 s:=StringReplace(s, '$Os', 'XP', [rfReplaceAll]); // сделали новую строку
 ShowMessage(s); //показываем
end;


Zhekson   (2004-07-08 17:42:00) [9]

Ну в любом случае Вы ищете кусок строки, которая идентифицирует искомую вами комбинацию. Вот её и вставьте в: "
Memo1.Text:=StringReplace(Memo1.Text, '???', ' Borland ', [rfReplaceAll]); "


Zhekson   (2004-07-08 17:36:00) [10]

я имел в виду, попробуй пробелы до и после своих слов поставить.


Helper   (2004-07-08 17:33:00) [11]

напрмер мне надо найти вот такую строку :

Операционная система : [$Os         ]

Надо в файле найти вот это - $Os и заменить например на Windows XP, в файле оно встречается 1 раз.


ssk   (2004-07-08 17:26:00) [12]

напиши сюда свою строку


Helper   (2004-07-08 17:18:00) [13]

"и как по Вашему можно определить именно то слово, если их в тексте, допустим, 20?"

Нет оно там точно 1, больше не должно быть

"Memo1.Text:=StringReplace(Memo1.Text, ' Delphi ', ' Borland ', [rfReplaceAll]); - попробуй так."

Выше написал, что так не получается :(.


Zhekson   (2004-07-08 17:08:00) [14]

Memo1.Text:=StringReplace(Memo1.Text, ' Delphi ', ' Borland ', [rfReplaceAll]); - попробуй так.


ssk   (2004-07-08 16:59:00) [15]

и как по Вашему можно определить именно то слово, если их в тексте, допустим, 20?


Helper   (2004-07-08 16:57:00) [16]

Memo1.Text:=StringReplace(Memo1.Text, 'Delphi', 'Borland', [rfReplaceAll]);

Этот код немного не подходит, но всё равно спасибо.
Обьясню почему:
У меня есть заготовка в текстовом файле, она имеет много строк и букв, где - то в середине находится то слово которое мне надо заменить, приведённый выше пример заменяет всё полностью, а мне надо только то слово.


MBo   (2004-07-08 16:44:00) [17]

найти - Pos
заменить - StringReplace или Delete/Insert


ssk   (2004-07-08 16:43:00) [18]

Memo1.Text:=StringReplace(Memo1.Text, 'Delphi', 'Borland', [rfReplaceAll]);


Наверх

Титульная страница Поиск, карта сайта Написать письмо