вторник, 26 ноября 2013 г.

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

Типи файлів Турбо Паскаль

Турбо Паскаль підтримує три файлових типи:
  • текстові файли;
  • типізовані файли;
  • нетипізовані файли.
Доступ до файлу в програмі відбувається за допомогою змінних файлового типу. Змінну файлового типу описують одним з трьох способів:
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 файл готовий до читання з нього першого елемента. Процедура завершується з повідомленням про помилку, якщо зазначений файл не знайдений.
Якщо 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-}.

                                 Program p1;
Var a: longint ; t: text; s: integer;
begin
assign( t,'input.txt');
Reset(t);

read(t, a);
 s:= a*2;
close(t);
assign(t,'output.txt');
rewrite(t); {перезаписуємо фаил}
write(t,s); {Выводимо дані. }
close(t);
end.