![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как различить текстовый файл от двоичного?
SPeller © (2004-08-14 17:51:00)Подскажите, какие есть алгоритмы определения рода информации в файле? Где можно почитать, посмотреть примеры об этом?
YurikGL (2004-08-15 09:32:00) [21]http://www.yandex.ru/yandsearch?stype=&nl=0&text=%FD%F1%EA%E5%E9%EF+%EF%EE%F1%EB%E5%E4%EE%E2%E0%F2%E5%EB%FC%ED%EE%F1%F2%FF%EC%E8
Эскейп-последовательности предсталяют собой последовательность символов, начинающихся с ASCII-символа ESC (код 0x1B) и следующим за ним различных аргументов. Исторически, подобные последовательности применялись для управления неинтеллектуальными (dumb) терминалами для формирования команд на перевод строки, отступ, табуляция и т.д. В настоящее время широко применяются во многих ОС для формирования различных аттрибутов текста, формирования приглашения командной строки и т.д.
> Anatoly Podgoretsky © (15.08.04 07:37) [8]
В добавление к этому - надо решить, являются ли символы, например, псевдографики допустимыми.
olookin (2004-08-15 09:16:00) [22]А понятия эти - семантические
Интересная терминология. Семантика тоже разная бывает. В том числе, как я представляю, и в бинарных кодах.
SPeller (2004-08-15 09:12:00) [23]
> Fay © (15.08.04 03:35) [5]
> Нет файлов "недвоичных". Понятие "текстовые файлы" требует
> определения. Реши для себя, что это такое и сразу получишь
> готовый алгоритм.
Да знаю я прекрасно что текстовый файл это тот же двоичный, только данные в нем своеобразные.
> Германн © (15.08.04 03:52) [6]
> В первом приближении - изучи таблицу ASCII в первой ее половине.
Я ее и так знаю. И ascii и ansi.
> Anatoly Podgoretsky © (15.08.04 07:34) [7]
> SPeller © (15.08.04 03:30) [4]
> При таком определении, реши для себя какие коды из 0-31
> не могут встретиться в текстовом файле, ну и как встретишь
> хоть один такой считай, что у тебя файл не текстовый.
Видимо так и придется делать. Просто я думал что если в текстовом файле могу-таки встретиться парочка непечатаемых символов, то чтобы определить это и не заставлять юзера вручную переключать вид. А из символов 0-31, которые могут быть в файле, это 9, 10 и 13.
> Например не считается текстовым файлом - файл с управляющими
> эскейп последовательностями
Это что за последовательности?
Anatoly Podgoretsky (2004-08-15 07:37:00) [24]Текстовым считается файл, который без преобразований можно вывести на текстовый принтер, терминал, стандартный вывод и увидеть на этих устройствах вывода без загадочных значков. Например не считается текстовым файлом - файл с управляющими эскейп последовательностями.
Anatoly Podgoretsky (2004-08-15 07:34:00) [25]SPeller © (15.08.04 03:30) [4]
При таком определении, реши для себя какие коды из 0-31 не могут встретиться в текстовом файле, ну и как встретишь хоть один такой считай, что у тебя файл не текстовый.
Германн (2004-08-15 03:52:00) [26]В первом приближении - изучи таблицу ASCII в первой ее половине. Определи какие коды относятся к "печатным", а какие к "не печатным". Присутствие вышеупомянутых "не печатных" кодов в файле будет явным признаком того, что он не является текстовым в понимании времен ДОСа.
Fay (2004-08-15 03:35:00) [27]Нет файлов "недвоичных". Понятие "текстовые файлы" требует определения. Реши для себя, что это такое и сразу получишь готовый алгоритм. 8)
SPeller (2004-08-15 03:30:00) [28]Абсолютно точно мне и не надо. Мне бы с бОльшей вероятностью. Причем вне зависимости от расширения. На счет нулевого байта - он может и не быть в двоичном, ззато могут быть #1, #2, #3 и т.п. На счет юникода - его пока что во внимание не принимать и считать двоичным.
YurikGL (2004-08-14 18:45:00) [29]Можно попробовать по расширению, по заголовку...
Но присодединюсь к > TUser © (14.08.04 17:56) [1]что абсолютно-точных алгоритмов быть не может
GuAV (2004-08-14 18:44:00) [30]Раньше AFAIR текстовым считался файл каждый байт которого имел 0 в старшем бите, т.е. русские текстовики не попадали. Сейчас - даже не знаю что понимать под текстом. Например Unicode - текст? RTF - текcт?
TUser (2004-08-14 17:56:00) [31]Если встречается №0 - двоичный. Если нет - какой угодно. А понятия эти - семантические, абсолютно надежных алгоритмов, соотвественно, быть не может.