Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2008, 03:23   #1
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию Проверка орфографии (Делфи)

Как можно БЕЗ использования сторонних программ и пакетов, типа Ворд, сделать проверку орфографии в мемо. Принцип такой- написал текст, нажал проверка и если найдено не правильно написанне слово, вылазит окно со словами. Если нет готовых программ, подскажите хотя бы алгоритм, хоть лучше что нибудь набрасась в Делфи
Simply-Art вне форума Ответить с цитированием
Старый 14.06.2008, 04:20   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

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

Что касается построения предложений то тут сложнее....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 14.06.2008, 09:58   #3
morgoth2
 
Аватар для morgoth2
 
Регистрация: 19.09.2007
Сообщений: 5
По умолчанию

Еще раз о функции проверки орфографии...
Имеется Форма (среда разработки - Delphi 5), в ней поле Memo, текст в нем, и две Button.
Как реализовать, чтобы при нажатии на Button1 выводилась форма проверки орфографии из пакета Microsoft Office 2003,
а при нажатии Button2 - выводился тезаурус?
Помогите пожалуйста!

PS Гуглом нашел статью, но без рисунков. Вот здесь:
http://www.delphihelp.org/delphi_spell.html
morgoth2 вне форума Ответить с цитированием
Старый 14.06.2008, 10:25   #4
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

В русском языке по окончанию можно определить что это за слово (глагол, существительное и т.д.), любое предложение должно иметь основу (существительное + глагол, или просто один член предложения(существительное)). Еще можно определить глагол и -не с глаголом раздельно проверять.
Окончание глаголов:
-ал -ала -ать и т.д.
Так же можно проверить запятые перед предлогами -а -но.
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 14.06.2008, 10:28   #5
morgoth2
 
Аватар для morgoth2
 
Регистрация: 19.09.2007
Сообщений: 5
По умолчанию

А как вызвать форму проверки правописания и тезаурус?
morgoth2 вне форума Ответить с цитированием
Старый 14.06.2008, 11:39   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от N!ckeL
В русском языке по окончанию можно определить что это за слово
повеселили... :-))
Это далеко не так... (слово вокзал, например :-)
Реально только использовать интернет-сервисы (не знаю точно, но думаю, что такие есть), либо, задействовать готовую библиотеку (хотя бы того же ворда) разумеется, если не будет этих библиотек - проверка работать не будет...
___________________________________ __________

morgoth2, так что Вам в статье не понравилось? - на первый взгляд - всё грамотно и достаточно подробно.
А рисунок там один и к делу отношения не имеет :-) -
Кстати, эта же статья вошла в DelphiWorld...

Последний раз редактировалось Serge_Bliznykov; 14.06.2008 в 11:44.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.06.2008, 12:08   #7
morgoth2
 
Аватар для morgoth2
 
Регистрация: 19.09.2007
Сообщений: 5
Вопрос Вызов мастера проверки орфографии из пакета MS Office

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
повеселили... :-))
Это далеко не так... (слово вокзал, например :-)
Реально только использовать интернет-сервисы (не знаю точно, но думаю, что такие есть), либо, задействовать готовую библиотеку (хотя бы того же ворда) разумеется, если не будет этих библиотек - проверка работать не будет...
___________________________________ __________

morgoth2, так что Вам в статье не понравилось? - на первый взгляд - всё грамотно и достаточно подробно.
А рисунок там один и к делу отношения не имеет :-) -
Кстати, эта же статья вошла в DelphiWorld...
В статье компонентам присваиваются не стандартные имена (кнопкам, списку и форме с проверкой). И не полностью указано, какому компоненту присваивается имя.
Получилось вызвать через OLE Word, отправить в него текст из Memo и даже вызвать мастер проверки орфографии. Но вот как сделать, чтобы окно проверки правописания выводилось отдельно, т.е. чтобы окно Word-а было скрыто, а мастер проверки был активен?
Изображения
Тип файла: jpg Orfo.jpg (21.7 Кб, 192 просмотров)

Последний раз редактировалось morgoth2; 14.06.2008 в 12:12.
morgoth2 вне форума Ответить с цитированием
Старый 14.06.2008, 13:02   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Если нет готовых программ, подскажите хотя бы алгоритм, хоть лучше что нибудь набрасась в Делфи
Алгоритм прост, сравнивать с базой слов. Нужно найти где-то словарную базу русского языка, и оптимизированный поиск по ней сделать, чтобы не тормозило.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 14.06.2008, 13:27   #9
morgoth2
 
Аватар для morgoth2
 
Регистрация: 19.09.2007
Сообщений: 5
Восклицание Вот как я сделал (сорри за корявость)

Цитата:
Сообщение от mutabor Посмотреть сообщение
Алгоритм прост, сравнивать с базой слов. Нужно найти где-то словарную базу русского языка, и оптимизированный поиск по ней сделать, чтобы не тормозило.
Вот что получилось у меня:

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
s:=Memo1.Lines.GetText; //В переменной s "сидит" текст из поля Memo
WordDocument1.Range.Set_Text(s);// Отправляем в Word этот текст
WordDocument1.CheckSpelling(); //запускаем проверку орфографии
WordDocument1.Activate();
end;

procedure TForm1.Button2Click(Sender: TObject);
var s:string;
begin
//По нажатию на эту кнопку в поле Memo загоняется исправленный в Word-е
//текст
Memo1.Clear(); //Очищаем Memo от старого текста
s:=WordDocument1.Range.Get_Text(); //В переменную s загоняем текст из Word-а
Memo1.Text:=s; //Теперь в Memo лежит исправленный текст
//Только, блин, почему-то не разбивается на строки
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var SaveChanges:OleVariant; //Параметр закрывания Worda
begin
SaveChanges:=False;// Закрыть без сохранения изменений
WordDocument1.Close(SaveChanges);
WordApplication1.Disconnect();//закрываем Word.
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear();//Очищаем Memo
WordApplication1.Visible:=True;

end;

В аттаче - исходники с коментариями и скомпилированный проект. Посмотрите плыз, что можно поправить?
Вложения
Тип файла: rar Projects.rar (176.5 Кб, 248 просмотров)

Последний раз редактировалось morgoth2; 14.06.2008 в 14:19. Причина: Немного переделал
morgoth2 вне форума Ответить с цитированием
Старый 14.06.2008, 15:41   #10
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

To morgoth2 думаю можно было создать отдельную тему и в другом разделе. Ну да ладно. По моему вопросу вроде всю перспективу понял - это только проверка орфографии путем тупого сравнивания с базой. Жаль, но это хоть чтото
Simply-Art вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программное переключение словаря при проверке орфографии методами MS Word tojhto Общие вопросы Delphi 2 06.09.2008 01:54
Проверка орфографии Serg113 Microsoft Office Word 1 09.05.2008 22:29
Проверка условия Luciferium БД в Delphi 1 05.06.2007 16:23
Проверка орфографии Simply-Art Общие вопросы Delphi 2 17.04.2007 15:44