У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Курсова робота - Поняття файлів в Turbo Pascal
20
будь-якого типу, крім text.

Файл при цьому повинен бути відкритим.

Приклад застосування функції FilePos – див. в додатку 2.

Функція EoF повертає значення TRUE, якщо покажчик поточної позиції знаходиться за останнім елементом файла, або якщо файл порожній. В протилежному випадку функція повертає значення FALSE:

EoF ( f );

де f – файлова змінна будь-якого типу.

Приклад застосування функції EoF – див. в додатку 1. Ця функція використовується досить часто [1].

Функція EoLn цілком аналогічна функції EoF, крім того що вона застосовується тільки для текстових файлів і перевіряє ознаку кінця рядку. Зазвичай використовується наступна конструкція частини програми, яка служить для читання з текстового файлу:

While not EoLn(f) do

begin

read(f,x);

write(x)

end;

readln(f); writeln;

Оператор While ... do означає, що, доки не зустрінеться ознака кінця рядку, всі символи з файлу f один за одним повинні виводитися на друк (read(f,x); write(x)). Як тільки зустрінеться вказана ознака, виконуються процедури readln(f) і writeln.

Процедура readln(f) вказує, що всі символи до першого символу нового рядку повинні бути пропущені. Процедура writeln означає, що наступні дані повинні друкуватися з нового рядку [6].

3.4 Спеціальні операції

До цієї групи відносять процедури та функції, які мають різне призначення, але, головним чином, пов’язані з організацією структури диску. Наприклад, для роботи з каталогами в модулі System є такі процедури, як ChDir (змінює поточний каталог), MkDir (створює новий підкаталог), RmDir (видаляє порожній каталог), GetDir (дає інформацію, який каталог є поточним). Ці процедури аналогічні командам MS-DOS.

Докладніше подивимося процедуру Rename.

Процедура Rename перейменовує файл, який повинен бути закритим:

Rename ( f , 'нове ім’я');

де f – файлова змінна будь-якого типу;

'нове ім’я' – параметр типу string [1].

3.5 Завершальні операції

До цієї категорії відносяться три процедури, якими, зазвичай, закінчується робота з файлами -- Close, Erase та Flush.

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

Процедура Close закриває файл, відкритий процедурою Reset, Rewrite або Append:

Close ( f );

де f – файлова змінна будь-якого типу.

В принципі, процедуру Close для закриття файлів застосовувати не обов'язково – всі відкриті файли при нормальному завершенні програми закриваються автоматично. Однак, використання процедури Close є ознакою доброго смаку.

Приклад застосування процедури Close – див. в додатках 1, 2.

Процедура Erase видаляє файл з диску:

Erase ( f );

де f – файлова змінна будь-якого типу.

В кінці роботи тимчасово створені файли часто доводиться видаляти. [1]

Приклад застосування процедури Erase – див. в додатках 1.

4. Типи файлів

Існує три способи визначення файлового типу (або файлової змінної):

f= file of a; {а – тип елементів, що містяться в файлі}

f=text;

f=file;

Ці три способи відповідають трьом видам файлів, якими дозволяє оперувати Turbo Pascal, а саме: типізованим, текстовим і нетипізованим файлам. [1]

4.1 Типізовані файли

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

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

Зчитування даних із типізованих файлів виконується тільки процедурою Read, а записування -- тільки процедурою Write. При цьому одиницею зчитування/запису може бути тільки змінна того самого типу, що й тип файлу. [2]

Процедура Read для типізованих файлів має наступний формат:

Read (назва файлової змінної, список змінних);

Під час читання даних з файлу треба перевіряти, чи не вичерпалися дані у файлі. Для цього використовують стандартну функцію EoF (назва файлової змінної). Вона набуває значення TRUE, якщо файл вичерпано, і значення FALSE у протилежному випадку. [3]

Процедура Write для типізованих файлів має такий формат:

Write (назва файлової змінної, список змінних);

Виконуючи записування у файл, слід пам’ятати, що при запису кожної змінної покажчик поточної позиції в файлі, так само і як при читанні, переміщується на наступний елемент. Якщо покажчик поточної позиції файла знаходиться за останнім елементом, тобто в кінці файлу (значення функції EoF(f)= TRUE), то при виконанні процедури Write файл розширюється.

Для роботи з прямим доступом призначені наступні процедури і функції:

Функція FilePos -- повертає номер поточної позиції покажчика в файлі (позиції нумеруються від нуля!).

Функція FileSize -- повертає поточний розмір файлу (кількість елементів у файлі, рахуючи від одиниці!).

Процедура Seek -- зміщує покажчик поточної позиції в файлі на елемент, який має заданий номер (рахуючи від нуля!).

Процедура Truncate -- усікає розмір файлу до поточної позиції. Всі елементи, які розташовані після поточної позиції у файлі, видаляються, і поточна позиція у файлі стає його кінцем ( EoF(f)= TRUE ). [2]

Більш докладно про ці функції та процедури розповідається в розділі 3.3.

4.2 Текстові файли

Особливим видом файлів є текстові файли, які є в Turbo Pascal різновидом файлів типу File of Char.

Для опису текстових файлів використовується стандартний тип Техt:

Var

TextFile : Text;

В текстових файлах, крім ознаки кінця файлу Eof (End of File), використовується ще ознака кінця рядку Eoln (End of Line). Ознака Eoln є послідовністю з двох символів коду ASCII – символу з кодом 13 ("возврат каретки") і символу з кодом 10 ("перевід рядку").

Текстовий файл можна уявити собі як сторінку книги, в кінці кожного рядку якої стоїть Eoln.

Для введення - виведення даних текстового файлу призначені стандартні процедури Read, Readln, Write, Writeln (відмінність у тому, що першим параметром цих процедур має бути вказана файлова змінна):

Read (назва файлової змінної, список змінних);

Readln (назва файлової змінної, список змінних);

Write (назва файлової змінної,


Сторінки: 1 2 3 4