parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

(off) Очень требуется помощь от владеющих Си - "пройтись напильником" по ispell

Sanja v.2 25.01.2006 17:55 / 25.01.2006 17:58

Очень требуется "помощь клуба".

У меня большая проблема - перестал работать вытащенный из "копилки" кусок кода для проверки орфографии в тексте. То ли из-за каких-то изменений в настройках безопасности iis, толи ещё из-за чего возникают проблемы с вызовом ispell (для тех, кто не в курсе, это open-source консольная программа для проверки орфографии).

Ispell требует установки Environment variable ISPELL_DICTDIR (и способен искать файлы со словарём только в указанной там папке) и работает только с перенаправлениями ввода-вывода. То есть текст, полученный из формы, приходится сохранять парсером в файл, дальше запускать
ispell.exe -a -B -d russian < файл_с_ошибками.txt > результат_проверки.txt
Проблема в том, что при запуске вручную результат_проверки.txt наполняется, а при запуске iis'ом через парсер или перл он хоть и создаётся, но всегда пуст...

Если вы владеете С, помогите сделать следующее:
- ispell.exe должен искать файлы со словарями не там, куда указывает envvar, а в той же папке, откуда его запустили.
- параметры командной строки " -a -B -d russian " должны быть зашиты в исходник
- ispell.exe должен понимать *единственный* параметр командной строки - имя файла, который нужно проверить (а не получать этот текст со stdin).
- Результат проверки должен валиться не в stdout, а в файл, указанный при запуске, с добавлением ".out". То есть запускаем ispell.exe Евгений_Онегин.txt и получаем через N секунд в той же папке Евгений_Онегин.txt.out

Официальный сайт ispell: http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html

Исходники, портированные на Windows я нашёл на Gnu.org. Я их открыл в Visual Studio 6, создал dsp и dsw файлы, удостоверился, что бинарники собираются (это единственное, что я умею в MSVC). Дополненные этими файлами исходники - тут:
http://bougakov.com/misc/parser/sanja_ispell.zip (261Kb)

Поможете?