IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Замена слов по словарю, Простейший переводчик
Незнакомец
сообщение 29.08.2005 10:14
Сообщение #1


Гость






Здравствуйте. Не могли бы подсказать как сделать вот такую штуку: замешательство
в TMemo находится английский текст (например:
Цитата
Hello world

), как сделать так чо бы считывать слова и вставлять их перевод в др мемо из файла-словаря?
В файле слова находятса в таком виде:


..................
hello привет
..................
..................
world мир
...............



И результат получался бы типа такого:
Цитата
привет мир
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 6.09.2005 22:52
Сообщение #2


Гость






У меня вот так работает:
function TForm1.replace_word (var ER: tstrings; next_word: string): string;
var next_word_rus: string;
begin
next_word_rus:=ER.Values[next_word];
if next_word_rus='' then next_word_rus:=next_word;
result := next_word_rus;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s, next_word, t: string;
i: byte;
currLine: integer;
ER :TStrings;

begin
t := '';
ER:=TStringList.Create;
ER.LoadFromFile('voc.txt');
For currLine := 0 To Pred(memo1.Lines.Count) Do Begin
s := memo1.Lines.Strings[currLine];
i := 1; next_word := '';
while i <= length(s) do begin
if upcase(s[i]) in ['A'..'Z'] then begin
next_word := next_word + s[i]; inc(i)
end
else begin
if next_word <> '' then t := t + replace_word(ER, next_word);
t := t + s[i];
next_word := ''; inc(i);
end;
end;

if next_word <> '' then t := t + replace_word(ER, next_word);
memo2.Lines.Add(t);
end;
er.free
end;
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Незнакомец   Замена слов по словарю   29.08.2005 10:14
Altair   все просто. Надо сначала слова выделить в memo, к...   29.08.2005 13:18
Н   это, то есть считать их в массив, или я не прав...   30.08.2005 21:17
Malice   Я бы не стал выделять слова, т.к. потом после за...   31.08.2005 9:22
Н   А как это сделать, можно пример?   31.08.2005 10:39
Malice   Как то вот так: for i:=1 to КолвоСловВсловаре do ...   31.08.2005 11:19
volvo   Вот тебе работающий набросок на FPC, просто добавь...   31.08.2005 11:02
Н   блин не получается сделать, и найти не могу как...   31.08.2005 13:50
Malice   Ну так как у меня: s:=memo1.Lines.Strings[j]; ...   31.08.2005 13:53
volvo   For currLine := 0 To Pred(memo1.Lines.Count) Do Be...   31.08.2005 13:56
Н   volvo, Malice Спасибо... :)   31.08.2005 15:10
Н   Я открываю файл для чтения, а как дальше осуще...   31.08.2005 15:55
hiv   Словарь лучше хранить в виде: word=слово Тогда чт...   1.09.2005 8:54
Н   Пересмотрел FAQ несколько раз но ничего подобно...   1.09.2005 21:46
volvo   В каком FAQ-е искал? В Дельфийском? А в Паскалевск...   1.09.2005 21:54
Н   Я просто хотел доделать твой алгоритм, что бы ...   2.09.2005 8:51
hiv   Смотри пост 13. Лучше всетаки сделать проверку, чт...   5.09.2005 8:17
Н   Собрал все в одно, вот что получилось: procedur...   5.09.2005 21:18
volvo   Ну, с этой ошибкой: " [Error] 123.pas(41): U...   5.09.2005 21:53
hiv   :blink: Я не зря ставил многоточия в своем примере...   6.09.2005 8:17
Н   Вот я исправил, на мемо больше не ругается, но ког...   6.09.2005 13:10
Н   забыл добавить, что показывает при это на вот эту ...   6.09.2005 13:19
hiv   Переменную ER :TStrings; нужно объявить как public...   6.09.2005 13:46
Н   Спасибо, теперь ошибки не выдает :D :rolleyes: ...   6.09.2005 14:27
hiv   У тебя в коде: Memo2.Lines.Add(s[i]); эта процедур...   6.09.2005 14:33
Н   Вот делал вывод в мемо так: procedure TForm1.Bu...   6.09.2005 22:43
volvo   У меня вот так работает: function TForm1.replace_w...   6.09.2005 22:52
hiv   Как запрограммировал - так и выводит! Вот так...   7.09.2005 8:29
Н   Как же я сам то не додумался ..... :D hiv, volv...   7.09.2005 21:52


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.07.2025 13:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"