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

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

Замена слов [D5, WinXP]


vik2008 ©   (2008-10-28 21:45:00) 

Добрый день.
Подскажите пожалуйста: имеется файл в .txt формате вот такого содержания:
автобан|автомагистраль,автодорога
Каким образом можно сделать, чтобы текст в "Memo" прошёл своеобразную замену слов по типу того, что берётся каждое слово, затем сверяется по этому текстовому файлу (сверяется с каждым первым словом в строчке, не дальше) и, если такое имеется, то рэндомно заменяется на одно из тех, которое идёт после вертикального слэша?
Ну, что-то вроде синонимайзера получается.
Заранее благодарен.


Кирей   (2008-10-29 14:05:00) [1]

построчно StringReplace из StrUtils


Германн   (2008-10-29 01:46:00) [2]


> {RASkov} ©   (29.10.08 00:45) [8]
>
> > [7] Германн ©   (29.10.08 00:27)
>
> +10
>

Мало! Кто больше?
P.S. Тут более уместнее была бы операция умножения, но я лично, предпочёл бы операцию возведения в степень. :)
Хотя и чтение %DELPHI\DEMOS тоже важно.


{RASkov}   (2008-10-29 00:45:00) [3]

> [7] Германн ©   (29.10.08 00:27)

+10


Германн   (2008-10-29 00:27:00) [4]


> vik2008   (28.10.08 22:01) [5]
>
> Ага, принцип ясен. Но если всё же без RxLib?
>

А если б у тебя был бы RxLib мог бы подсмотреть и "технологию". Главная ценность этой библиотеки именно в её исходниках! Они содержат очень много умного, доброго и вечного!
:)


{RASkov}   (2008-10-28 22:09:00) [5]

> [5] vik2008   (28.10.08 22:01)

Да легко.... Только метод дергания слова самому придется писать...
А вот как это выглядело бы с RxLib
for N:=1 to WordCount(Text) do begin
 Slovo:=GetWord(N);
 //Работаем со Slovo'м
end;

Ну это примерно и не оптимально :)


vik2008   (2008-10-28 22:01:00) [6]

Ага, принцип ясен. Но если всё же без RxLib?


{RASkov}   (2008-10-28 22:00:00) [7]

> [2] vik2008   (28.10.08 21:53)

В RxLib есть строковые функции которые тебе могли бы пригодится в данной задаче.... Имею в виду - "дергание слов"...


{RASkov}   (2008-10-28 21:58:00) [8]

Общая схема может быть такой:
При чтении тхтфайла "загнать его в два списка(TStringList) в первый слово до |, а во второй - слова после |
Далее бежим по мемо дергая каждый раз очередное слово(тут нужно определится что есть слово) и IndexOf его по первому списку и если найдено, то рандомно выдернуть слово из строки второго списка с индексом найденного в первом... далее просто заменить в мемо старое слово на новое.... Бежим далее...


vik2008   (2008-10-28 21:53:00) [9]

Затык и в том, что не знаю как лучше осуществить поиск по Memo, чтобы отбиралось именно слово, а не, например, "автобан!" с каким-либо знаком и препинания и т.д. Т.е. надо чистое слово.
Ну и ещё затык в том, что как потом осуществить перебор по файлу с синонимами


{RASkov}   (2008-10-28 21:49:00) [10]

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


Наверх

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