Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
21-60.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
270.43 Кб
Скачать

24)Відкриття та закриття файлів

Перш ніж виконувати операції вводу/виводу з файлом, необхідно відкрити його функцією fopen().

Функція fopen()

Функція fopen() відкриває файл (якщо він існує) і повертає ціле число - так званий файловий маніпулятор (file handle). Синтаксис функції fopen():

int fopen (string файл, string режим ,[int включення_шляху])

Відкриває файл може знаходитися в локальній файловій системі, існувати у вигляді стандартного потоку вводу / виводу або представляти файл у віддаленій системі, що приймається засобами HTTP або FTP. Параметр файл може здаватися в декількох формах, перерахованих нижче:

  • Якщо параметр містить ім'я локального файлу, функція fopen() відкриває цей файл і повертає маніпулятор.

  • Якщо параметр заданий у вигляді php: // stdin, php: // stdout або php: // stderr, відкривається відповідний стандартний потік вводу/виводу.

  • Якщо параметр починається з префікса http://, функція відкриває підключення HTTP до сервера і повертає маніпулятор для зазначеного файлу.

  • Якщо параметр починається з префікса ftp://, функція відкриває підключення FTP до сервера і повертає маніпулятор для зазначеного файлу. У цьому випадку слід звернути особливу увагу на дві обставини: якщо сервер не підтримує пасивний режим FTP, виклик fopen() завершується невдачею. Більш того, FTP-файли відкриваються або для читання, або для запису.

При роботі в пасивному режимі сервер очікує підключення з боку клієнтів. При роботі в активному режимі сервер сам встановлює з'єднання з клієнтом. За замовчуванням звичайно використовується активний режим. Параметр режим визначає можливість виконання читання і запису у файл. У табл. 1 перераховані деякі значення, що визначають режим відкриття файлу.

Зчитування і запис текстових файлів

Нагадаємо, що текстовий файл є сукупністю рядків змінної довжини, до яких можливий лише послідовний доступ. Як було зазначено вище, кожен рядок текстового файла завершується маркером кінця рядка, що складається із двох символів: #13 та #10. Кінець файла позначається символом #26. Ідентифікатором типу текстового файла є слово text.Зчитування даних із текстового файла здійснюється процедурами Read та Readl n за таким синтаксисом:

Read(<файлова змінна>;<список введення>); Readln(<файлова змінна>;<список введення>);

Тут <список введення> є переліком змінних символьного, рядкового, цілочислового або дійсного типу.Після зчитування певного компонента файловий покажчик зсувається до наступного компонента. Якщо виконується зчитування з файла до змінної типу char, то процедура Read зчитує один символ. Коли досягнуто кінця рядка, результатом зчитування є символ кінця рядка, #13, а коли досягнуто кінця файла, зчитується символ кінця файла, #26.Під час зчитування значення до змінної цілочислового або дійсного типу спочатку виділяється підрядок, в якому видалені всі ведучі пробіли, символи та-буляції (#9) і маркери кінця рядка. Далі зчитуються всі символи, що утворюють число зі знаком. Зчитування припиняється при виявленні першого пробілу, маркера кінця рядка або символу табуляції. Зчитаний рядок цифрових символів перетворюється на число, що присвоюється відповідній змінній. Наступна операція зчитування починається з пробілу (маркера кінця рядка, символу табуляції тощо).Якщо виділений підрядок містить нецифрові символи, то виникає помилка введення-виведення Error 106: Invalid numeric format (Некоректний числовий формат).Під час зчитування даних до змінної типу string процедура Read зчитує всі символи до маркера кінця рядка. Якщо кількість символів рядка у файлі більша за кількість, вказану в оголошенні рядкової змінної, то зайві символи не зчитуються. Якщо процедурою Read певний рядок було зчитано повністю, то під час наступного її виклику зчитування починається з маркера кінця рядка, а значить, буде зчитано рядок нульової довжини. Отже, процедура Read не переводить файловий покажчик на наступний рядок символів і тому її не можна використовувати для зчитування послідовності рядків.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]