OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Апрель, 2024 00:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как читать повреждённый файл?
СообщениеДобавлено: Вторник, 09 Октябрь, 2007 14:19 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
У меня есть DVD с повреждённым файлом фильма. С помощью Nero Show Time фильм смотреть можно, просто в том месте где он повреждён надо на одну минутку передвинуть вперёд ползунок проигрывания. Скопировать файл с помощью "Проводника" с DVD на жесткий диск не удаётся -- дивидюк же не читается! Попробовал в Блэкбоксе написать простенькую програмку копирования с занулением повреждённых байтов. В модуле Files у Reader-а в описании метода ReadByte сказано, что если чтение удалось, то позиция сдвигается на единицу. Вот я и обрадовался. Думал, когда чтение не удастся, значит я в копируемый файл напишу нолик, а позицию считывателя сдвину вручную rd.SetPosition(pos+1); А вот и не тут-то было! При попытке прочитать повреждённое место процедура rd.ReadByte оказывается (предварительно зависнув на пару минут) тупо выпадает в System TRAP по HALT(101). Это просто безобразие, ведь повреждённые файлы не такая уж и редкость, програма должна уметь отрабатывать ошибку чтения штатным образом, а не вызывать HALT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как читать повреждённый файл?
СообщениеДобавлено: Вторник, 09 Октябрь, 2007 17:36 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Даже если бы не было трэпа, результата дождаться бы не удалось. Чтение же идет блочное - по секторам. Если на одно чтение винда ковыряет диск две минуты, то пока вы такой сектор побайтно пройдете - сколько ждать? А порченый то не один сектор. Быстро же проскочить такой порченый сектор файловыми средствами не получится, тут надо работать напрямую с диском и секторами. Есть спец. программки для этого, например BadCopy.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как читать повреждённый файл?
СообщениеДобавлено: Вторник, 09 Октябрь, 2007 18:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
В BHV-Петербург вышла книга Всеволода Несвижского "Программирование устройств SCSI и IDE". Для таких задач может оказаться полезной. Однако лучше использовать существующий спец. софт...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как читать повреждённый файл?
СообщениеДобавлено: Среда, 10 Октябрь, 2007 08:25 

Зарегистрирован: Среда, 28 Февраль, 2007 00:08
Сообщения: 142
Откуда: Нижний Новгород
Программы для записи дисков используют spti или aspi. Подозреваю, что проги для восстановления пользуются тем же. к BadCopy добавлю NonStopCopy (развитие прекратилось кажется в 2003 году т.к. автор не нашел как её еще улучшить). Исходников авторы таких прог вроде как не выкладывают :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как читать повреждённый файл?
СообщениеДобавлено: Четверг, 11 Октябрь, 2007 10:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
А я с тем файлом справился с помощью Nero -- скопировал образ DVD с включённой галочкой "Игнорировать ошибки чтения"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как читать повреждённый файл?
СообщениеДобавлено: Пятница, 12 Октябрь, 2007 10:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сергей Губанов писал(а):
... скопировал образ DVD с включённой галочкой "Игнорировать ошибки чтения"...

Вот и еще миленькая задачка: читатель файлов, игнорирующий ошибки.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB