Вітаю Вас Гість | RSS

Субота, 23.11.2024, 22:29, 3.135.206.212

Задачі із сайту Контестер [10]
Головна » Статті » Підготовка до олімпіади » Задачі із сайту Контестер

Про файли (конспект)
  • Типи файлів Турбо Паскаль

    Турбо Паскаль підтримує три файлових типу:
  • текстові файли; 
  • типізовані файли; 
  • нетипізовані файли. 


Доступ до файлу в програмі відбувається за допомогою змінних файлового типу. Зміну файлового типу описують одним з трьох способів: 

file of тип - типізований файл (вказано тип компоненти);
text - текстовий файл;
file - нетипізований файл.

Приклади опису файлових змінних:

var
f1: file of char;
f2: file of integer;
f3: file;
t: text;



Стандартні процедури та функції

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

Assign(f, FileName)



пов'язує файлову змінну f із фізичним файлом, повне ім'я якого задано в рядку FileName. Встановлений зв'язок буде діяти до завершення програми, або до тих пір, поки не буде зроблено перепризначення. 

Після зв'язку файлової змінної з дисковим ім'ям файлу в програмі потрібно вказати напрямок передачі даних (відкрити файл). У залежності від цього напряму говорять про читання з файлу або запису в файл.


Reset(f)

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


Rewrite(f)

відкриває для запису файл, з яким пов'язана файлова змінна f. Після успішного виконання цієї процедури файл готовий до запису в нього першого елемента. Якщо вказаний файл вже існував, то всі дані з нього знищуються.


Close(f)

закриває відкритий до цього файл з файлової змінної f. Виклик процедури Close необхідний при завершенні роботи з файлом. Якщо з якоїсь причини процедура Close не буде виконана, файл все-таки буде створений на зовнішньому пристрої, але вміст останнього буфера в нього не буде перенесено.


EOF(f): boolean

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


Rename(f, NewName)

дозволяє перейменувати фізичний файл на диску, пов'язаний з файлової змінної f. Перейменування можливе після закриття файлу.


Erase(f)

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


IOResult

повертає ціле число, відповідне коду останньої помилки введення - виведення. При нормальному завершенні операції функція поверне значення 0. Значення функції IOResult необхідно присвоювати будь-якої змінної, так як при кожному виклику функція обнуляє своє значення. Функція IOResult працює тільки при вимкненому режимі перевірок помилок введення - виведення або з ключем компіляції {$ I-}.



Робота з типізований файлами

Типізований файл - це послідовність компонент будь-якого заданого типу (окрім типу "файл"). Доступ до компонентів файлу здійснюється за їх порядковими номерами. Компоненти нумеруються, починаючи з 0. Після відкриття файлу покажчик (номер поточної компоненти) коштує на його початку на нульовому компоненті. Після кожного читання або запису покажчик зсувається до наступного компоненту.

Запис у файл:
Write (f, список змінних);

Процедура записує у файл f всю інформацію зі списку змінних.

Читання з файлу:
Read (f, список змінних);

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

Зсув індексу файлу:


Seek (f, n);

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

Визначення кількості компонент:
FileSize (f): longint;

Функція повертає кількість компонент у файлі f.

Визначення позиції покажчика:
FilePos (f): longint;

Функція повертає порядковий номер поточного компонента файлу f.

Відсікання останніх компонент файлу:
Truncate (f);

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

Категорія: Задачі із сайту Контестер | Додав: b_oliinyk (01.02.2011)
Переглядів: 1482
Push 2 Check