WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Робота з файлами - Реферат

Робота з файлами - Реферат

Реферат на тему:

Робота з файлами

Можливо у програмах використовувати набори даних, підготованих заздалегідь, що зберігаються у файлі. Це називають зчитуванням даних із зовнішнього файлу (чи просто з файлу). Такий спосіб знаходить широке застосування у процесі обробки інформаційних масивів дуже великого обсягу, коли інтерактивний режим стає занадто обтяжним і малоефективним.

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

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

У мові Pascal використовується три типи файлів: типізований, нетипизований та текстовий, які в програмі визначаються наступним чином:

: text;

: file of тип;

: file.

Приклад:

ТУРЕ { запис даних про студента }

RecFile = RECORD { ознака початку запису }

Fam, Name, Otch : string[15];

GodR : word;

Ngrup : string[10];

END; { кінець запису }

VAR

F1 : Text;

F2 : File of byte;

F3 : File of RecFile;

F4 : File;

Buf : RecFile; {_2буфер уведення-висновку_0, у який зчитуються дані компоненти файлу}

У цьому фрагменті програми F1- файлова змінна текстового типу, F2 і F3 – типізовані файлові змінні, причому F2 може містити тільки однобайтові елементи, а у файлі F3 кожний компонент уявляє із себе "запис" із трьох елементів, F4- файлова змінна нетипизованого типу.

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

ASSIGN (F, Name);

Тут F- файлова змінна; Name- це повне ім'я файлу, яке містить у собі шлях доступу, безпосереднє ім'я файлу і розширення.

Наприклад:

ASSIGN (F1, 'a:Tp5DATSt629.DAT');

ASSIGN (F2, 'Dannye.DAT').

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

Як ім'я файлу в процедурі ASSIGN можна вказувати логічний пристрій з наступного списку: CON, PRN, AUX.

CON - це ім'я консолі. На персональному комп'ютері (ПК) під консоллю розуміється сукупність двох пристроїв: клавіатури і дисплея. Клавіатура використовується для введення інформації, а дисплей для виводу.

PRN - це стандартне ім'я принтера. В ОС PRN стандартно призначається LPT1. У модулі Printer Паскаля оголошена файлова перемінна Lst. Тому для відображення даних на принтер досить підключити модуль Printer до програми, а в процедурах Write і Writeln першим аргументом записати ім'я файлової перемінної Lst:

Приклад висновку інформації без використання модуля Printer:

VAR F : File;

BEGIN

Assign(F, PRN);

ReWrite(F);

Writeln(F, 'Приклад використання Л.У. - PRN');

Close(F);

END.

AUX - це ім'я комунікаційного порту. Звичайно їх буває два в ПК: СОМ1 і СОМ2. Стандартно AUX призначається СОМ1. Цей порт звичайно використовується для підключення нестандартних пристроїв. Наприклад, "миші", графобудівника і т.ін.

Перш ніж почати обробку файлу необхідно виконати деякі операції по роботі з пристроєм, на якому зберігається або буде зберігатися файл. Так, наприклад, під час створення файлу необхідно: виділити область пам'яті на зовнішньому пристрої, у яку будуть записуватися дані файлу; запам'ятати ім'я файлу й адресу цієї області.

Якщо має бути робота з файлом, що вже існує на зовнішньому носії, то необхідні наступні дії: по зазначеному імені файлу знайти адреси цього файлу;

установити голівку пристрою на початок файлу.

Ця сукупність операцій називається ініціацією файлу чи "відкриттям" файлу. Ініціюється файл за допомогою процедур Reset і ReWrite. За допомогою процедури Reset ініціюється, тобто відкривається раніше створений файл. За допомогою процедури ReWrite ініціюється файл для запису, тобто файл, що створюється.

Синтаксис:

Reset( [,]);

ReWrite( [,]);

Другий аргумент вказується тільки для нетипизованих файлів. Текстові файли можна ініціювати також і процедурою Append:

Append();

У цьому випадку раніше створений файл відкривається для додавання даних у кінець файлу.

Завершивши роботу з файлом, необхідно його закрити. При закритті файлу ОС підраховує розмір файлу в байтах і запам'ятовує його. Крім того, запам'ятовується також інформація про дату і час створення файлу чи його останньої модифікації (коректування). Закриття файлу даних здійснюється процедурою Close:

Close();

При зчитуванні даних з раніше створеного файлу кінець файлу можна визначити з допомогою функції EOF:

EOF();

Ця функція має значення TRUE у процесі зчитування маркера кінця файлу. У противному випадку вона буде мати значення FALSE. Дана функція звичайно використовується для організації циклу читання всіх компонентів файлу, наприклад:

while not EOF(F1) do begin

...

...

end;

Безпосереднє введення інформації здійснюється процедурами READ і READLN, а вивід (запис) інформації - WRITE і WRITELN. Особливістю їхнього застосування до файлу є обов'язковість вказівки файлової змінної як першого параметра у списку елементів:

Read(, );

ReadLn(, );

Write(, );

WriteLn(,).

Текстовий файл - це сукупність рядків змінної довжини. Змінна довжина рядків визначає наявність маркерів, що відзначають кінець рядка. Як маркери використовуються два керуючі символу "Перехід рядка" і "Повернення каретки", їх десяткові коди: #10, #13. Назви керуючих символів "Перехід рядка"(LF – Line Feed) і "Повернення каретки"(CR - Carriage Return) узяті за аналогією роботи з пишучою машинкою.

Кінець рядка можна визначити за допомогою функції EOLn:

EOLn();

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

Write(, );

Writeln(, ).

За процедурою WRITE значення даних зі списку запишуться у файл підряд без усяких роздільників. Тому програміст, використовуючи процедуру WRITE, повинний подбати про роздільники між даними, якщо вони потрібні. За процедурою WRITELN у файлі після кожного виведеного значення будуть записані ознаки кінця рядка.

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

Read(, );

Readln(, );

За процедурою READ з файлу вибирається стільки символів, скільки зазначено в описі поточної змінної, що належить списку вводу. Обрана послідовність символів привласнюється поточній змінній. Ця сукупність операцій повторюється для всіх елементів списку вводу. За процедурою READLN з файлу послідовно зчитуються рядки і привласнюються змінним. Якщо обраний рядок має більшу кількість символів, ніж зазначено в описі поточної змінної, то вона обрізається до зазначеної довжини, при цьому частина інформації губиться. Тому необхідно стежити за відповідністю довжин змінних, що записуються у файл і що зчитуються з файлу.

Приклад:

Var Fio, Otch : string[15];

Name : string[10];

i : integer;

F : text;

Begin

Assign(F, 'St629.DAT'ReWrite(F); { відкриття файлу для запису }

Loading...

 
 

Цікаве