Что такое бинари файл

Что такое бинари файл

Вся информация, которая обрабатывается компьютером, хранится в файлах, структура которых зависит от сохраняемой информации. Разработчики сами создают необходимую структуру файла. Кроме пользовательских файлов, существуют четко описываемые стандарты, например графические изображения Jpeg. Все форматы файлов можно разделить на два класса: двоичные (или бинарные) и текстовые. Каждый класс имеет свои преимущества и недостатки.

Текстовые файлы хранят информацию в виде легко читаемого текста. В большинстве случаев, после чтения текстового файла он преобразуется программой в двоичную форму для более удобной обработки, поскольку информация предоставляется в том виде, в котором она обрабатывается во время работы программы.

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

Текстовые файлы являются универсальным средством представления информации в связи с их переносимостью. То есть, не зависимо от разных операционных систем, информация будет прочитана правильно, за исключением проблем с кодированием. Также преимуществом текстовых файлов является независимость от порядка байт в слове. Именно по этому все стандарты или протоколы передачи информации в Internet являются текстовыми.

Наиболее важным недостатком текстового формата является его прозрачная структура, что позволяет всем просматривать информацию.

Вот поэтому для каждого отдельного случая необходимо принимать индивидуальное решение в выборе формата сохранения данных.

Бинарные файлы хранят информацию в том виде, в каком она представлена в памяти компьютера, и потому неудобны для человека. Заглянув в такой файл, невозможно понять, что в нем записано; его нельзя создавать или исправлять вручную — в каком-нибудь текстовом редакторе — и т.п. Однако все эти неудобства компенсируются скоростью работы с данными.

Кроме того, текстовые файлы относятся к структурам последовательного доступа, а бинарные — прямого. Это означает, что в любой момент времени можно обратиться к любому, а не только к текущему элементу бинарного файла .

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

Переменные структурированных типов данных (кроме строкового) невозможно считать из текстового файла. Например, если нужно ввести из текстового файла данные для наполнения записи toy информацией об имеющихся в продаже игрушках (название товара, цена товара и возрастной диапазон, для которого игрушка предназначена):

type toy = record name: string[20]; price: real;

то придется написать следующий код:

c: char; i,j,min,max: integer;

a: array[1..100] of toy;

begin assign(f,input); reset(f);

for i:=1 to 100 do if not eof(f)

then with a[i] do

begin readln(f,name,price,min,max); age:=[];

for j:= min to max do age:=age+[j];

Читайте также:  Ибп для системы видеонаблюдения

Как видим, такое поэлементное считывание весьма неудобно и трудоемко.

Выход из этой ситуации предлагают типизированные файлы — их элементы могут относиться к любому базовому или структурированному типу данных. Единственное ограничение: все элементы должны быть одного и того же типа. Это кажущееся неудобство является

непременным условием для организации прямого доступа к элементам бинарного файла : как и в случае массивов, если точно известна длина каждого компонента структуры, то адрес любого компонента может быть вычислен по очень простой формуле:

Описание типизированных файлов

В разделе var файловые переменные, предназначенные для работы с типизированными файлами , описываются следующим образом:

Никакая файловая переменная не может быть задана константой.

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

С этого момента и до конца раздела под словом "файл" мы будем подразумевать " бинарный типизированный файл " (разумеется, если специально не оговорено иное).

Команда assign(f,’ ‘); служит для установления связи между файловой переменной f и именем того файла, за работу с которым эта переменная будет отвечать.

Строка ‘ ‘ может содержать полный путь к файлу. Если путь не указан, файл считается расположенным в той же директории, что и исполняемый модуль программы.

Открытие и закрытие типизированного файла

В зависимости от того, какие действия ваша программа собирается производить с открываемым файлом, возможно двоякое его открытие:

reset(f); — открытие файла для считывания из него информации и одновременно для записи в него (если такого файла не существует, попытка открытия вызовет ошибку). Эта же команда служит для возвращения указателя на начало файла;

