ПОНЯТНО О Visual Basic NET (том 3)




Нетипизированные файлы


Философия. Предположим, перед вами файл, о котором вы ничего не знаете. Вы даже не знаете, текст там записан или музыка, картинки иди видео, а может быть программа? Но вам хочется все-таки прочесть, что в нем есть. Вы пробуете открыть его в Блокноте, но видите только мешанину причудливых символов. Значит это не текстовый файл. Может быть это типизированный файл? Но чтобы его прочесть, нужно знать структуру записи, а вы не знаете. Может быть это картинка? Вы пробуете открыть его в графическом редакторе (20.9.2) – не получается. Может быть, это музыка или видео? Вы пробуете открыть его в нашем Плеере (3.10) – тоже не получается. Что же это? Вопрос не для новичка. Что-то может подсказать вам расширение. Если у вас есть опыт, то что-то может подсказать Блокнот или так называемый двоичный редактор.

Что мы знаем о файле, о котором ничего не знаем? Только то, что это длинная цепочка байтов, в которых создателем файла закодирована какая-то информация. Какая именно? – вот в чем проблема.

Раз так, то поставим задачу прочесть подряд все байты из файла.

Что такое байт? Байт – это цепочка из 8 битов. Каждый бит – это элементарная компьютерная единичка информации, принимающая одно из двух значений. Принято условно обозначать эти значения, как 0 и 1. Таким образом, байт может иметь такой вид:

11000110

или, скажем, такой:

00000011

Попробуйте догадаться, сколько всего возможно различных сочетаний нулей и единиц в байте. Правильно – 28, то есть 256. Поэтому байт может принимать одно из 256 значений, а значит может закодировать одну из 256 вещей. Природа этих вещей может быть совершенно любая.

Попробуем поглядеть на код любого конкретного байта в файле. Пусть это будет

00100011

Можно ли, глядя на него, догадаться, что создатель файла закодировал им? Совершенно невозможно. Если он записывал целые числа типа Byte, то это число 35. Если он записывал строки или символы, то это половинка от какого-то символа в кодировке Unicode или целый символ  #  в кодировке ASCII. Если это картинки, музыка или видео, то для того, чтобы сказать, какой смысл имеет каждый отдельный байт файла, нужно знать применяемый в данном файле принцип кодировки картинок, музыки или видео. А это непростая задача – нужно хорошо разбираться в графике, музыке или видео. К тому же принципов кодировок много и они сложны.




Содержание  Назад  Вперед