Стандартные файловые переменные Input и Output. Назначение, открытие и закрытие файлов

Работа с файлом включает:

- инициализацию файловой переменной - установление связи файловой переменной с файлом;

- открытие файла - подготовку файла для выполнения операций ввода/вывода;

- обработку компонентов файла - выполнение операций ввода-вывода;

- закрытие файла (при повторном открытии файл закрывается автоматически).

Инициализация файловой переменной. Связь между физическим устройством (дисководом или внешним устройством) и файловой переменной устанавливается специальной процедурой.

Процедура Assign (Var f; st:string)инициализирует файловую переменную f, связывая ее с файлом или логическим устройством, определенным строкой st.

Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо указать полное имя файла, например:

Type FI1 = file of integer;

Var f1,f2,f3: FIl;

Assign (f1, 'F1.dat'); {связывание файловой переменной с файлом в текущем каталоге}

Assign (f2, 'd:\iva\a.dat'); {связывание файловой переменной с файлом в указанном каталоге}

Assign(f3, 'CON'); {связывание файловой переменной с консолью}

Открытие файла. Открытие файла предполагает указание направления передачи данных. В Borland Pascal файл можно открыть для чтения и для записи. Тестовый файл можно открыть также для добавления строк. В типизированный файл, открытый для чтения, можно дописывать новые записи иди писать в нем новые записи на место старых.

1. Процедура ReSet(Var f)- открывает файл, определенный файловой переменной f для чтения. При выполнении этой процедуры указатель файла устанавливаеся на первый компонент файла (физически первый блок записей считывается в буфер). Логическое устройство в этом случае готовится к выполнению операций ввода.

При открытии для чтения несуществующего файла регистрируется ошибка выполнения, а функция IOResult типа Word возвращает значение, отличное от 0. Отключив контроль операций ввода-вывода и используя функцию IOResult можно организовать проверку наличия файла с указанным именем на диске:

Var f:file of char;

Begin

Assign(f, 'a.dat' ); {инициализация файловой переменной}

{$ I-} {отмена контроля ошибок ввода –вывода}

ReSet (f); {открытие файла для чтения}

{$ I+} {включение контроля ошибок}

If IOResuLt <>0 then WriteLn ('Файл не существует')

else WrileLn('Фauл существует');...

2. Процедура ReWrite(Var f)открывает файл, определенный файловой переменной f, для записи. При открытии для записи существующего файла старый файл уничтожается без предварительной проверки и выдачи предупреждения пользователю. Если файла с таким именем не существовал, то он создается и подготавливается к записи (физически очищается буфер). Логическое устройство при этом подготавливается к приему информации.

3. Процедура AppEnd(Var f:text)- открывает текстовый файл, определенный файловой переменной f, для добавления строк.

При открытии для добавления строк указатель файла устанавливается на конец файла, и, соответственно, все строки, выводимые вфайл, дописываются к уже существующему файлу.

Любой программе без объявления, инициализации файловой переменной и открытия доступны два файла со стандартными файловыми переменными:

§ INPUT - чтение со стандартного устройства ввода;

§ OUTPUT - вывод на стандартное устройство вывода.

Это текстовые файлы, используемые для выполнения элементарных операций ввода-вывода. В операторах ввода-вывода файловые переменные этих файлов обычно не указывают. Остальные файлы становятся доступными только после связывания файловой переменной с файлом или логическим устройством и открытия файла.

Стандартным устройством ввода MS DOS по умолчанию является клавиатура. Стандартным устройством вывода - экран дисплея.

Примечание. Мри необходимости эти устройства можно переназначить средствами операционной системы. Так, для организации ввода данных из файла вместо ввода с клавиатуры необходимо запустить программу из командной строки MS DOS, указав после имени программы символ «<» и имя файла, а для организации вывода в файл вместо вывода на экран - символ «>» и имя файла. Можно перенаправить только ввод или только вывод или и то и другое сразу.

Например:

A:\>example.exe <a.dat >a.res - ввод из файла a.daе, а вывод в файл а.rez.

Такое переназначение будет выполнено, если к программе не используется модуль crt, который организует операции ввода-вывода напрямую, непосредственно взаимодействуя с устройством.

Обработка компонентов файла. Основные операции над компонентами - это операции записи и чтения. На базе этих операций выполняют более сложные операции:

- создание файла - занесение в файл требуемых записей:

- модификация файла- изменение всех или нескольких записей, добавление и удаление записей;

- поиск нужной информации в файле.

Выполнение -этих операций осуществляется по-своему для каждого типа файла.

Закрытие файла. Закрытие файла, открытого для записи или чтения, осуществляется процедурой

Close(Var f).

При этом вновь созданный файл регистрируется в каталоге. Так как любое обращение к диску осуществляется через буферную память, часть данных, выводимых в файл, может остаться в буфере. Процедура закрытия файла обеспечивает вывод оставшихся компонентов из буфера в файл. Связь файловой переменной с файлом при закрытии сохраняется, и при повторном использовании этого же файла процедуру Assign применять еще раз не требуется.








Дата добавления: 2015-12-01; просмотров: 1149;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.