Forum Webscript.Ru

Программирование => Perl => Тема начата: Evgeny от 17 Июля 2002, 16:40:30

Название: Символ EOF в текстовом файле.
Отправлено: Evgeny от 17 Июля 2002, 16:40:30
Подскажите пожалуйста, как его игнорировать?
Открываю файл на чтение, поочерёдно считываю строки, но в одной их них, по какой-то глупой ошибке стоит символ 0x1A.
Перл считает, что файл закончился и прекращает обработку.
Редактировать файл нет возможности т.к. 479МБ размер.
Большое спасибо.
Название: Символ EOF в текстовом файле.
Отправлено: от 17 Июля 2002, 19:24:12
В _текстовом_ файле таких символов быть не должно. А если файл бинарный - binmode(FILE).

Если же файл все таки текстовый, и этот символ там по ошибке, то почему бы его не заменить на пробел? Хотя binmode и в этом случае не помешает.
Название: Символ EOF в текстовом файле.
Отправлено: puh от 18 Июля 2002, 10:24:26
И правда, Evgeny, ты в binmode открываешь? А то иначе Perl может и сам решить, что с него хватит и первых 100 МБ :)
Название: Символ EOF в текстовом файле.
Отправлено: Evgeny от 18 Июля 2002, 15:20:59
Цитировать
И правда, Evgeny, ты в binmode открываешь? А то иначе Perl может и сам решить, что с него хватит и первых 100 МБ

Я думал, что в бинарном режиме ф-ция \'<>\' не работает. Сейчас попробовал - работает. А в чём же тогда смысл текстового режима?
Название: Символ EOF в текстовом файле.
Отправлено: от 18 Июля 2002, 18:54:32
Под юниксом нет никакой разницы между текстовым и бинарным режимом.
Виндоус по-разному рассматривает, например окнчания строки