Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_TP.doc
Скачиваний:
10
Добавлен:
22.12.2018
Размер:
1.4 Mб
Скачать

Файловый тип.

Развитый язык программирования должен содержать средства для хранения информации и доступа к ней на внешних запоминающих устройствах. Особенность этих средств в том, что работа с внешними запоминающими устройствами существенно различна в ЭВМ разного класса (ПЭВМ, большая машина) Файл – это информация на внешнем запоминающем устройстве. Состоит из отдельных элементов – блоков – квантов информации. Передача информации в файл – запись. Чтение – считывание информации из файла.

В авторской версии Паскаля - только последовательная обработка файлов. В ТР 6.0 возможен и прямой доступ к файлу.

Описание файлов

1.Файловый типизрованный

VAR < имя файловой переменной >: FILE OF < тип >;

F1:FILE OF BYTE;

F2: FILE OF CHAR;

F3: FILE OF PACKED ARRAY [1..10] OF REAL;

F4: FILE OF RECORD{структура }

A: INTEGER;

B: CHAR;

C: REAL;

END.

  1. Файловый безтиповый

F5: FILE;

  1. Текстовый файл

F6: TEXT;{ файловая переменная текстовая}

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

Второй способ объявления файла через TYPE:

TYPE<имя типа > = FILE OF< тип>;

VAR< имя файловой переменной>:< имя типа>;

Пример:

TYPE A=FILE OF INTEGER;

VAR F1:TF;

В дальнейшем все описанные нами переменные используются для работы с конкретными файлами . Эта работа производится в разделе операторы, то есть после BEGIN.

Используются стандартные процедуры ASSIGN - для связи файловой переменной с конкретным файлом, RESET, REWRITE - процедура открытия файла соответственно для чтения, для записи. WRITE , READ – передача данных из файла в файл ,запись и чтение. CLOSE – процедура закрытия файла ( не обязательна )

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

Фрагмент программы при чтении из файла:

PROGRAM

VAR T: TEXT;

A: ARRAY[1..10] OF BYTE;

I: BYTE;

BEGIN

ASSIGN(T,’C:\DAN’); { связь файловой переменной Т с набором данных и именем DAN, заранее набранных на диске С }

RESET(T);{ подготовка файла к чтению}

FOR I:=1 TO 10 DO

READ(T,A[I]);

. . . . . . . . . . . . . . . . . . . . . . . .

CLOSE(T);

END.

Запись данных в файл.

PROGRAM J9;

VAR F, F1: TEXT;

A:ARRAY[1..10] OF BYTE;

I: BYTE;

BEGIN ASSIGN(F1,’C:\REZ’);

REWRITE(F1);

WRITE(F1,MIN)

. . . . . . . . . . . . .

END.

Пример: поменять местами второй и пятый столбцы . Ввод/вывод из файла в файл.

PROGRAM I10;

VAR F1,F2: TEXT;

R,A: ARRAY[1..5,1..5] OF BYTE;

I,G: BYTE;

BEGIN

ASSIGN(F1,’C:\DAN’);

REWRITE(F1);

FOR I:=1 TO 3 DO

FOR G:= 1 TO 3 DO

READ(F1,A[I]); FOR I:=1 TO 3 DO

REZ:= A[ I, 2]

Операции (действия) над файлами.

1.Установочные и завершающие.

А) ASSIGN(F,’D1.DAT’); - предназначена для связи файловой переменной F с конкретным файлом на диске ( ф. Переменная – представитель файла в программе).

В качестве второго параметра могут использоваться: ‘CON’(вывод с экрана на экран), ‘LPT1’ – ‘LPT3’ (печатающие устройства)

Б) RESET(F) – подготовка файла к чтению. Предполагает, что открываемый файл уже существует в противном случае ошибка.

В) REWRITE(F1) – подготовка файла к записи. Допускает, что открываемый файл не существует, но может и существовать.

Г) CLOSE(F) - завершает действие с файлом, который указывается в качестве ее единственного параметра.

Д) FLUSH(F) – для завершения обмена с файлом без его закрытия, обмен реализуется через буфер.

Е) APPEND(F) – инициирует (открывает) файл для дозаписи в него данных.

2.Операции ввода/вывода : READ(F,OBL1) и WRITE (F1,OBL2)

Область результата

Ф. переменная Область вводимых данных

В отличии от других процедур работы с файлами, эти процедуры могут иметь большее число параметров, но не < 2. первый – всегда имя файловой переменной.

3. Операции перемещения по файлам

True

EOF(F) = - проверка файла на окончание. Возвращает истину или ложь.

False

Пример: проверка файла на окончание.

WHILE NOT

EOF(F) DO

BEGIN

END.

SEEN(F,O) – установка файла на начало.

TRUNCATE(F) – используется для отсечения у файла хвостовой части, начиная с позиции указателя.

4.Специальные операции для действия с файловой системой DOS: ERASE, RENAME и т. д.

Пример: запись в файл данных вводимых с экрана и вывод их на экран.

PROGRAM EX1;

USES CRT;

TYPE DATE = FILE OF BYTE;

VAR F:DATE;

S:BYTE;

BEGIN

CLRSCR;

ASSIGN(F, ‘D1.DAT’)

WRITELN(‘ВВЕДИТЕ ДАННЫЕ');

REWRITE(F);

WHILE NOT EOLN DO {ДО ТЕХ ПОР ПОКА НЕ КОНЧИТСЯ ЛИНИЯ}

BEGIN

READLN(S);{СЧИТЫВАЕТ ДАННЫЕ С ЭРАНА}

WRITE(F,S); {ЗАПИСЬ ДАННЫХ В ФАЙЛ}

END;

CLOSE(F); {ЗАКРЫВАЕТ СОЗДАННЫЙ ФАЙЛ}

RESET(F); {ОТКРЫВАЕТ СУЩЕСТВУЮЩИЙ ФАЙЛ ДЛЯ ЧТЕНИЯ}

WHILE NOT EOF(F) DO

BEGIN

READ(F,S);

WRITELN(S);

END;

END.