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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Замена слов по словарю, Простейший переводчик
сообщение
Сообщение #1


Гость






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

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


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



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


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

 





- Текстовая версия 8.09.2025 23:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name