Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД-Паскаль-2012.docx
Скачиваний:
38
Добавлен:
01.05.2015
Размер:
561.45 Кб
Скачать

Работа с текстовыми файлами

Одним из типов данных в PASCAL является файловый тип, представляющий собой последовательность однотипных компо­нентов, расположенных на внешнем носителе. Тип этих компо­нентов может быть любой, за исключением типа-файла.

В PASCAL файловые переменные используются для ввода-вывода информации.

Перед тем как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры ASSIGN. Этим файлом может быть файл на магнитном диске или ленте, а также устройство вычислительного комплекса (клавиатура, экран дисплея, принтер и т. д.). Затем файл должен быть открыт для чтения и/или записи. После этого можно осуще­ствлять организацию ввода-вывода.

В PASCAL 7.0 имеется 3 категории файлов, работа с которыми отличается друг от друга:

  • текстовые (тип TEXT);

  • типизированные (FILE OF <тип>);

файлы без типа (FILE).

В табл. 1 приведены стандартные процедуры и функции для всех файлов.

Процедуры и функции для всех файлов

Назначение

ASSIGN (F, NAME)

Связь файловой переменной F с внешним файлом NAME. NAME - переменная или константа типа STRING, CHAR или совместимого типа. Имя типа должно быть написано в соответствии с правилами MS DOS, может включать путь и не должно превышать 79 символов. Если строка имени пустая, осуществляется связь со стандартным файлом ввода или выво­да (как правило, консолью)

CHDIR (PATH)

Изменение текущей директории. Устанавливает новый текущий каталог, путь к которому (включая, быть может, имя устрой­ства) находится в параметре PATH

CLOSE (F)

Закрытие открытого файла

ERASE (F)

Уничтожение внешнего файла

GETDIR(N, S)

Получение текущего каталога накопителя. В переменную S записывается текущий каталог накопители, номер которого указан параметром N. Параметр N имеет следующие значения: О - текущий накопитель, 1 - накопитель А:, 2 - накопитель В: и т. д.

MKDIR(PATH)

Создание каталога

RENAME(F, NEW)

Переименование внешнего файла

RESET (F[, SIZE])

Открытие существующего файла. Открывается существующий файл, с которым связана файловая переменная F, и указатель те­кущего компонента файла настраивается на на­чало файла. Необязательный параметр целого ти­па SIZE используется только с файлами без типа и задает размер пересылаемого элемента инфор­мации в байтах (по умолчанию 128)

REWRITE(F[, SIZE])

Открывается новый пустой файл, и ему при­сваивается имя, заданное процедурой ASSIGN. Если файл с таким именем уже существует, то он уничтожается

RMDIR(PATH)

Удаление пустого каталога

EOF(F)

Конец файла

IORESULT

Результат последней операции ввода-вывода. Возвращает число 0, если операция ввода-вывода завершилась успешно, и другое число -в противном случае. После применения этой функции параметр со­стояния последней операции ввода-вывода сбрасывается в нуль

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

Особенностью работы с текстовыми файлами является то, что параметры, значения которых вводятся и выводятся с помощью процедур READ или WRITE, могут быть не только типа CHAR или STRING, но и других простых типов:

  • целых, вещественных типов при вводе;

  • целых, вещественных, логических типов при выводе.

Эти процедуры могут также работать и с ASCII-строками.

Имеется две стандартные файловые переменные для текстовых файлов, которые автоматически открываются при запуске про­граммы и автоматически закрываются после работы:

INPUT - по умолчанию связанная с клавиатурой;

OUTPUT - по умолчанию связанная с экраном дисплея.

Если при работе с файлами типа TEXT в процедуре или функ­ции не указана файловая переменная, считается, что используется файловая переменная INPUT или OUTPUT. Текстовый файл мо­жет быть открыт либо для чтения процедурой RESET, либо для записи процедурой REWRITE или APPEND.

Описание процедур и функций для работы с текстовыми фай­лами приведено в табл2.

Процедуры и функции для текстовых файлов

Назначение

APPEND (F)

Открытие файла для добавления в конец информации

FLUSH (F)

Освобождение буфера выходного файла. Информация из буфера вывода записыва­ется в файл, с которым связана файловая переменная F

READ (F, <список>)

Чтение из файла

READLN(F, <список>)

Чтение строки из файла

SETTEXTBUF(F, BUF [, SIZE])

Назначение буфера ввода-вывода. Для файла, с которым связана файловая переменная F, назначается буфер ввода-вывода в виде переменной BUF любого типа

WRITE(F, <список>)

Запись в файл

WRITELN(F, <список>)

Запись строки в файл

EOLN(F)

Конец строки файла

SEEKEOF(F)

Конец файла

SEEKEOLN(F)

Конец строки файла, пропускает в конце строки символы пробела и табуляции

Выводить в текстовый файл можно переменные любых базовых типов (вместо значений логического типа выведется их строковый аналог TRUE или FALSE) или строки. Структурированные типы данных можно записывать только поэлементно.