New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Ошибки в декодировании словарей

Сообщаем о найденных ошибках сюда

Ошибки в декодировании словарей

Postby Gloggy » Fri Jul 31, 2009 12:32 pm

Чем больше у меня становится словарей под GoldenDict, тем чаще я натыкаюсь вот на такую проблемку. Во время индексации словаря GoldenDict находит какую-то ошибку в энкодингах, прерывает процесс и переходит на следующий словарь. Но вот тот словарь, в котором по мнению GoldenDict есть ошибка - он будет раз за разом идексироваться, при каждом рестарте GD, при каждом рескане словарных каталогов.

Когда таких словарей набирается несколько, процесс только замедляется. При каждом запуске наблюдать за ре-индексацией - огрочительно.
При этом понять в какой именно строчке словаря проблема (битый символ там или недопустимая юникодная последовательность) - нет возможности, сам GD молчит, никаких окон не показывает. А было бы неплохо, если бы сообщал, что в таком-то файле, в такой-то строке, в такой-то поизции - фигня какая-то. Тогда это можно было бы быстро подправить.

Ну или как альтернатива (но не очень хорошая) - может, не переиндексировать раз за разом, если мы знаем, что содержимое не изменилось, а индексация в прошлый раз - обломалась?

Спасибо.

P.S. И с возвращением к активной девелоперской жизни!!! ;)
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Ошибки в декодировании словарей

Postby ikm » Fri Jul 31, 2009 10:37 pm

Gloggy wrote:При каждом запуске наблюдать за ре-индексацией - огрочительно.

Да. Но можно просто их убрать оттуда...

Gloggy wrote:Ну или как альтернатива (но не очень хорошая) - может, не переиндексировать раз за разом, если мы знаем, что содержимое не изменилось, а индексация в прошлый раз - обломалась?

Да, я об этом думал. Может, реализую как-нибудь.

Gloggy wrote:При этом понять в какой именно строчке словаря проблема (битый символ там или недопустимая юникодная последовательность) - нет возможности, сам GD молчит, никаких окон не показывает. А было бы неплохо, если бы сообщал, что в таком-то файле, в такой-то строке, в такой-то поизции - фигня какая-то. Тогда это можно было бы быстро подправить.

А он обычно в консоль пишет всякое -- обычно достаточно, для того чтоб примерно сориентироваться. Для обычных пользователей это вроде как не надо - для них достаточно того факта, что словарь битый, да и все. А для продвинутых есть консоль. На данном этапе получается, что стоит знак равенства Windows = обычный пользователь, что конечно же не совсем верно. На самом-то деле можно консольное окно активизировать и в Windows. Это величайшая тайна современности, но я, так и быть, пролью толику света в серые окна повседневности Windows: GoldenDict.exe, байт по смещению 0xDC надо заменить с 2 на 3. Можно это включить и просто в свойствах сборки проекта, если поколдовать - я не помню, как конкретно.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Ошибки в декодировании словарей

Postby Gloggy » Sat Aug 01, 2009 9:28 am

ikm wrote:На самом-то деле можно консольное окно активизировать и в Windows. Это величайшая тайна современности, но я, так и быть, пролью толику света в серые окна повседневности Windows: GoldenDict.exe, байт по смещению 0xDC надо заменить с 2 на 3.

Опаньки!!! Спасибо за мега-хинт! И точно, консоль появилась, а я тут всякими извращениями занимаюсь, в дебажном режиме что-то собираю, мучаюсь с получением логов! :)

Собственно, пол-проблемы решено, теперь видно в каком словаре ошибки, с полным именем файла. По одному названию раньше понять нельзя было, у меня много словарей одинаково называны (в процессе работы над словарем делаю копии).

Вторая половина проблемы - осталась. Ошибка-то выдается, но где конкретно - не понять:

DSL dictionary reading failed: M:\dicts\eng-eng_dict.dsl, error: Invalid character sequence encountered during character convesion.

Если бы GD еще и место показывал, типа, позиция или строка.

P.S. В логе, кстати, очепятка - convesion, а надо conve*r*sion. :)
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Ошибки в декодировании словарей

Postby ikm » Sat Aug 01, 2009 10:07 am

Добавил в SVN индикацию строки, на которой произошла ошибка.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am


Return to Ошибки

Who is online

Users browsing this forum: No registered users and 18 guests