Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УПП Программирование 2102,2202.doc
Скачиваний:
18
Добавлен:
20.04.2015
Размер:
760.32 Кб
Скачать

Var X:vr; y:array [1..5] of vr;

9. ФАЙЛЫ

Информация в компьютере хранится в файлах (обычно на диске). Файловая система состоит из двух уровней: физического файла и логического файла. Физический файл – это собственно файл данных на диске, порт, принтер, любое устройство. Логический файл – файловая переменная (типа String), описанная в программе в разделе переменных. В зависимости от способа объявления формируется один из следующих типов файлов:

1. Типизированные файлы. Состоят из данных одного, объявленного типа.

Объявление файла: [имя]: file of [тип];

Примеры: A: file of string[80]; F1: file of char; F2: file of real;

2. Текстовые файлы. Состоят из символов. Объявление текстового файла:

[имя]: text;. Пример: f3: text;

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

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

 Для работы с файлами всех типов используется ряд следую­щих процедур и функций:

assign(фп, файл)

Связывает файл с файловой переменной (ФП).

reset(фп)

Открывает существующий файл для чтения из него.

rewrite(фп)

Создает и открывает файл для записи в него.

close(фп)

Закрывает файл.

erase(фп)

Стирает файл (он должен быть закрыт).

eof(фп)

Признак конца файла (True, если конец).

Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:

read(f,x1,x2,…xn) или readln(f,x1,x2,…xn) – чтение информации х1,х2,…,xn из логического файла f.

write(f,x1,x2,…xn) или writeln(f,x1,x2,…xn) – запись информации х1,х2,… хn в логический файл f.

Для управления текстовыми файлами используется процедуры и функции:

append(фп)

Открывает файл для дополнения.

eoln(фп)

Признак конца строки (True, если конец).

read(фп,переменные)

Считывает данные из файла.

readln(фп,переменные)

Считывает данные из файла, переходит

на следующую строку.

write(фп,переменные)

Записывает данные в файл.

writeln(фп,переменные)

Записывает данные в файл, переходит

на следующую строку.

Для нетекстовых файлов:

filesize(фп)

Число записей в файле.

filepos(фп)

Номер текущей записи.

seek(фп,номер)

Устанавливает указатель на запись

с заданным номером.

truncate(фп)

Усекает файл до текущей позиции.

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

Пример 9-1. а). Вычислить по точкам функцию y=x/2 для x=0,0.5, 1.0,…..4 и записать результаты в текстовый файл с именем func. Текс­товый файл удобен тем, что его можно просмотреть в лю­бом тексто­вом редакторе и, при желании откорректировать данные. Файлу не обязательно иметь расширение. Мы придали ему расшире­ние txt с тем, чтобы проще было его просматривать в Проводнике или WinCommander (эти программы для файлов с расширением txt автома­тически вызывают Блокнот). Физическому файлу дадим имя func.txt, а логическому имя f, и именно с ним будем работать. б). Cоставить программу чтения из файла func.txt записанной ранее в него информации.

PROGRAM 9_1a; {запись вычисленной функции в файл}

var f:text; {объявлен текстовый логический файл f}