МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Файли послідовного доступу. Опис файлового типу.
При роботі з файлами використовується стандартна функція EOF(F), де F - ім'я файла. Якщо вказівник файла перемістився за останній компонент (готовність до запису), то ця функція приймає значення TRUE, в усіх інших випадках її значеня дорівнює FALSE.
В загальному випадку файл описується так:
TYPE R = FILE OF TK;
де R - ідентифікатор файла, TK - тип компонентів файла. Компонентом (елементом) файла може бути довільний тип даних, за винятком файлового типу, тобто "файл файлів" використовувати не можна. Найчастіше на практиці використовуються файли записів. З файловою системою Turbo Pascal пов'язане поняття буферу вводу-виводу. Ввід і вивід даних здійснюється через буфер. Буфер – це область в пам'яті, що виділяється для кожного файлу. При записі в файл вся інформація спочатку направляється в буфер і там накопичується до тих пір, поки весь обсяг буферу не буде заповнений. Тільки після цього чи після спеціальної команди скидання здійснюється передача даних на зовнішній пристрій. При читанні з файлу дані спершу считуються в буфер, причому даних зчитується не стільки, скільки запрошується, а скільки поміститься в буфер. Механізм буферiзації дозволяє дуже швидко і ефективно обмінюватися інформацІЇю із зовнішніми пристроями. Для роботи з файлами в програмі необхідно визначити файлову змінну. Turbo Pascal підтримує три файлових типи : текстові файли, компонентні файли, нетиповані файли. Опис файлових змінних текстового типу виробляється з допомогою службового слова Text, наприклад :
var tstory : Text;
Опис компонентних файлів має вид :
var fcomp : File of T;
де T - тип компонента файлу. Приклади опису файловоє змінної компонентного типу :
type M = array [1.. 500] of Longint; var f1 : File of Real; f2 : File of Integer; fli : File of M;
Нетиповані файли описуються за допомогою службового слова File :
var f : File;
Файлові змінні, котрі описані в програмі, називають логiчними файлами. Мова програмування Паскаль допускає два доступи до вмістимого файлів: послідовний доступ і прямий. Зміст послідовного доступу полягає в тому, що в кожний момент часу доступний лише один компонент із всієї послідовностi. Для того, щоб звернутися (одержати доступ) до компонента з номером k, необхідно переглянути вiд початку файлу k-1 попереднiх компонентiв. Після звертання до компонента з номером k можна звертатися до компонента з номером k+1. Звідси випливає, що процеси формування (запису) компонент файлу і перегляду (читання) не можуть довільно чергуватися. Таким чином, файл спершу створюється за
допомогою послідовного додавання компонентiв в кінець файлу, а після цього може послідовно переглядатися від початку до кінця. Разглянутi раніше засоби роботи з файлами забезпечують послідовний доступ. Прямий доступ означає можливість заздалегідь визначити в файлі блок, до якого буде застосована операція вводу-виводу. У випадку безтипових файлів блок дорiвнює розміру буфера, для компонентних файлів блок - це одна компонента файлу. Прямий доступ припускає, що файл становить лiнiйну послiдовнiсть блоків. Якщо файл містить n блоків, то вони нумеруються від 1 через 1 до n. Крім цього, вводиться поняття умовної межi між блоками, при цьому умовна межа з номером 0 розташована перед блоком із номером 1, межа з номером 1 розташована перед блоком з номером 2 і, нарешті, умовна межа з номером n знаходиться після блоку з номером n. Реалізація прямого доступу здійснюється за допомогою функцій і процедур Filesize, Filepos, Seek і Truncate. Функція
Filesize(var f) : Longint
повертає кількість блоків в відкритому файлі f. Функція
Filepos(var f) : Longint
повертає поточну позицію в файлі f. Позиція в файлі - це номер умовної межі. Для щойно відкритого файлу поточною позицією буде межа з номером 0. Це значить, що можна записати або прочитати блок із номером 1. Після читання чи запису першого блоку поточна позиція переміститься на межу з номером 1, і можна буде звертатися до блоку з номером 2. Після читання останнього запису значення Filepos дорівнює значенню Filesize. Файли в Паскалі є файлами послідовного доступу. Читати послідовний файл можна лише послідовно по одній компоненті. Почати запис в файл можна лише з самого початку, дозапис інформації можливий лише після останньоі компоненти.
Читайте також:
|
||||||||
|