rewrite(f); — открытие файла для записи в него информации; если такого файла не существует, он будет создан; если файл с таким именем уже есть, вся содержавшаяся в нем ранее информация исчезнет.

Закрываются типизированные файлы процедурой close(f) , общей для всех типов файлов.

Считывание из типизированного файла

Чтение из файла, открытого для считывания, производится с помощью команды read() . В скобках сначала указывается имя файловой переменной, а затем — список ввода 1) :

read(f,a,b,c); — читать из файла f три однотипные переменные a , b и c .

Вводить из файла можно только переменные соответствующего объявлению типа, но этот тип данных может быть и структурированным. Cкажем, если вернуться к примеру, приведенному в начале п. " Типизированные файлы ", то станет очевидным, что использование типизированного файла вместо текстового позволит значительно сократить текст программы:

type toy = record name: string[20]; price: real;

var f: file of toy;

a: array[1..100] of toy; begin

for i:=1 to 100 do

if not eof(f) then read(f,a[i]); close(f);

Поиск в типизированном файле

Уже знакомая нам функция eof(f:file):boolean сообщает о достигнутом конце файла. Все остальные функции "поиска конца" ( eoln() , seekeof() и seekeoln() ), свойственные текстовым файлам, нельзя применять к файлам типизированным .

Читайте также:  Zebra tlp 2844 драйвер

Зато существуют специальные подпрограммы, которые позволяют работать с типизированными файлами как со структурами прямого доступа:

1. Функция filepos(f:file):longint сообщит текущее положение указателя в файле f . Если он указывает на самый конец файла, содержащего N элементов, то эта функция выдаст результат N . Это легко объяснимо: элементы файла нумеруются начиная с нуля, поэтому последний элемент имеет номер N-1 . А номер N принадлежит, таким образом, "несуществующему" элементу — признаку конца файла.

2. Функция filesize(f:file):longint вычислит длину файла f .

3. Процедура seek(f:file,n:longint) передвинет указатель в файле f на начало записи с номером N . Если окажется, что n больше фактической длины файла, то указатель будет передвинут и за реальный конец файла.

4. Процедура truncate(f:file) обрежет "хвост" файла f : все элементы начиная с текущего и до конца файла будут из него удалены. На самом же деле произойдет лишь переписывание признака "конец файла" в то место, куда указывал указатель, а физически "отрезанные" значения останутся на прежних местах — просто они станут "бесхозными".

Запись в типизированный файл

Сохранять переменные в файл, открытый для записи , можно при помощи команды write() . Так же как и в случае считывания, первой указывается файловая переменная, а за ней — список вывода:

write(f,a,b,c); — записать в файл f (предварительно открытый для записи командами rewrite(f) или reset(f) ) переменные a , b , c .

Выводить в типизированный файл можно только переменные соответствующего описанию типа данных. Неименованные и нетипизированные константы нельзя выводить в

Типизированные файлы рассматриваются как структуры одновременно и прямого, и последовательного доступа. Это означает, что запись возможна не только в самый конец файла, но и в любой другой его элемент. Записываемое значение заместит предыдущее значение в этом элементе (старое значение будет "затерто").

Например, если нужно заместить пятый элемент файла значением, хранящимся в переменной а , то следует написать следующий отрывок программы:

Для наглядного представления двоичного файла он разбивается на куски равного размера, представляемые в виде чисел, записываемых, обычно, в шестнадцатеричной системе, иногда в восьмеричной, двоичной или десятичной. Означенный размер куска может быть равен одному октету, а также двум или четырём (в случае разбиения на куски по несколько октетов применяется порядок байтов, принятый на используемой платформе). Зависимость диапазона представляемых чисел от размера куска показана в таблице:

октетов кол-во бит шестнадцатеричное восьмеричное десятичное
беззнаковое
десятичное
знаковое
1 8 00

