Borland Pascal, як І будь-яка мова високого рівня містить засоби для організації зберігання інформації на зовнішніх зп І доступу до цієї інформації



Скачати 74.82 Kb.
Дата конвертації24.03.2017
Розмір74.82 Kb.
Лекція №13
Файли

Borland Pascal, як і будь-яка мова високого рівня містить засоби для організації зберігання інформації на зовнішніх ЗП і доступу до цієї інформації.


Файл - це область пам'яті на зовнішньому ЗП, здатна зберігати деяку інформацію.

У такому розумінні файл називається фізичним, тобто що існує фізично на деякому носієві інформації. Структура файлу - це послідовність байт пам'яті носія інформації.




байт

Байт

..

байт

Визначається фізичний файл рядком з його назвою (ім'ям). Імена в Borland Pascal можуть бути ряковими константами і рядковими змінними.


‘G:\prim.pas’

Інший різновид фізичних файлів - це пристрої MS-DOS (порти комунікації)

Пристрої, що мають свої імена:


CON

Консоль (клавіатура і екран)

Введення-читання з клавіатури. Вивід-запис на екран.

LPT1

LPT2


LPT3

Паралельні порти

Номер 1.3



Через ці імена файлів здійснюється виведення даних на принтер або інші пристрої.

PRN

Принтер, синонім імені

LPT1.


Ім'я звернення до принтера включається в порт LPT1.

COM1

COM2


Послідовні порти

Імена файлів - пристрої для введення-виводу ім'я через серійні порти комунікації.

Наприклад, ‘CON’; ‘LPT1’; ‘PRN’;

‘CON:’; ‘PRN:’.

Але ‘CON.’- це файл на поточному диску з ім'ям CON


З іншого боку файл – це структура даних, використовуваних в програмуванні. У такому розумінні файл називається логічним файлом, тобто що існує в нашому логічному уявленні при написанні програм.

У програмах логічний файл описується як змінна файлових типів, які вважаються представниками файлів в PASCAL-программах.

Var f: file of integer
Змінна f-


ціле

ціле

....

ціле

EOF

Type T = record

r: real;

b: Byte;


i: integer;

з: Char


End;

Var f1: file of T;


Змінна f1-


Речов.

байт

ціле

Код символу

...

Код символу

EOF

В файлі


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

  • нумерація елементів файлу виконується зліва направо, починаючи з 0 (окрім текстових файлів);

  • кількість елементів (компонентів) файлу в кожен момент часу не відома;

  • в кінці файлу розташовується спеціальний символ кінця файлу EOF.

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


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

Для швидшого і ефективнішого обміну інформацією з різними пристроями в Pascal-програмах існує механізм буферизації.

Уведення-виведення даних здійснюється через буфер.

Буфер - це область пам'яті, що відводиться при відкритті файлу. При записі у файл- інформація спочатку накопичується в буфері, до його заповнення, а потім скидається за призначенням: на диск, в порт. При читанні з файлу – спочатку відбувається читання в буфер, а потім в ОЗУ. Вивід на екран інформації реалізований так що ефект буферизації автоматично зникає.



Класифікація файлів
Класифікація файлів здійснюється 2 ознакам:

-по типу;

-по методу доступу до елементів файлу.
За типом:

- типізовоні;

- текстові;

- не типізовані.

По методу доступу:

- послідовного доступу;

- прямого доступу.
Допустимо застосовувати файли послідовного доступу всім 3-м типам файлів, а файли прямого доступу до файлів, що типізуються і не типізуються.
У файлах послідовного доступу


  • інформація може прочитуватися тільки послідовно компоненту за компонентом від початку файлу та кінця (EOF);

  • компоненти файлу не нумеруються, необхідно рахувати від початку необхідного час.

У файлах прямого доступу:

- компоненти нумеруються, тобто можливо прочитати і записати будь-яку компоненту.


Файлові типи і змінні.
У Pascal-програмах існують поняття файловий тип і файлова змінна, які задаються в програмі за допомогою службових слів file of.
Type Tchar= file of char:

Var


C: TСhar;

ST: file of string;

S: file of student;

F: file of integer;

End.
Базовий тип може бути будь-яким типом окрім файлового і комбінованого, одним з полів якого є файл.
Var F: file of integer

Під F передбачається невизначена кількість цілих чисел.

З кожною змінною файлового типу пов'язано поняття поточного покажчика файлу (ПП), вказуючий на конкретний елемент файлу.

ПП – прихована змінна неявно описана разом із змінною файлового типу.

Всі дії з файлом (читання, запис) проводяться поелементно, у дії бере участь той елемент, на який вказує ПП.
Операції над файлами.
На відміну від змінних інших типів, Pascal не містить вбудованих операцій над файловими змінними. Операції над файлами повністю реалізовані у вигляді стандартних процедур і функцій. Для всіх типів файлів принципи роботи єдині, хоча є відмінності в наборах команд для роботи з різними файловими типами.

Скріплення файлів.

Процедура Assign (var f: file, File Name: ftring); - встановлює зв'язок між логічним файлом, що описується змінною f, і фізичним файлом.

Assign (f,’file.pas’);

Assign (f,’W:\file.dat’);

Assign (f,’LTP1’);

Assign (f,’CON’).

Ім'я фізичного файлу з'являється в програмі один раз і надалі, звернення до файлу проводитиметься через змінну f.


Відкриття файлів для запису.

ReWrite (var f) – відкриває файл для запису. Якщо файл існує, то він віддаляється і ПП встановлюється на першу компоненту файлу.


Відкриття файлу для читання.

Reset (var f) - повторний виклик Reset (f) встановлює заново послідовність читання на 1-ший елемент без втрати даних.


Процедура читання з файлу.

Read (var f, var) – процедура проводить читання з файлу, ім'я файлу визначене 1-ою змінною. VAR - одна або декілька змінних того ж типу, що і компоненти файлу. Після виконання процедури ПП переміщається на одну позицію.


Процедура запису у файл.

WRITE (var f, var) - процедура запису у файл однієї компоненти.

1-й параметр – ім'я логічного файлу.

2-й параметр – одна або декілька змінних, того ж типу що і f. Після завершення ПП збільшується на 1.


Закриття файлів.

Закриття файлів - процедура CLOSE (var f) - гарантує збереження і повноту заповнення.

Assing (f, ‘text.dat’);

ReWrite (f); { відкривається для запису}

Write (f, а); { запис у файл}

Reset (f); { відкривається для читання}

Read (f, а); { зчитування з файлу}

Close (f).

Наприклад:

Program Sum;

Uses crt;

Var f: file of integer;

N, Summa, x: integer;

Begin


Clr Scr;

Assign (f, ‘G:\pr.dat’);

Reset (f);

Summa:=0;

Writeln (‘суму скількох елементів треба підрахувати’);

Readln (N);

While N>0 do

Begin


Read (f, x);

Summa:= Summa+X;

Dec (N);

End;


Writeln (‘сума =’, Summa);

Close (f);

End.

Функція EOF (var f):Boolean - перевіряє кінець файлу і повертає значення TRUE, якщо досягнутий кінець файлу, якщо інакше – FALSE.



While not EOF (f) do

Begin


Read (f, x);

Summa: =Summa+X;

End.
Перейменування файлів.

Процедура Rename працює тільки із закритими файлами


Var f: = file of real;

X: real;


Begin

Assign (f, ‘G:\pr.dat’);

ReWrite (f);

Write (f, x);

Close (f);

Rename (f, ‘G:\primer.dat’);


Видалення файлів.

Процедура Erase (var f) видаляє існуючий файл, який до моменту виклику процедури повинен бути закритим.


База даних захищена авторським правом ©lecture.in.ua 2016
звернутися до адміністрації

    Головна сторінка