Главная страница
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.01 c
6-1196066866
tytus
2007-11-26 11:47
2008.12.07
как заставить Indy 10 передавать тело письма по русски ?


3-1210700535
wsv
2008-05-13 21:42
2008.12.07
Подружить FastReport и MySql


2-1225095258
Zhekson
2008-10-27 11:14
2008.12.07
MessageDlg, три варианта ответа, да, нет, отмена.


1-1203111617
Blind Guardian
2008-02-16 00:40
2008.12.07
Сравнение последовательностей вещественных чисел на сходство


2-1225037381
redlord
2008-10-26 19:09
2008.12.07
потоко независимые классы