Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Проверка правописания  [new]
Riska
Member

Откуда: Израиль
Сообщений: 989
Нужно сделать проверку правописания.
Можно использовать OpenOffice.
Есть ли готовое решение?
29 май 13, 16:54    [14365867]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Riska
Есть ли готовое решение?
Здесь смотрели?
30 май 13, 13:28    [14369788]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
PL99,
Да.
Нужно сделать без дополнительных программ (установок). Исключение - ОpenОffice (уже установлен у всех клиентов).
В крайнем случае нужна бесплатная программа.
11 июн 13, 12:21    [14419735]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Riska1
PL99,
Да.
Нужно сделать без дополнительных программ (установок). Исключение - ОpenОffice (уже установлен у всех клиентов).
В крайнем случае нужна бесплатная программа.
Оно?
11 июн 13, 15:30    [14421215]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
PL99,
Честно говоря, ничего в "Оно" не понял.
Скачал, получил кучу папок и файлов.
Как прикрутить эту прелесть к РВ?

Может быть общий разум подскажет решение вот здесь:
(До последней строчки все нормально. В последней строчке РВ падает.)

string 		ls_exceptionMsg, ls_word = 'tabli'	
any 			la_tempReturn 
OLEObject 	lobj_ServiceManager, lobj_Desktop, lobj_CoreReflection, lobj_PropertyClass, lo_locale
OLEObject 	lo_propertyValue[], lole_LSM, lole_spellchecker

//Create the service manager 
lobj_ServiceManager = CREATE OLEObject 
IF lobj_ServiceManager.ConnectToNewObject("com.sun.star.ServiceManager") < 0 Then 
	MessageBox("Error", "Cound not connect to OpenOffice") 
	RETURN
End IF 

////Create the Desktop, core reflection and property class services 
//lobj_Desktop= lobj_ServiceManager.createInstance("com.sun.star.frame.Desktop") 

lobj_CoreReflection = lobj_ServiceManager.createInstance("com.sun.star.reflection.CoreReflection" ) 
lobj_PropertyClass = lobj_CoreReflection.forName ("com.sun.star.beans.PropertyValue") 

lo_locale = lobj_CoreReflection.forName( 'com.sun.star.lang.Locale') 
lo_locale.CreateObject( REF lo_locale ) 

lo_locale.Language = 'en'
lo_locale.Country = 'US'  
lo_locale.Variant = '' 

lobj_PropertyClass.CreateObject(REF lo_propertyValue[1]) 
//lo_propertyValue[1] = lobj_CoreReflection.Bridge_GetStruct("com.sun.star.beans.PropertyValue") 

lole_LSM = lobj_ServiceManager.CreateInstance("com.sun.star.linguistic2.LinguServiceManager") 
lole_spellchecker = lole_LSM.getspellchecker() 

//Здесь эта дрянь падает ("Error calling external object function spell..."):
la_tempReturn = lole_spellchecker.spell( ls_word ,lo_locale , lo_propertyValue) // PROBLEM!!!
11 июн 13, 20:03    [14422642]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
Вот линк на то, как должно работать:
http://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSpellChecker.html#spell
12 июн 13, 10:41    [14423993]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Riska, что-то никаких мыслей, увы. может быть, за объектом напрямую обратиться?
Riska1
...
//Проверить не могу, т.к. с OpenOffice не работаю, но вдруг...
//lole_LSM = lobj_ServiceManager.CreateInstance("com.sun.star.linguistic2.LinguServiceManager") 
//lole_spellchecker = lole_LSM.getspellchecker() 
lole_spellchecker = lobj_ServiceManager.CreateInstance("com.sun.star.linguistic2.SpellChecker")
...


+
Мне одному кажется, что мы уже потратили сумму человеко-часов вполне сравнимую со стоимостью лицензии?
16 июн 13, 19:17    [14439056]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
PL99,
Помогло!
Ура!!!
Большое человеческое спасибо!


Мне одному кажется, что мы уже потратили сумму человеко-часов вполне сравнимую со стоимостью лицензии?

US$199.00 - это за одну версию или за "сколько влезит"?
У нас где-то 6000 компов. Если за каждого клиента отдать 200 баксов, то, боюсь, что начальство за эти деньги найдет более толкового программера :)

