Паскаль: робота з файлами, Детальна інформація

Паскаль: робота з файлами
Тип документу: Реферат
Сторінок: 15
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 29.3
Скачувань: 1138
Для того, щоб читати вже створений типізований файл, треба відкрити його для читання викликом процедури RESET(f). Після її виклику файлова змінна установлюється в початковий стан для читання, а номером доступного елемента стає 0 незалежно від того, чи є взагалі елементи в файлі. Значення f можна подати як (F, 0, R), тобто

F f0 f1 ...

    Стан R

Якщо F є порожньою послідовністю, F=<>, то спроба читання з файла завершується аварійно, оскільки доступного елемента просто немає!

Файл із диску можна читати тільки після установлення файлової змінної в початковий стан для читання, тобто установлення обов’ язкове. Можливість чи заборона установлення файлової змінної, зв’ язаної з клавіатурою, залежить від системи програмування. У системі Турбо Паскаль таке установлення можливе, хоча й не обов’ язкове.

Зазначимо, що в програмі може бути довільна кількість викликів процедури reset, і що система Турбо Паскаль дозволяє після виконання її викликів не тільки читати з файла, а й записувати в нього, тобто змінювати його перший елемент. І взагалі, система дозволяє змінювати за допомогою write доступний елемент файла, яким би не було його місце в послідовності і за будь-якого стану файла.

Читання доступного елемента файла задається процедурою READ. Її виклик має вигляд

read(f, v),

де v – ім’ я змінної того ж типу, що і в елементів файла. В результаті значення доступного елемента присвоюється цій змінній, а вказівник доступного елемента переміщується на наступний елемент.

Наприклад, при читанні read(f, x) файлової змінної f із значенням

(<11, 12, 13>, 0, R)

змінна x набуває значення 11, а значення f подається як

(<11, 12, 13>, 1, R),

тобто доступним стає елемент 12.

Узагалі, якщо файл містить n елементів, пронумерованих від 0 до n-1, і номер доступного компонента i менше n, то виклик read(f, x) задає присвоювання змінній x значення i-го елемента та перехід від значення файлової змінної (F, i, R) до (F, i+1, R). Якщо ж i=n, то кажуть, що файл f прочитано, або вичерпано (зокрема, коли він порожній, тобто F = <>). За такого значення i виклик read призводить до аварійного завершення програми.

У виклику процедури read можна вказувати довільну кількість аргументів, що є іменами однотипних змінних:

read ( f, v1, v2, … , vN ).

Такий виклик виконується насправді як послідовність викликів

read(f, v1 ); read(f, v2 ); ... read(f, vN ).

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

Підкреслимо, що до типізованих файлів незастосовна процедура читання readln – її можна вживати лише для читання текстів.

Визначення того, чи прочитано вже файл, задається функцією EOF. За виклику eof(f) повертається бульове значення false, якщо доступний який-небудь елемент файла, тобто значення виразу i, i, R). Значення true повертається за i=n, що можливо після читання всіх елементів файла без установлення його в початковий стан.

Виклик функції eof дозволяє визначити, чи є ще у файлі непрочитані елементи, та запобігти читання з вичерпаного файла.

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

L

®

°

„@

^„@

\x6100\x0224

The online video editor trusted by teams to make professional video in minutes