FF
000

377
0

255
-128

127
2 16 0000

FFFF
000000

177777
0

65535
-32768

32767
4 32 00000000

FFFFFFFF
00000000000

37777777777
0

4294967295
-2147483648

2147483647

Инструменты

Для визуализации

  • debug (в Microsoft Windows, частично)
  • hexdump (в GNU/Linux и т. п.)
Читайте также:  Как настроить точку доступа на телефоне нокиа

Для редактирования

  • HEX-редактор
  • biew (для всех операционных систем, свободная программа)
  • WinHex (для «Windows»)

Литература

  • Webster’s New World Dictionary of Computer Terms, 4th. Ed, Prentice Hall, NY, 1992. ISBN 0-671-84651-5
  • Леонтьев Б. К. Форматы файлов Microsoft Windows XP: Справочник, М.: ЗАО «Новый издательский дом», 2005. ISBN 5-9643-0059-6

Wikimedia Foundation . 2010 .

Смотреть что такое "Бинарный файл" в других словарях:

файл — сущ., м., употр. сравн. часто Морфология: (нет) чего? файла, нет? файлу, (вижу) что? файл, чем? файлом, о чём? о файле; мн. что? файлы, (нет) чего? файлов, чем? файлам, (вижу) что? файлы, чем? файлами, о чём? о файлах 1. Файлом называется массив… … Толковый словарь Дмитриева

Бинарный формат — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия

Двоичный файл — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются… … Википедия

конфигурационный файл — Бинарный или текстовый файл, содержащий информацию, которая определяет поведение приложения, компьютера или сетевого устройства. [http://www.lexikon.ru/dict/net/index.html] Тематики сети вычислительные EN configuration file … Справочник технического переводчика

.ipa — У этого термина существуют и другие значения, см. IPA (значения). .IPA формат архивных файлов приложений от Apple для iPhone, iPod Touch и iPad. Файлы с данным расширением хранятся в магазине App Store и загружаются с помощью iTunes для… … Википедия

Паскаль (язык программирования) — Эта статья или раздел нуждается в переработке. В Паскале нет модулей, ООП и прочих новомодных веяний. Описание расширений должно присутствовать только в статьях о соответ … Википедия

Паскаль (язык) — Pascal Семантика: процедурный Тип исполнения: компилятор Появился в: 1970 г. Автор(ы): Никлаус Вирт Паскаль (англ. Pascal) высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко… … Википедия

Gopher (сетевой протокол) — Gopher Название: Gopher Порт/ID: 70/TCP Спецификация: RFC 1436 Основные реализации (клиенты): Mozilla Firefox, Microsoft Windows: IE 5.x, IE 6 (ограничено MS) Gopher сетевой протокол распределённого поиска и передачи документов, бывший широко рас … Википедия

Gopher — Название: Gopher Порт/ID: 70/TCP Спецификация: RFC 1436 Основные реализации (клиенты): Mozilla Firefox, Microsoft Windows: Internet Explorer 5.x, Internet Explorer 6 (ограничено MS) Gopher сетевой протокол распределённого поиска и передачи… … Википедия

Список расширений имени файла/B — / * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Примечание: Поскольку расширение имени файла может быть любым, представленный список не является полным … Википедия

Ссылка на основную публикацию
Что написать о себе в инстаграмме девушке
Вроде как и всё ясно, но в самом деле, как только доходит до дела, написать о себе в Инстаграм, у...
Чем открыть cab файл на компьютере
Файл формата CAB открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ. Чем открыть файл в формате...
Чем открыть fb2 на телефоне
Формат электронных публикаций FB2, наряду с EPUB и MOBI, является одним из самых популярных для книг, публикуемых в интернете. Мы...
Что нового в айос 12 1
Apple выпустила iOS 12.1.1 − скорее всего, последнюю публичную сборку iOS 12 в этом году. Хотя это обновление по большей...
Adblock detector