Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.07;
Скачать: CL | DM;

Вниз

Замена слов   Найти похожие ветки 

 
vik2008   (2008-10-28 21:45) [0]

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


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

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


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

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


 
{RASkov} ©   (2008-10-28 21:58) [3]

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


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

> [2] vik2008   (28.10.08 21:53)

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


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

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


 
{RASkov} ©   (2008-10-28 22:09) [6]

> [5] vik2008   (28.10.08 22:01)

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

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


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


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

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


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

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

+10


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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2008.12.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1224695992
Сергей Кокоулин
2008-10-22 21:19
2008.12.07
Определение доступных COM портов?


1-1202831739
somebody_
2008-02-12 18:55
2008.12.07
Статическая компоновка кода Делфи и С++


2-1225283474
MC87
2008-10-29 15:31
2008.12.07
Drag&Drop


15-1223228797
dr_creigan
2008-10-05 21:46
2008.12.07
активация делфы


6-1195957359
ZzZzZzZ
2007-11-25 05:22
2008.12.07
отправка принятых данных =)) (TClientSocket & TServerSocket)