Визначити бінарний файл або текстовий

ID> У кого-небудь є алгоритм сабжа?

Наскільки я розумію - не буває. Розподіл між бінарними і текстовими
файлами - умовність. Тому АЛГОРИТМА, тобто точної і однозначної
послідовності дій тут бути не може.

Існують евристики, що дозволяють сказати що файл
свідомо бінарний. Наприклад - у файлі виявлені керуючі символи,
відмінні від \ r, \ n, \ t. Якщо там є символ з кодом 0 - 99.9% що це
бінарний файл. Мені траплялася тільки одна програма (на Mac) яка
обожнювала ліпити нульовий символ в текстові файли. Софт на VAX / VMS від
цього дуже дивувався і не хотів такі файли обробляти.

Або що кінець рядка (який в залежності від
платформи може бути \ r, \ n або \ r \ n) зустрічається не рідше ніж, скажімо 80
символів (останнім часом, коли часто кінець рядка використовується як
роздільник абзаців, ця евристика працює погано)

Звичайно, ти в своїй програмі можеш ввести своє визначення кордону
між текстовим і бінарним файлом, яке буде допускати існування
алгоритму. Але не ображайся, якщо який-небудь користувач надішле тобі
файл, який він вважає текстовим, а твоя програма - бінарним або
навпаки.

Власне, основна причина, по якій хочеться розрізняти бінарні і
тектових файли - це можливість автоматичного перетворення решт
рядків між трьома вищенаведеними варіантами. Але краще піти іншим
шляхом і завжди інтерпретувати як кінець рядка будь-яку з трьох
вищенаведених комбінацій. А всі файли завжди відкривати як бінарні.

--
Ми обліпили дірку тестом
Буде діркам в тестах тісно
Буде Тирке в десть десно,
Буде просто пречудесно.

Alexander B. Bokovikov

Post by Victor Wagner
Якщо там є символ з кодом 0 - 99.9% що це
бінарний файл.

Щас. Про юнікод ми не чули.
Текстовий == ASCII. Або що?

Post by Victor Wagner
Мені траплялася тільки одна програма (на Mac) яка
обожнювала ліпити нульовий символ в текстові файли.

До речі ось Ворд - це як? Адже по суті-то це текст :)

ID >> У кого-небудь є алгоpитм сабжа?
AP>
AP> Зазвичай бінаpний файл розпізнається за наявністю в ньому символів з кодом
AP> меншим
AP> ніж у пpобелов, відмінних від табуляції, возвpата каpеткі і перекладу стpоки.
AP> Hекотоpие західні програмі вважають бінаpнимі також і файли, содеpжащие
AP> символи з кодом великим 127.

На мою думку, такбило б непогано посмотpеть вихідні юніксовой утиліти file

Bye!
SysOp Nickolas
Now Playing: TRACK08
[DISCONNECT]