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

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

Автоматическая замена слов в тексте - по своему словарю.


ROM'zone ©   (2002-06-03 18:33:00) 

Привет всем.

Есть такая задача, написать программу которая будет заменять в выбранном тексте отдельные слова на другие, слова будут браться из внешнего списка который можно дополнять.

Например изначально предложение звучит так: Сотрудникам отделов.

В нашем списке указано:
Сотрудникам -> Представителям
Отделов -> Департаментов

В результате имеем : представителям департаментов.


Как это написать ? Я совсем не программист а программа такая нужна, насколько я понимаю это не сложно. Я умею создавать формы и минимально работаю с Delphi. Если не трудно приведите пример такой программы .

Заранее благодарен.


ROM'zone   (2002-06-06 16:07:00) [1]

А как сделать чтобы словарь не подгружался из двух файлов а находиля в одном и слова "что" и "На что" разделялись запятыми:


слово, на что менять
слово, на что менять
слово, на что менять
слово, на что менять
...


?


ROM'zone   (2002-06-06 13:46:00) [2]

Спасибо Voldemar :o))) я наверное ступил :)


Voldemar   (2002-06-05 01:01:00) [3]

ROM"zone (04.06.02 17:24)
Так я это и сделал... Есть текст, а есть два списка слов АКА словарь.:)) Первый список - что меняем, второй список - на что меняем. Мой код именно для этого и сделан.


yozhik   (2002-06-04 18:41:00) [4]

Опиши задачу по подробней, откуда текст берется, как словарик хранится и т.д.



ROM'zone   (2002-06-04 17:24:00) [5]

Хотя тут немного не так :) Есть не два списка слов, а текст
Например:

Есть такая задача, написать программу которая будет заменять в выбранном тексте отдельные слова на другие, слова будут браться из внешнего списка который можно дополнять.

Есть словарь построенный по типу:

Какое слово найти: На что его заменить:
программу прогу
список лист


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





ROM'zone   (2002-06-04 17:18:00) [6]

Спасибо , попробую разобраться что к чему %)))


Voldemar   (2002-06-04 03:41:00) [7]

Sorry!
Забыл одну немаловажную вещь!
строка
S2:=S2:=ReplaceStr(S1, Srch, ReplStr: string);
должна выглядеть, кончно же, так:
S2:=ReplaceStr(S1, Srch.Strings[N], ReplStr.Strings[N]);

а перед циклом прописать
N:=Srch.Count-1;

КОЛИЧЕСТВО СТРОК В ОБОИХ ФАЙЛАХ ДОЛЖНО БЫТЬ ОДИНАКОВЫМ!


Voldemar   (2002-06-04 03:36:00) [8]

ROM"zone (03.06.02 19:01)
Что значит - автоматом?
Если я правильно понял:
Два списка N элементов, в первом списке заменяемые, во втором заменяющие слова. Тогда (yozhik (03.06.02 18:52))

var I: word;
Srch, ReplaceStr: TStringList;
S1, S2: string;
begin
Srch:=TSTringList.Create;
ReplStr:=TStringList.Create;
Srch.LoadFromFile("Filename1.txt"); // список того, что меняем
ReplStr.LoadFromFile("Filename2.txt"); // список того, на что меняем
s1:=Memo1.Text; // берем обрабатываемый текст
for I:=0 to N do
begin
S2:=ReplaceStr(S1, Srch, ReplStr: string);
S1:=S2;
end;


вот примерно так...


KilkennyCat   (2002-06-04 01:45:00) [9]

Берешь МС Ворд и быстренько генеририуешь в нем макрос.


ROM'zone   (2002-06-03 19:50:00) [10]

Никто не поможет ?


ROM'zone   (2002-06-03 19:01:00) [11]

yozhik это если менять одно слово на другое ... а как сделать чтобы автоматом брал из списка , искал и заменял...

Я понимаю что по сути дела спрашиваю как написать программу, а не отдельное решение, но сам не могу...


yozhik   (2002-06-03 18:52:00) [12]

используй RXLib там есть ф-ция ReplaceStr(const S, Srch, Replace: string): string - очень классно работает.
Если текст боьшой можно пробежаться по строкам и заменять ...


ROM'zone   (2002-06-03 18:48:00) [13]

Не устраивает потому что требуется заменять одновременно много слов в разных текстах, так у меня будет словарик который я смогу пополнять, а так придется это делать ручками... а работы много :о)

To Song - я не совсем программер тоесть совсем не программер и с массивами работать не умею :( единственное что я знаю это интерфейс DELPHI умею создавать формы, и производить разные несложные действия, если не трудно приведите пример как это писать, мне больше спросить не у кого, а разбираться с Delphi ради написания одной программы несерьезно, тем более мне даже трудно представить как это делается :(...

HELP PLEASE !!!!


VictorT   (2002-06-03 18:38:00) [14]

А чем тебя не устраивает любой текстовый редактор с автозаменами?


Song   (2002-06-03 18:37:00) [15]

Нужно иметь два массива слов один с теми что заменять, второй с теми на что заменять. Лучше сделать в списке. Когда находим слово в образце текста, вырезаем его (Delete) и вставляем новое (Insert)


Наверх

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