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