Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1225437375
Mozgan
2008-10-31 10:16
2008.12.07
Проблема с CheckListBox1DrawItem


2-1225219523
vik2008
2008-10-28 21:45
2008.12.07
Замена слов


2-1225430459
ganda
2008-10-31 08:20
2008.12.07
Какое событие отлавливает то что программа была свернута?


15-1223172127
axd
2008-10-05 06:02
2008.12.07
MySQL работает не так как надо


1-1202923120
Ukrainec
2008-02-13 20:18
2008.12.07
Как отослать комбинацию клавиш Ctrl+V Opere?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский