Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как различить текстовый файл от двоичного?


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо