Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Процедуры работы с типизированными файлами






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

1) Reset (f); где f – файловая переменная, связанная ранее процедурой Assign с уже существующим файлом или логическим устройством–приемником информации. При выполнении этой процедуры дисковый файл или логическое устройство подготавливается к чтению информации. В результате специальная переменная–указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0;

2) Rewrite (f); инициирует запись информации в файл или логическое устройство, связанное ранее с файловой переменной f. Процедурой Rewrite нельзя инициировать запись в ранее существовавший дисковый файл. При выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается.

Процедура Close (f) закрывает файл. При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры Close выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы.

Для чтения данных из типизированного файла предназначена процедура Read (f, < сп. ввода>);

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

Для записи данных в типизированный файл используется процедура Write (f, < сп. ввода>);

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

Функция Eof (f) возвращает результат типа Boolean: True, если считан последний компонент файла, и False – в противном случае. Файл f должен быть открыт.

Существуют встроенные процедуры и функции Турбо Паскаля для прямого доступа к компонентам файла.

Процедура Seek (f, < N компонента>)устанавливает номер текущего компонента файла f. Назначенный компонент будет считан или записан последующей операцией ввода–вывода. Эта процедура непосредственно реализует прямой доступ в файл.

Функция FilePos (f) возвращает номер текущего компонента. Результат типа Longint.

Функция Filesize (f) возвращает реальное число записей в открытом файле. Результат типа Longint.

Truncate (f)усекает файл f по текущему положению указателя.

При работе с нетипизированными файлами могут применяться все процедуры и функции, доступные типизированным файлам, за исключением Read и Write. Их заменяют процедуры: BlockRead (Var f: file; Var A; n: Word; Var result: Word) и

BlockWrite (Var f: file; Var A; n: Word; Var result: Word).

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.