Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_OP / T14.doc
Скачиваний:
136
Добавлен:
17.03.2016
Размер:
405.5 Кб
Скачать

Класифікація файлів даних

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

Загалом файли даних класифікують за двома ознаками (рис. 3):

  • за типом (за логічною структурою);

  • за методом доступу до компонент файлу.

Рис. 3. Класифікація файлів даних

За логічною структурою файли поділяються на текстові та бінарні (двійкові); за методом доступу розрізняють файли послідовного та прямого доступу.

Текстові файли призначені для збереження текстової інформації. Такі файли є сукупністю символьних рядків змінної довжини. Кінець кожного рядка у такому файлі позначається спеціальним маркером "кінець рядка" (наприклад, Eoln). Цією ознакою у різних типах ОС є різні спеціалізовані символи: в системах DOS - Windows використовується пара керуючих символів з кодами 0D (#13 - "повернення каретки") та 0А (#10 - "переведення рядка"), в системах Unix - тільки один символ з кодом 0D, тоді як в MacOS - символ 0А. Кінець самого файлу позначається маркером "кінець файла" (керуючий символ з кодом #26).

Приклад текстового файла, що складається з двох рядків, наведено на рис. 4.

Рис. 4. Текстовий файл, що є сукупністю рядків

Текстові файли характеризуються також тим, що інформація в них має такий самий вигляд, як і на екрані, тоб­то її можна читати. Відповідно текстові файли можна переглядати і змінювати вручну будь-яким текстовим редактором.

Бінарні файли використовуються для збереження даних певного типу. Вони зберігають інформацію у внутрішньому двійковому поданні. При перегляді такого файлу неможливо зрозуміти, що в ньому записано - можна побачити лише послідовність байт в шістнадцятковому форматі. Такий файл не можна створювати або виправляти вручну у якомусь текстовому редакторі. Однак всі ці незручності компенсуються швидкістю роботи з даними.

Щоб зрозуміти, що записано в бінарному файлі, потрібно знати його структуру.

У загальному випадку бінарні файли поділяють на типізовані та нетипізовані (безтипові). Такий поділ, наприклад, існує у мові Pascal.

Типізовані файли складаються з компонент строго визначеноготипу. Компоненти такого файлу можуть бути будь-якого типу, окрім файлового. Нетипізовані файли не мають жорстко встановленої одиниці читання/запису і можуть розглядатися як сукупність байтів. Безтипові файли використовуються для прямого доступу до довільного файлу на диску, незалежно від його внутрішнього формату.

Отже, поняття текстових чи бінарних файлів – це поняття інтерпретації даних. Наприклад представлення числа 1023:

  • у текстовому файлі (форматі): 0х31 0х30 0х32 0х33 (4 байти)

  • у бінарному файлі (форматі): 0xFF 0x03 (2 байти)

Будь-який файл, підготовлений як текстовий або типізований, можна відкрити і почати роботу з ним, як з нетипізованим набором даних. У цьому випадку не потрібно втрачати час на перетворення типів і пошук керуючих послідовностей, - досить зчитати вміст файлу в певну область пам'яті. Але, з іншого боку, при роботі з нетипізованим файлом програміст сам відповідає за доступ до даних: будь-яка помилка при цьому дезорганізує всю роботу з файлом.

Нетипізовані файли використовуються для низкорівневої роботи з файлами: при розробці високошвидкісних утиліт зчитування, копіювання, організації роботи із системними областями пам'яті комп'ютера, у тому числі з відеопам'яттю.

Особливістю деяких мов програмування, зокрема, С/С++, є відсутність в цих мовах структурованих файлів. Всі файли розглядаються як неструктурована послідовність байтів. При такому підході поняття файла може поширюватися і на різні пристрої. Одні й ті ж функції можуть використовуватися як для обміну даними з файлами, так і для обміну з пристроями.

Хоча дані у файл записуються послідовно, у порядку їхнього надходження, оброблятися компонети файлів можуть двома способами: послідовно – коли черговий елемент можна прочитати (записати) тільки після аналогічної операції з попереднім елементом; за допомогою прямого доступу (англ. random access) – коли читання (запис) довільного елемента здійснюється безпосередньо за його номером (адресою). Файл, байти якого можуть бути зчитані тільки послідовно, називають файлом послідовного доступу; файл, байти якого можуть бути зчитані в довільному порядку є файлом прямого доступу. Послідовний доступ можливий для всіх типів файлів, прямий - тільки для бінарних.

Соседние файлы в папке lektsii_OP