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

> ВНИМАНИЕ!

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

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


Гость






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

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


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



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


Гость






Вот я исправил, на мемо больше не ругается, но когда нажимаю перевод, вылетает сообщение об ошибке:

"Project Projectl.exe raised exception class EAccessViolation with message 'Access violation at address 00414988 in module 'Projectl.exe'. Read of address 00000004' Process stopped. Use Step or Run to continue."


"Access violation at address 00414988 in module 'Project1.exe'. Read of address 00000004."

И в итоге ни чего не переводит sad.gif ...



procedure TForm1.replace_word (next_word: string);
var next_word_rus: string;
ER :TStrings;

begin

next_word_rus:=ER.Values[next_word];
if next_word_rus='' then next_word_rus:=next_word;
Memo2.Lines.Add(next_word_rus);


end;

procedure TForm1.Button1Click(Sender: TObject);

var
s, next_word: string;
i: byte;
currLine: integer;
ER :TStrings;

begin
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 replace_word(next_word);
Memo2.Lines.Add(s[i]);
next_word := ''; inc(i);
end;
end;

if next_word <> '' then replace_word(next_word);
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 17:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"