![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как различить текстовый файл от двоичного?
SPeller © (2004-08-14 17:51:00)Подскажите, какие есть алгоритмы определения рода информации в файле? Где можно почитать, посмотреть примеры об этом?
Anatoly Podgoretsky (2004-08-16 13:42:00) [1]panov © (16.08.04 13:36) [30]
Символы псевдографики входят в стандартный набор ASCII Extended как печатные и принтера, дисплеи их поддерживают напрямую.
Но это так между делом.
А по сути автор должен сам определить что он считает допустимыми символами, а что нет и уже от этой позиции действовать. Естественно для разных кодировок этот набор правил может различаться. В Виндоус нет псевдографики, но теже самые позиции в кодовой странице считаются печатными.
panov (2004-08-16 13:36:00) [2]т.е. документ, в котором имеется псевдографика, не является текстовым.
panov (2004-08-16 13:35:00) [3]Под текстовым файлом в компьютерном деле понимается файл, содержащий только буквы и знаки препинания, как правило, имеющий строчную структуру, где строки отделяются друг от друга специальными кодами (для DOS и Windows это 13 и 10).
Если в файле кроме собственно текста содержатся какие-то указания на то, как он должен выглядеть на печати (шрифты, способ выравнивания абзацев), то это уже не текст. Это документ.
КаПиБаРа (2004-08-16 12:17:00) [4]
> Anatoly Podgoretsky © (16.08.04 08:54) [27]
Понимаете, Анатолий, некоторым не дает покоя мысль что продукт можно сделать оригинельнее, лучше. Другие же боятся пальцем пошевелить. Первые достигают успеха, вторые же так и остаются на втором плане.
Anatoly Podgoretsky (2004-08-16 08:54:00) [5]КаПиБаРа © (16.08.04 08:51) [25]
Зачем? Я конечно точно не знаю его задачи, но явно достаточно сканировать файл до первого непечатного символа, исключая разрешеные управляющие.
Anatoly Podgoretsky (2004-08-16 08:52:00) [6]GuAV © (15.08.04 20:32) [23]
Вопрос спорный, по определению EOF может быть в любом месте, все коды после него должны игнорироваться, точнее прекращаться обработка файла. Не относится к двоичным файлам.
Escape и следующее за ним, же по определению не относится к текстовым, поскольку этот символ как раз и говорит, что последуюшее не является текстом, а является управляющей (двоичной) последовательностью. Хотя при желании можно ввести ограничение, что EOF не может встречаться в середине файла, но лучше так не делать.
КаПиБаРа (2004-08-16 08:51:00) [7]Можно сделать эвристический анализ на основе "спектрограммы" (процентного состава различных групп байтов) файла.
SPeller (2004-08-16 07:52:00) [8]Всем большое спасибо за участие, буду делать потихоньку.
GuAV (2004-08-15 20:32:00) [9]
> Я иы оставил Bel, BS, Tab, LF, FF, CR, EOF
+ #26, если в конце файла?
Anatoly Podgoretsky (2004-08-15 13:59:00) [10]Офтопи, уметь надо, не каждому дано :-)
GrayFace (2004-08-15 13:44:00) [11]Anatoly Podgoretsky © (15.08.04 13:15) [20]
Как вы умудрились нажать 'и' вместо 'б' - они же далеко друг от друга?? :)
Anatoly Podgoretsky (2004-08-15 13:15:00) [12]Я иы оставил Bel, BS,Tab, LF, FF, CR, EOF
Anatoly Podgoretsky (2004-08-15 13:07:00) [13]Не забудь тогда об конце файла, это для текстовых файлах нормальный символ. Всех врагов выбирай из дивпазона 0..31
SPeller (2004-08-15 13:04:00) [14]
> надо решить, являются ли символы, например, псевдографики
> допустимыми.
Я намерен использовать только виндовую кодировку, поэтому вопрос о псевдографике у меня не стоит.
> TUser © (15.08.04 11:04) [14]
> ☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ - они могут быть в текстовом файле или
> нет?
Это в большинстве юникодные символы, их нет в ansi.
> Семантическое понятие ........
Я прекрасно понимаю что всё относительно. Но всё-же попытаться захватить пусть не все, но наиболее распространенные случаи попытаться можно.
> Юрий Зотов © (15.08.04 10:39) [13]
> Еще 12 (прогон страницы). Не исключен и 7 (звуковой сигнал).
Думаю что 12 можно оставить, 7 ещё надо подумать, а вот 27 - я думаю надо определить как врага (в моем случае).
GrayFace (2004-08-15 12:31:00) [15]> 0><¦!¶§-¦^v><L-^Ў - они могут быть в текстовом файле
> или нет?
Конечно.
GrayFace (2004-08-15 12:31:00) [16]Наверное.
YurikGL (2004-08-15 11:26:00) [17]
> TUser © (15.08.04 11:04) [14]
Привожу по памяти
Синтаксис - наука о связях между словами в предложении
Орфография - наука о связях между буквами в слове
Семантика - наука о связях между словами и объектами
TUser (2004-08-15 11:04:00) [18]☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ - они могут быть в текстовом файле или нет?
> А понятия эти - семантические
>
> Интересная терминология. Семантика тоже разная бывает. В
> том числе, как я представляю, и в бинарных кодах.
Семантическое понятие (в моем понимании) - такая характеристика чего угодна, которая назначается пользователем по своему усмотрению, в соответствии с его (пользователя) представлениями о данном объекте, и не может существовать алгоритма, который определяет эту характеристику. Например понятие 'первичный ключ' является семантическим, т.к. уникальность записей по данному набору доменов не позволяет однозначно утверждать, что это набор доменов - ключ или первичный ключ. Например, год рождаения в данном наборе данных может ни разу не повторяться, но проектировщик базы может заявить - повторение здесь возможно, т.е. это не ключ. В данном случае, файл - это набор байт. Понятия 'текстовый' и 'бинарный' относятся не к содержанию файла, а к методам работы с ним. Это только пользователь может сказать - каким образом обрабатывать информацию из данного файла.
PS. Термин взят из Дейта.
Юрий Зотов (2004-08-15 10:39:00) [19]> SPeller © (15.08.04 09:12) [9]
> это 9, 10 и 13.
Еще 12 (прогон страницы). Не исключен и 7 (звуковой сигнал). И еще 27 (escape), после которого могут идти, вообще говоря, любые символы - это и есть те самые escape-последовательности (управляющие команды принтера).
Anatoly Podgoretsky (2004-08-15 09:47:00) [20]Считаются, это ASCII Extended