русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Файли Pascal


Дата додавання: 2014-05-08; переглядів: 1483.


1) Визначення файлу. Типи файлів. Фізичні і логічні файли.

2) Організація процесу запису даних на зовнішні носії і зчитування з них.

3) Процедури і функції для всіх типів файлів.

4) Текстові файли.

5) Компонентні файли.

6) Послідовний та прямий доступ до файлів.

 

Файл – це поіменована необмежена впорядкована сукупність даних, що мають внутрішню структуру.

Pascal дозволяє працювати з файлами трьох типів :

- текстові

- компонентні (типізовані)

- безтипові

Pascal розрізняє фізичні і логічні файли. Фізичні файли – це файли в поняттях операційної системи. Логічний файл – це файлова змінна одного з файлових типів. Тобто, фізичний файл – це файл, який існує фізично на диску і характеризується шляхом до нього, іменем, розширенням, датою створення, розміром, типом. В програмі для позначення об’єктів використовуються змінні. Для роботи з файлами також необхідно використовувати змінну. Така змінна повинна представляти фізичний файл у програмі і тому вона називається логічним файлом. Щоб працювати з файлом в програмі необхідно зв’язати файлову змінну з фізичним файлом. Для цього використовується спеціальна процедура

ASSIGN (<файлова змінна>,<специфікація фізичного файлу>);

Після цього файл необхідно створити або відкрити і тільки потім з ним працювати.

Кожен файл закінчується спеціальним кодом „кінець файлу”.

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

До стандартних пристроїв можна звертатись як до текстових файлів. Стандартне ім¢я для виводу на екран або вводу з клавіатури CON. Для виводу на друк - PRN.

 

Організація процесу запису даних на зовнішні носії і зчитування з них.

 

Для запису даних на зовнішні носії або зчитування з них використовується спеціальний буфер вводу-виводу. Розмір буферу встановлюється системою. Використання буферу пов¢язано з тим, що обмін даними з зовнішньою пам¢яттю довше ніж з оперативною. На організацію зв¢язку з зовнішньою пам¢яттю також потрібен час. Щоб зменшити кількість звернень до зовнішньої пам¢яті при виводі, дані спочатку накопичуються в буфері вводу-виводу, а потім дані з буферу записуються на зовнішній носій за один сеанс зв¢язку. При зчитуванні даних з зовнішнього носія, дані заносяться в буфер, а потім записуються в структури даних програми.

Якщо програма працює з файлом, тобто заносить в нього дані і зчитує дані, то при запису даних в файл необхідно примусово записати дані з буферу вводу-виводу в файл, щоб в разі зчитування мати в файлі всі записані в нього дані. Дію по примусовому запису буферу вводу-виводу в файл виконує процедура закриття файлу CLOSE(F).

 

Дії, які можна виконувати над файлами всіх типів:

 

Процедури або функції Д і я
ASSIGN (F,<ім'я файлу>) Зв’язує файлову змінну -F- з вказаним ім’ям фізичного файлу
REWRITE (F) Створює файл з логічним ім’ям -F- для запису, якщо цей файл не існує. Якщо існує - вся інформація у файлі знищується
RESET (F) Відкриває файл з логічним ім’ям -F- для читання або позиціонує відкритий файл на його початок
CLOSE (F) Зачиняє файл з логічним ім’ям -F-.
RENAME (F,<нове ім’я файлу>) Перейменовує фізичний файл, раніше зв’язаний з файловою змінною -F- в указане ім’я. Застосовується тільки для зачинених файлів.
ERASE (F) Знищує фізичний файл, зв’язаний з файловою змінною -F-. Застосовується тільки для зачинених файлів.
EOF (F) Функція повертає. TRUE, якщо досягнуто кінця файлу -F-. Інакше FALSE.

Текстові файли містять дані в строковому форматі і складаються з кодів символів, що включають розширені коди та коди управління. Текстові файли організуються по рядкам. Кожен рядок закінчується спеціальним кодом „кінець рядку”.

При запису в файл вся числова інформація перетворюється в строкову, а при читанні із файла - в числову. При запису можна використовувати форматування.

Формат опису файлової змінної:

F:TEXT;

Процедури та функції для текстових файлів

Процедури або функції Д і я
SetTextBuf ( F,< буфер>) Встановлення розміру буферу вводу -виводу по умовчанню
Append (F) Відкрити файл для доповнення. Файл відкривається і файловий вказівник встановлюється після останнього елементу файлу.
Flush (F) Вивід вмісту буфера вводу-виводу в файл
Eoln (F) =true якщо досягнуто кінця рядка
SeekEoln (F) =true якщо досягнуто кінця рядка або файлу або перед ними стоять лише пропуски та табуляція
SeekEof (F) =true якщо досягнуто кінця файлу або перед ним стоять символи кінця рядка, пропуски або табуляція

 

Операції введення -виведення:

 

Для зчитування даних з текстового файлу використовуються процедури

READ | READLN (F,<список вводу>);

Елементами списку вводу можуть бути тільки змінні. Елементи списку вводу розділяються комами. При використанні форми READLN після задовільнення списку вводу здійснюється перехід на наступний рядок, не залежно від того, чи досягнуто кінця рядку. Процедура READLN(F); здійснює перехід до наступного рядку.

Для запису даних в файл використовуються процедури

WRITE | WRITELN (F,<список виводу>);

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

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

writeln (F,24,’ ’,35,’ ’,67);

Процедура WRITELN (F); формує код кінця рядку.

 

Компонентні файлискладаються з послідовності компонент однієї структури. Інформація в цих файлах зберігається в машинних кодах. Компонентами можуть бути довільні типи даних.

Формат опису файлової змінної:

F : File of <тип компоненти>;

Компоненти називають записами файлу. Розмір всіх записів однаковий.

Наприклад:

var F:file of integer; F1:file of real; f5:file of string[30];

Type TM =array[1..10] of real; var F3:file of TM;

Type Tz =record

a,b,c:byte;

end;

var f6:file of Tz;

 

Операції введення -виведення:

 

Зчитування даних з файлу і запис даних в файл виконується тільки по компонентам.

Для зчитування даних з файлу використовується процедура

READ (F,<ім’я змінної типу компоненту>);

Для запису даних в файл використовується процедура

WRITE (F,<ім’я змінної типу компоненту>);


<== попередня лекція | наступна лекція ==>
Типізовані константи Pascal | Послідовний та прямий доступ до файлів Pascal


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн