Page 1 of 1

Работа с поврежденным файлом словаря

PostPosted: Mon Sep 23, 2013 7:13 pm
by podpush
Делал дефрагментацию диска и неожиданно вырубили электричество. В результате один dsl оказался поврежден. При попытке доступа к этому словарю программа падает (появляется окошко "Microsoft Visual C++ Runtime Library " с сообщением "Runtime Error!"). Возможно ли как-то избежать падения, чтобы при обращении к поврежденному файлу выдавалось сообщение об ошибке доступа к конкретному словарю?

Re: Работа с поврежденным файлом словаря

PostPosted: Mon Sep 23, 2013 8:21 pm
by Abs62
А если битый словарь переиндексировать - падает во время индексации или потом при обращении?

Re: Работа с поврежденным файлом словаря

PostPosted: Mon Sep 23, 2013 8:31 pm
by podpush
Свойства битого файла остались прежние, поэтому процесс переидексации данный словарь не затрагивает, и естественно программа не падает при этом. А если внести изменения в файл, то при индексации программа не падает, а просто удаляет индекс словаря и сам словарь из списка.

Re: Работа с поврежденным файлом словаря

PostPosted: Mon Sep 23, 2013 8:46 pm
by Abs62
Жаль. Значит не получится отловить, в каком именно месте происходит вылет.

Re: Работа с поврежденным файлом словаря

PostPosted: Tue Sep 24, 2013 6:14 am
by podpush
Может стоит выложить этот битый файл для тестирования, если это поможет разобраться?

Re: Работа с поврежденным файлом словаря

PostPosted: Tue Sep 24, 2013 7:46 am
by Abs62
Давайте. Может, и удастся смоделировать ситуацию.

Re: Работа с поврежденным файлом словаря

PostPosted: Tue Sep 24, 2013 8:29 am
by podpush
Вот http://rghost.ru/48940761
Попробуйте проиндексировать нормальный dsl, а затем заменить его битым и выполнить запрос.

Re: Работа с поврежденным файлом словаря

PostPosted: Tue Sep 24, 2013 2:27 pm
by Abs62

Re: Работа с поврежденным файлом словаря

PostPosted: Tue Sep 24, 2013 5:01 pm
by podpush
Работает! Программа не падает, при ошибке доступа к битому файлу выдает сообщение в теле карточки. По-моему, отличное решение, спасибо!