Довольно часто при наборе текста возникают опечатки, а так же бывает грамотность сотрудников оставляет желать лучшего, поэтому я решил показать сообществу как можно произвести проверку на элементарные ошибка в словах.
Решение не является уникальным, и идеальным, но свою работу делает.
Для работы необходим доступ в интернет.
if MessageBox(CONFIRMATION_CAPTION; "Проверить орфографию?"; 'Да|Нет'; 'Да'; 'Нет') == 'Нет'
Exit()
endif
// Коды ошибок
Коды = Массив("Слова нет в словаре.";
"Повтор слова.";
"Неверное употребление прописных и строчных букв.";
"Текст содержит слишком много ошибок. При этом приложение может отправить Яндекс.Спеллеру оставшийся непроверенным текст в следующем запросе.")
if not VarIsNull(Object.Текст)
Текст = "text=" & ЗамПодстр(trim(Object.Текст); ' '; '+')
// ссылка
URL = "http://speller.yandex.net/services/spellservice/checkTexts"
FreeException()
ExceptionsOff()
XMLHttp = CreateObject("Microsoft.XMLHTTP")
XMLHttp.Open("POST"; URL; FALSE)
xmlhttp.setRequestHeader("Content-Type"; "application/x-www-form-urlencoded")
XMLHttp.Send(Текст)
ResponseXML = XMLHttp.ResponseXML()
XMLDoc = CreateObject("MSXML.DOMDocument")
XMLDoc.LoadXML(ResponseXML.xml)
ValutesNode = XMLDoc.selectNodes("ArrayOfSpellResult/SpellResult/error")
i = 0
while i < ValutesNode.Length
word = ValutesNode.item(i).selectNodes("word")
s = ValutesNode.item(i).selectNodes("s")
code = ValutesNode.item(i).selectNodes("@code").Item(0).NodeValue
Сообщение = word.item(0).Text & CR & Коды[code - 1] & CR & "Выберите вариант для замены:"
Варианты = "Пропустить"
// Может быть несколько вариантов замены
q = 0
while q < s.Length
Варианты = s.item(q).Text & "|" & Варианты
q = q + 1
endwhile
Результат = MessageBox(ATTENTION_CAPTION; Сообщение; Варианты)
if (Результат <<>> 'НЕУДАЧА: ESC') AND (Результат <<>> 'Пропустить')
Object.Текст = ЗамПодстр(Object.Текст; word.item(0).Text; Результат)
endif
i = i+1
endwhile
ExceptionsOn()
ShowMessage("Проверка окончена")
endif
Для проверки я сделал кнопку по нажатию на которую проверяется объект Object.Текст, как использовать данное решение, решать вам.
Существуют другие решения для проверки правописания, но они платные, и требуют установки словаря на каждое рабочее место, примером такого решения является Microsoft Office.
Троллейбус из буханки хлеба.
Я просто оставлю здесь пример проверки орфографии произвольного текста средствами DIRECTUM, без всяких внешних библиотек:
Авторизуйтесь, чтобы написать комментарий