пʼятниця, 4 листопада 2011 р.

ФАЙЛОВІ ТИПИ ДАНИХ В МОВІ ПРОГРАМУВАННЯ TURBO PASCAL

Будь-яка розвинута мова програмування повинна містити засоби для організації зберігання інформації на зовнішніх носіях пам’яті та доступу до цієї інформації (обмін інформацією). Будь-який обмін інформації має на увазі наявність джерела інформації, каналу передачі і приймача інформації. У разі обміну даними між програмою і периферійними пристроями одним кінцем каналу обміну даними завжди являється оперативна пам'ять комп'ютера. Інший кінець каналу визначається як ФАЙЛ. Поняття файлу є досить широким. Це може бути звичайний файл на диску, або комунікаційний порт (інший комп'ютер, інформаційна мережа, клавіатура, екран монітора і т.п.), пристрій друку або щось інше. Файл може бути джерелом інформації – тоді ми зчитуємо дані з файлу (ВВЕДЕННЯ ДАНИХ З ФАЙЛУ) або приймачем – коли ми записуємо дані у файл (ВИВІД ДАНИХ У ФАЙЛ).

Операція виводу даних означає пересилку даних з робочої пам'яті (ОЗП) комп'ютера у файл, а операція введення – заповнення елементів робочої пам'яті комп'ютера даними отриманими з файлу. Умовно файлову система в Паскалі поділяють на два рівнів: логічні файли та фізичні файли.
ЛОГІЧНИЙ ФАЙЛ – це змінна одного з файлових типів, визначених в Паскалі. Логічний файл або файлову змінну можна представити як посередника обміну даними між комп'ютером і файлом, який знаходиться на пристрої зберігання інформації. Після оголошення в розділі опису файлової змінної, вона використовується як засіб спілкування з будь-яким фізичним файлом. Файлова змінна являється зв'язуючою ланкою між обома кінцями каналу обміну даними. Можна сказати і так : “Тільки файлова змінна і лише вона знає КУДИ/ЗВІДКІЛЯ поступає інформація, тому тільки через неї можна здійснювати обмін даними при роботі з файлами”.
ФІЗИЧНИЙ ФАЙЛ – це файл даних на зовнішньому носію пам’яті. Фізичний файл визначається рядком з його назвою (ім'ям) під якою цей файл зберігається на диску. В Паскалі імена файлів можуть бути рядковими константами або зберігатися в рядкових змінних. Ім'я файлу може мати адресну частину, оформлену за правилами MS – DOS наприклад:
‘С:\PAS\Priklad.Pas‘; {Файл з ім'ям Priklad.Pas має адресну частину С:\PAS. Цей запис означає, що дані зберігаються (або будуть зберігатися) у файлі під ім'ям Priklad.PAS за адресою:  диск С:, каталог PAS}.
‘А:\TEST.TXT‘; {Файл TEST.TXT зберігається (буде зберігається) на диску А:}.
‘Program1.DOC‘; {Файл з ім'ям Program1.DOC знаходиться в каталозі з якого завантажена програма, що виконується}.
Інший різновид фізичних файлів – це файли-пристрої (інші комп'ютери, клавіатура, принтер і т.п.). Пристрої мають свої фіксовані імена і робота з ними схожа з обробкою “дискових файлів”. Як приклад пристрій – ‘NUL’. Це бездонний файл, що приймає все що завгодно, але завжди порожній. В загалі це “чорна діра” в пам'яті комп'ютера, яка інколи необхідна при скиданні сторонньої (не потрібної) інформації в “нікуди”. Ще один пристрій – ‘PRN’ позначає принтер.
 З файловою системою Паскаля пов'язано поняття БУФЕРА «Введення-виведення». Може здатись дивним, але якщо виконалася команда запису даних у файл, то це не означає, що на диску дійсно з'явилися нові дані. Справа в тому, що вивід даних, як і введення, здійснюється через буфер. Буфер – це область пам'яті, що відводиться при відкритті файлу. При записі у файл інформація спочатку прямує в буфер і нагромаджується там до тих пір, поки весь об'єм буфера не буде заповнений. Тільки після цього або після спеціальної команди накопичена інформація передається на диск або на інший вказаний пристрій. І може виникнути ситуація, коли буфер не заповнений повністю, а програма закінчила працювати. В такій ситуації інформація залишається в пам'яті, і в файлі буде відсутня. Теж відбувається і при зчитуванні даних з файлу. Зчитується стільки даних скільки вміщається в буфер. Наприклад, якщо буфер вміщає 54 числа, а запрошується 4, то інші 50 будуть зчитані з буфера (може зчитатися сміття). Такі ситуації повинен відстежувати і попереджувати сам програміст.
Паскаль підтримує три файлові типи:
TEXT – текстовий файл;
FILE OF … – компонентний (що типізується) файл;
FILE – без типізований файл.
Текстові файли – це файли, що складаються з ASCII – кодів. Текстові файли організовуються по рядках. Будь-яка інформація в текстовому файлі зберігається у вигляді символів. Наприклад при наборі будь-яких символів на клавіатурі, організовується текстовий файл.
Компонентами файлів, що типізуються, можуть бути тільки об'єкти описаного типу: File INTEGER, File STRING і т.п. Тому вони і називаються –  типізованими. Файли, що типізуються на відміну від текстових, складаються з машинних представлень чисел, символів, рядків і структур побудованих на їх основі. Вони зберігають дані в тому ж вигляді, що і в пам'яті комп'ютера. За допомогою таких файлів здійснюється обмін даними тільки між дисками і робочою пам'яттю програми. Типізований файл напряму вивести на екран не можна.
 Без типізований файли теж містить в собі інформацію в вигляді, як в пам’яті комп’ютера. Компоненти таких файлів можуть бути даними будь-якої природи.
 Для всіх типів файлів мінімальною одиницею зберігання являється БАЙТ.

Немає коментарів:

Дописати коментар