Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск и замена строк... 
:(
    Опции темы
Borland_Delphi_6
Дата 14.5.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Есть html файл, в котором постоянно встречаются строки типа "http://host.ru", их необходимо заменить на строку "http://myhost.ru". Как такое можно сделать? sad.gif


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
<Spawn>
Дата 14.5.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Запихиваешь файл в TStringList, затем делаешь цикл, где не каждой итерации юзаешь StringReplace


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Vit
Дата 14.5.2004, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Код
with TStringList.create do
 try
    LoadFromFile('C:\MyFile.html');
    text:=StringReplace(text, 'http://host.ru','http://myhost.ru', [rfReplaceAll]);
    SaveToFile('C:\MyFile.html');
 finally
   free;
 end;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Borland_Delphi_6
Дата 14.5.2004, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Vit
Спасибо, то что нужно! thumbs-up.gif


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
CacheY
Дата 10.6.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.8.2004

Репутация: нет
Всего: нет



ктонибуть может объяснить, как реализовать многострочную замену текста в Memo?
и какие параметры у функции StringReplace нужно использовать?
PM MAIL ICQ   Вверх
Негодяй
Дата 10.6.2005, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Порядочный
***


Профиль
Группа: Завсегдатай
Сообщений: 1513
Регистрация: 13.2.2005
Где: Kazakhstan, Almat y

Репутация: нет
Всего: 32



Цитата(CacheY @ 10.6.2005, 15:40)
многострочную замену текста в Memo

У Memo должно быть свойтво Strings. И делаешь тоже самое что и в предудущих ответах было написано.

PM MAIL   Вверх
CacheY
Дата 10.6.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.8.2004

Репутация: нет
Всего: нет



Цитата
Цитата(CacheY @ 10.6.2005, 15:40)
многострочную замену текста в Memo

У Memo должно быть свойтво Strings. И делаешь тоже самое что и в предудущих ответах было написано.

хм... чтото не пойму, что именно нужно сделать...
как бы феня в чем - пишу текстовый редактор, текст вешается на Memo, надо сделать многострочную замену текста, тоесть чтобы можно было искать и заменять текст не по одной строчке, а по нескольку строк
PM MAIL ICQ   Вверх
Vit
Дата 10.6.2005, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Memo1.text:=StringReplace(memo1.text, 'строка1','строка2', [rfReplaceAll]);


Вообще есть такой чудный пакет компонентов SynEdit - там очень продвинутое мемо которое имеет очень мощные возможности для поиска и замены с множеством опций, в плодь до регулярных выражений.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
CacheY
Дата 10.6.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.8.2004

Репутация: нет
Всего: нет



Цитата(Vit @ 10.6.2005, 21:47)
Memo1.text:=StringReplace(memo1.text, 'строка1','строка2', [rfReplaceAll]);


Вообще есть такой чудный пакет компонентов SynEdit - там очень продвинутое мемо которое имеет очень мощные возможности для поиска и замены с множеством опций, в плодь до регулярных выражений.

а что такое memo1.text, тот что в скобках...?
PM MAIL ICQ   Вверх
Poseidon
Дата 11.6.2005, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(CacheY @ 10.6.2005, 22:07)
а что такое memo1.text, тот что в скобках...?
Текст, в катором ты хочешь сделать замену 'строка1' на 'строка2'. Результатом функции будет текст, с уже замененными участками, каторый передается обратно в Мемо.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Akella
Дата 11.6.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

StringReplace(где искать, старое значение, новое значение, [rfReplaceAll, rfIgnoreCase]);

rfReplaceAll - заменять по всему тексту (первый параметр)
rfIgnoreCase - не учитывать регистр символов

Добавлено @ 08:28
Цитата из справки
Цитата

TReplaceFlags indicates how to perform a search-and-replace operation

Unit

SysUtils

Delphi syntax:

type TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);

C++ syntax:

enum SysUtils__93 { rfReplaceAll, rfIgnoreCase };

typedef Set<SysUtils__93, rfReplaceAll, rfIgnoreCase>  TReplaceFlags;

Description

TReplaceFlags is a set of flags that govern how to locate and replace a substring within a string. This set can contain the following values:

Value Meaning

rfReplaceAll Replace all occurrences. If this flag is not present, only the first occurrence of the target substring is replaced.
rfIgnoreCase Match occurrences of the substring case-insensitively. If this flag is not present, only case-sensitive matches are considered.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1275 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.