Есть еще несколько причин все сделать самим:
1. Redistributable American, Canadian, and UK English dictionaries - Нам нужен иврит.
2. Каждый клиент должен будет подстраивать под себя словари (добавлять/изменять) слова.
3. Может быть в дальнейшем начальство еще чего-нибудь придумает.
Короче, своя прога гораздо лучше.

Еще раз спасибо!!!
17 июн 13, 10:45    [14440605]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Riska1
PL99,
Помогло!
Ура!!!
Большое человеческое спасибо!
На здоровье :-)


Riska1
Мне одному кажется, что мы уже потратили сумму человеко-часов вполне сравнимую со стоимостью лицензии?

US$199.00 - это за одну версию или за "сколько влезит"?
У нас где-то 6000 компов. Если за каждого клиента отдать 200 баксов, то, боюсь, что начальство за эти деньги найдет более толкового программера :)
Ну, если я правильно понимаю слово "redistributable" (Redistributable 32-bit ActiveX spell check control), то это лицензия на одного разработчика.


Riska1
Есть еще несколько причин все сделать самим:
...
3. Может быть в дальнейшем начальство еще чего-нибудь придумает.
Они все фантазеры, наши шефы... Им можно фантазировать - у них нет конкретной работы, а давать руководящие указания умеют даже шимпанзе в цирке...
17 июн 13, 14:13    [14442188]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
AIS
Member

Откуда:
Сообщений: 1695
PL99
...Они все фантазеры, наши шефы... Им можно фантазировать - у них нет конкретной работы, а давать руководящие указания умеют даже шимпанзе в цирке...

