Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СКТЭ Занятие 9.docx
Скачиваний:
43
Добавлен:
21.03.2016
Размер:
73.38 Кб
Скачать

Лекция 7. Форматы данных стандартных типов

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

Например, подавляющее большинство программ-архиваторов помимо своего формата архива поддерживают открытый формат ZIP. Описание его доступно в интернете, а компания-разработчик стандарта PKWARE открыла исходный код (текст программ) для работы с архивами этого формата, его тоже можно свободно скачивать в Интернете (Info-Zip.org). Этот же формат используется для сжатия интернет-трафика. Большинство браузеров позволяют работать со сжатыми в таком формате данными и при соединении с сервером сообщают ему о этой своей готовности.

Один из алгоритмов метода сжатия (LZW) использует и стандарт файлов PDF.

Рис. 1. Пример данных PDF файла (Portable Document Format)

%PDF-1.1

1 0 obj

<<

/Filter [/ASCII85Decode /LZWDecode ]

/Length 459

>>

stream

...

endstream

endobj

На (Рис. ) показан пример такого файла. В нем в текстовом формате описываются разные объекты документа. К некоторым из них для сжатия могут применяться фильтры. Например, для чтения объекта 1 нужно применить фильтры ASCII85 и LZW. Сами двоичные данные объекта идут между строками stream и endstream.

Сам PDF с 1 июля 2008 года является открытым стандартом ISO 32000 и его тоже умеют понимать многие программы.

1. Определение типов данных

Во многих случаях тип данных, представленный в файле может быть определен из имени файла (в Windows – из расширения). В силу того, что на имя файла и расширение требований нет, их может быть бесконечно много. Некоторые типичные наименования для различных программ можно посмотреть в справочниках. Часть данных одного из них представлена в таблице.

Таблица 1. Пример описания расширений файлов (до буквы «c»)

Расширение

Содержание

Программа

!ut

Незавершенная закачка

μTorrent

$$$

Временный файл

$ED

Временный файл редактора

MS C

??_

Упакованный файл Microsoft

Expand

nnn

Тома архива Rar вплоть до 999

RAR

1CD

Файл базы данных 1С:Предприятия 8 (файловая версия)

1С:Предприятие 8

1ST

Usually README.1ST text file

386

Windows virtual device driver

Win

3DS

3D Studio Graphics format

3D Studio

3GP

3rd generation mobile video

Win

4MD

Musical file

7Z

Архив 7zip

7 zip

Ann

Многотомный ARJ архив

ARJ

ACE

Архив

WinACE

ACL

список автозамен

MS Office

ARC

Архив

ARCPKARC/PKXARCPKPASPKUNPAKQUARK

ARC

Архив

SQUASH

ARJ

Архив

ARJARJZ

BAK

Файл резервной копии

BAT

Файл команд DOS

DOS

BK?

Резервная копия

BMP

OS/2 или Win графический формат (BitMap Picture)

QPegCorelDrawPC Paintbrush — и многие другие

BZ2

Архив bzip2

bzip2

C

Исходный текст программы на языке C

Watcom C/C++ и многие другие

C

Unix file archive

COMPACT

CAB

Сжатый файл Win 95

Win 95

CAS

Исходный текст программы на языке C со вставками на ASM

Turbo C

CDA

CD-Audio

Win95

DR

Рисунок в векторном формате

CorelDraw

CMD

Command

dBASE - Waffle

CMD

OS/2 batch/REXX file, Win cmd

Win, OS/2

CPP

C++ language source

CRK

Crack file (usually text)

CSS

Data file

CSV

Comma Separated Values text file format (ASCII)

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

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

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

Например, любой откомпилированный класс языка Java начинается с «магического числа» 0xCAFEBABE. Сомнительно, чтобы это число было как-то связано с английским Cafe Babe.

Таблица 2. Примеры сигнатур некоторых типов файлов

Тип

Сигнатура файла

Положение

.rar

Rar!

В начале файла

.zip

PK

В начале архива, в начале каждого архивного файла, в начале оглавления в конце файла

.exe

MZ

В начале файла

.doc

РП в кодировке Windows

В начале файла

Текст в Юникоде

С адреса A00

.jpg

JFIF

С адреса 06