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

> ВНИМАНИЕ!

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

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

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


Гость






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

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


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



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


Гость






Собрал все в одно, вот что получилось:



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

begin
ER:=TStringList.Create;
ER.LoadFromFile('voc.txt');
next_word_rus:=ER.Values[next_word];
if next_word_rus='' then next_word_rus:=next_word;
Memo2.Lines.Add(next_word_rus);
er.free

end;

procedure TForm1.Button1Click(Sender: TObject);

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

begin
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; end;



а он выдает такие ошибки:

[Error] 123.pas(41): Undeclared identifier: 'Memo2'
[Error] 123.pas(41): Missing operator or semicolon

что не так?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Н @ 5.09.05 21:18)
а он выдает такие ошибки:

Ну, с этой ошибкой: " [Error] 123.pas(41): Undeclared identifier: 'Memo2' " довольно прозрачно: у тебя просто Memo2 принадлежит классу формы, но вот процедура replace_word - то не является методом этого класса, поэтому для нее Memo2 не существует...

А вот эта: " [Error] 123.pas(41): Missing operator or semicolon " исчезнет сама собой, как только будет исправлена первая, просто сейчас структура программы нарушена, и пока ее не восстановишь - дальше будут "наведенные" ошибки...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Незнакомец   Замена слов по словарю   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:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name