О-о, надеюсь Ваш шеф не посещает этот форум.
18 июн 13, 01:01    [14445257]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Big Boss
Guest
Как закончите надеяться, зайдите ко мне в кабинет...
18 июн 13, 10:07    [14446070]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
Плыли, плыли и на берегу... :(
Все работает, но сам по себе OpenOffice гораздо хуже, чем Microsoft Office.
Т.е. не все слова проверяет правильно: то выдает ошибку нормальному слову, то ошибочное пропускает.

Следующий код работает с Microsoft Office:
OleObject lole_Spell
Long ll_RC
string	as_Text

as_text = 'text dlya proverki'

SetPointer( HourGlass! )

// Word is available so replace all CR/LFs with CRs
this.ReplaceChar( as_Text, '~r~n', '~r' )

// Connect to Word and do a spell-check
lole_Spell = CREATE OleObject
ll_RC = lole_Spell.ConnectToNewObject( 'Word.Application' )
IF ll_RC <> 0 THEN
	MessageBox('Error!', 'Word.Application: ConnectToNewObject ERROR')
	DESTROY lole_Spell
	RETURN ll_RC
END IF

lole_Spell.Application.Visible = False
lole_Spell.Application.WindowState = 2
lole_Spell.Documents.Add()
lole_Spell.Selection.TypeText( as_Text ) // by ref
lole_Spell.Selection.HomeKey()
lole_Spell.Selection.MoveStart()
lole_Spell.ActiveDocument.CheckSpelling()
lole_Spell.ActiveDocument.Select()
as_Text = lole_Spell.Selection.Text
lole_Spell.ActiveDocument.Close( False )
lole_Spell.Application.Quit
lole_Spell.DisconnectObject()
DESTROY lole_Spell

// Change the CRs back to CR/LFs
this.ReplaceChar( as_Text, '~r', '~r~n' )

MessageBox('', as_text)


1. Можно ли как-то использовать этот скрипт без установки MS Office (только какие-нибудь dll)?
2. Kак вызвать окошко с вариантами слов в ОpenОffice (в самом ОpenОffice это нажатие на F7)?
18 июн 13, 14:59    [14448307]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Riska1
Плыли, плыли и на берегу... :(
Все работает, но сам по себе OpenOffice гораздо хуже, чем Microsoft Office.

Как заплатил, так и получаешь :-)
19 июн 13, 18:39    [14455965]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Riska1
Все работает, но сам по себе OpenOffice гораздо хуже, чем Microsoft Office.
Т.е. не все слова проверяет правильно: то выдает ошибку нормальному слову, то ошибочное пропускает.

А можно пример такого слова?
19 июн 13, 20:51    [14456226]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
boogiman
Member [заблокирован]

Откуда:
Сообщений: 2558
Филипп
Riska1
Плыли, плыли и на берегу... :(
Все работает, но сам по себе OpenOffice гораздо хуже, чем Microsoft Office.

Как заплатил, так и получаешь :-)

А за что платить Майкрософт, за их корявость и изменчивость? Я сейчас немного на C# пишу - дык вот, чтобы VS работала и все приблуды с ней связанные. Мне поставили дополнительную память и сейчас 8 ГБ. А я то в свое время java за прожорливость ругал))
Погнались разработчики Павлика за WPF от Майкрософт, а те сейчас от WPF отворачиваются. Это ещё раз доказывает, что не стоит идти на поводу у Майкрософт и жестко затачиваться на их продукты. Лучше бы Павлика под java заточили! Да и вообще американцы со своим печатанием долларов - весь мир загонят в кризис!
Сорри за оффтоп!
20 июн 13, 11:09    [14458414]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
Riska1
Guest
Anatoly Moskovsky,
на иврите слово
איתם
написано правильно. MS Office пропускает, а ОpenОffice ругается, что нет такого.

Так что с окошком?
Никто не поможет идеей?
20 июн 13, 14:48    [14460335]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Вам уже советовали купить лицензию для одного разработчика за 150 зеленых. В принципе стоит меньше чем 8 гигов памяти.
20 июн 13, 14:58    [14460430]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
boogiman
Member [заблокирован]

Откуда:
Сообщений: 2558
spas2001
Вам уже советовали купить лицензию для одного разработчика за 150 зеленых. В принципе стоит меньше чем 8 гигов памяти.

Я вообще то С# имел в виду, а так да прожирливы поделки от мелкомягкого! Парень, который проекты дома пишет и серверы типа IIS разворачивает локально говорит на 32 Гб перестало тормозить
20 июн 13, 15:29    [14460663]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
SourceLocalizer
Member

Откуда:
Сообщений: 32
Добрый день!

Столкнулся с проблемой исключения из проверки орфографии слов из пользовательского словаря.
В самом OpenOffice исключаемое слово просто добавляется через контекстное меню в словарь standard.dic и слово больше не считается ошибкой.
При проверке из vb.net, судя по всему, SpellChecker не использует пользовательские словари и все занесенные в них слова считаются ошибкой.

Как заставить SpellChecker проверять слова по пользовательскому словарю?
В остальном все работает отлично.

Проверял словари в vb.net через объект com.sun.star.linguistic2.DictionaryList - все словари видно и все активны (возможно это другие экземпляры словарей, так как не смог проверить их содержимое, но количество и настройки их совпадают с OpenOffice).

Возможно есть настройки для использования пользовательских словарей для SpellChecker.isValid ?

Примеров использования орфографии в интернете много, но не нашел информации именно по пользовательским словарям.

Спасибо.
2 сен 13, 16:20    [14785183]     Ответить | Цитировать Сообщить модератору
 Re: Проверка правописания  [new]
SourceLocalizer
Member

Откуда:
Сообщений: 32
Нашел решение:

myDictionaryList объект com.sun.star.linguistic2.DictionaryList

If ((myspellChecker.isvalid(tempValue, myLocale, myArgs) = False) And _
(IsNothing(myDictionaryList.querydictionaryentry(tempValue, myLocale, True, True)) = True)) _
Or (IsNothing(myDictionaryList.querydictionaryentry(tempValue, myLocale, False, True)) = False) _
then
... значит ошибка в слове

Т.е. проверяем не только текст Спеллчекером, но и наличие в словарях:
1я строка обычная как во всех руководствах по ООО,
2я строка - проверяем наличие в позитивных словарях (разрешено слово),
3я строка - в негативных словарях (запрещено).

При выполнении условия из примера - слово с ошибкой!

Пример упрощенный. Можно получить информацию в чем именно ошибка, запрет и пр. из словаря - см. ссылку ниже.

Подробней о функции поиска в словарях:
http://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSearchableDictionaryList.html#queryDictionaryEntry
8 сен 13, 14:39    [14810402]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить