КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Процедуры и функции для работы с файлами
Открытие и закрытие файлов Для открытия файлов используются процедуры Reset, Rewrite и Append. Форма обращения к ним: Reset (файловая переменная); Rewrite (файловая переменная); Append (файловая переменная); где файловая переменная - это переменная, связанная с физическим файлом или логическим устройством с помощью Assign. При выполнении процедуры Reset дисковый файл или логическое устройство подготавливается к чтению данных. Внутренняя переменная-указатель, связанная с этим файлом, указывает на начало файла, т. е. на его компонент с номером 0. При попытке открыть процедурой Reset несуществующий файл или инициировать чтение из логического выводного устройства (например, из PRN) возникает ошибка. Паскаль допускает и чтение (Read) и запись (Write) в ранее созданные типизированные файлы, открытые с помощью процедуры Reset. Это позволяет корректировать и дополнять созданные типизированные файлы. Встроенная процедура Rewrite инициирует запись данных в новый файл или вывод данных на логическое устройство, связанное с файловой переменной. При выполнении этой процедуры уничтожается старый файл с таким же именем, если он был ранее создан. Новый дисковый файл подготавливается к приему данных, и его переменная-указатель, связанная с этим файлом, устанавливается в начало файла. После открытия файла процедурой Rewrite можно выводить данные в файл с помощью процедуры Write. Процедура Append открывает ранее созданный текстовый файл для его дополнения новыми записями: указатель файла устанавливается в его конец, после последней записи файла. Процедура Close (файловая переменная); закрывает файл. Но связь файловой переменной с именем физического файла, установленная с помощью Assign, сохраняется. Поэтому файл можно в программе многократно открывать и закрывать по мере необходимости. Процедура Close обеспечивает сохранность созданных в файле записей. При нормальном завершении программы действия процедуры Close выполняются и без ее вызова, автоматически, по отношению ко всем открытым файлам. Созданные типизированные файлы закрывать оператором Close обязательно. Повторное закрытие файлов недопустимо.
Процедура Read (var F, V1, …Vn) обеспечивает ввод (копирование) чисел, символов и строк из физического файла, связанного с логическим файлом F, в области ОП, соответствующие переменным Vi, определенных в списке данных оператора. Процедура игнорирует признаки EOLN, т.е. игнорирует признаки конца строки. При вводе данных оператором Read совершаются следующие операции: 1) выделенное очередное вводимое значение сначала передается в буфер ввода; 2) затем оно преобразуется в форму переменной (определенную при объявлении), для которой оно вводится; 3) после этого копируется в область ОП, зарезервированную для переменной при ее объявлении. Последовательность данных, вводимых из файла, должна соответствовать последовательности имен списка данных. При использовании в качестве логической переменной F стандартного файла слово Input можно не писать: Read (список ввода); или Read ( Input, список ввода);. Процедур а Write (var F, V1, …Vn) выводит в физический файл, связанный с переменной F, одно или несколько значений, хранящихся в ОП с адресами, соответствующими переменным Vi. С ее помощью можно выводить (копировать) числа, символы, строки и логические значения из ОП в файл или на логическое устройство (например, на экран или принтер). Перед выводом значение преобразуется из формы его внутреннего представления (например, из числа с плавающей точкой) в форму, требуемую при выводе в соответствии с форматом вывода (например, в форму числа с фиксированной точкой), и только после этого выводится в физический файл. С файлами любых типов можно использовать процедуры Assign, открытия и закрытия файлов и процедуры ввода-вывода данных. Процедура AssignCrt (файловая переменная); модуля Crt связывает текстовый файл с устройством Crt (терминалом). Файловая переменная - имя переменной типа текстового файла. Установка связи логического файла с клавиатурой или с экраном зависит от того, как будет открыт этот файл: • для ввода данных с клавиатуры - процедурой RESET или • для вывода данных на экран - процедурой REWRITE. В случае необходимости, можно один и тот же файл открывать то для ввода, то для вывода данных. Пример программы, в которой 3 текстовых файла могут работать с клавиатурой или с экраном для ввода или для вывода данных. Переключение текстовых файлов программы на работу с экраном или клавиатурой. Uses Crt; VAR Fl, F2, F3: TEXT; А, В, С: BYTE; BEGIN Assign (Fl, ' '); Assign (F2, ‘CON1’); AssignCrt (F3); Rewrite (Fl); Rewrite (F2); Rewrite (F3); { открыть для вывода на экран } Write (Fl, A); Write (F2, В); Write (F3, С); Close (Fl); Close (F2); Close (F3); { - закрыть файлы } Reset (Fl); Reset (F2); Reset (F3); { - открыть для ввода данных} Read (Fl, A); Read (F2, В); Read (F3, С); {с клавиатуры } Close (Fl); Close (F2); Close (Fl); { - закрыть файлы } END. Кроме того, с файлами любых типов можно использовать следующие процедуры и функции стандартного модуля System: Eof (конец), Erase (стереть), ReName (переименовать), IOResult (ошибка результата), ChDir (изменить каталог), MkDir (создать каталог), RmDir (переименовать каталог). Форма обращения к функции EOF: EOF (файловая переменная); Например: WHILE NOT EOF (FILE1)... Функция EOF возвращает значение TRUE, если указатель файла находится за последним элементом файла, и значение FALSE в противном случае. Файловая переменная может относиться к файлу любого типа. Если параметр функции (и круглые скобки) опущен, то используется стандартная файловая переменная INPUT. Форма обращения к процедуре Erase: Erase (файловая переменная); Процедура Erase стирает физический файл, связанный в этот момент с этой файловой переменной. Файл должен быть закрыт. Например, если файл F связан с помощью процедуры Assign с физическим файлом fl.rez, то после выполнения процедуры Erase (F); физический файл fl.rez будет стерт (удален). Процедура ReName переименовывает закрытый физический файл, связанный в данный момент с данным логическим файлом. Форма обращения к процедуре ReName: ReName (файловая переменная, новое имя файла); где новое имя файла - выражение типа string. Например, если файл F присоединен к физическому файлу с именем fl.rez, то после выполнения процедуры ReName (F, 'f2.rez'); физический файл fl.rez получит имя f2.rez. Выполнение операций ввода-вывода сопровождается автоматическим контролем со стороны компилятора. Существует возможность отключения контроля директивой I- (обратное включение осуществляется директивой I+). В этом случае для контроля правильности выполнения процедур ввода-вывода можно использовать значение функции IOResult. Функция IOResult: Integer; - возвращает целое значение, представляющее собой код ошибки неуспешно выполненной процедуры для работы с файлом или нуль в случае ее успешного выполнения. После выполнения процедуры работы с файлом значение функции IOResult можно проанализировать и по результатам анализа определить дальнейшие программные действия. Например: VAR F: FILE OF CHAR; ASSIGN (F, 'FILE.DAT'); {$!-} { - отключение средств контроля системы } RESET (F); { - открытие файла F } {$!+} { - подключение средств контроля системы } IF IORESULT <> О THEN... { - файл не открыт, не существует } ELSE... { - файл открыт, существует }
Дата добавления: 2014-01-06; Просмотров: 524; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |