Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Паскал.doc
Скачиваний:
4
Добавлен:
21.09.2019
Размер:
1.21 Mб
Скачать

Переміщення по файлу

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

Seek

Truncate

і три додаткові функції

FileSize

FilePos

Eof

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

Після виконання процедури Seek подальші операції читання чи запису будуть проводитися, починаючи з установленої позиції покажчика.

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

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

Seek(F,FiiePos(F)+l){ пропуск одного елемента }

Seek(F,0){ установка покажчика на початок файлу }

Seek (F, FileSize (F)) { установка поточного покажчика безпосередньо за останнім елементом файлу; це може служити вихідною позицією для додавання елементів у "хвіст" файлу }

Функція eof викликається з одним параметром — файлової змінної — повертає логічне значення true чи false у залежності від того, чи досягнутий кінець файлу. Якщо файл використовувався для читання, то виникнення ситуації "кінець файлу" (і, відповідно, значення true, що повертається функцією eof) означає, що всі елементи файлу прочитані. При записі у файл істинність функції eof буде означати, що чергова операція запису помістить інформацію в кінець даного файлу.

Нарешті, процедура Truncate використовується для відсікання від файлу його хвостової частини, що починається від поточної позиції покажчика включно. Єдиний параметр процедури Truncate - файлова змінна, відповідна файлу, що усікається.

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

Дана група операцій призначена для дій з елементами файлової системи MS-DOS - каталогами й іменами файлів, дозволяючи створювати і видаляти каталоги, видаляти і перейменовувати файли, працювати з атрибутами файлів і т.д. Докладне пояснення цих операцій можна знайти у фірмових посібниках з мови, а тут обмежимося вказівкою імен деяких процедур:

Erase - видалення файлу на диску.

Rename -перейменування файлу.

ChDir - установити поточний каталог.

MkDir - створити новий (під)каталог.

RmDir - видалити порожній (під)каталог.

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

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

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