Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к зачету .doc
Скачиваний:
9
Добавлен:
13.08.2019
Размер:
317.44 Кб
Скачать
  1. Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.

Виды файлов:

1) записеориентированные (двоичные), при обмене происходит копирование цепочек без преобразования

Type F=file of <тип элементов>

2 ) потокоориентированные (текстовые), рассматриваются как поток литер, которые являются текстовым значением вводимых и выводимых переменных (текстовое внутреннее представление)

Разбит на строки

Методы доступа к файлам:

1) последовательный

Магнитная лента, записи ничем не отличаются, дозапись возможна только в конец файла

2) прямой

Можно напрямую обратиться к любому элементу

- каждая запись имеет уникальный ключ

- по номеру

3) индексно-последовательный

Ключи упорядочены, записи в порядке возрастания/убывания ключей

Триада для работы с файлами:

  1. Синхронизация. Буферизация. Блокирование.

1) синхронизация – согласование времени работы

X:=a+b;

Writeln(x);

Y:=x;

Центральный процессор выполняет программу, одновременно дает задачу на процессор ввода-вывода

Assign(f,name)

связывает файловую переменную f с файлом с именем name

Reset(f)

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

Rewrite(f)

Если файл с указанным именем уже существует, то он удаляется, и вместо него создается новый файл. Типизированные файлы - на чтение и запись

Close(f)

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

FileExists(name)

Возвращает True, если на диске имеется файл с именем name, в противном случае возвращает False

CanCreateFile(name)

Возвращает True, если можно создать файл с именем name, в противном случае возвращает False

Read(f,a,b,...)

Считывает значения из файла f в переменные a, b ... Если файл типизированный, то типы переменных a, b ... должны совпадать с базовым типом файла, а их значения считываются из файла в двоичном виде.

Write(f,a,b,...)

Записывает значения a, b ... в файл f. Если файл типизированный, то типы значений a, b ... должны быть совместимыми с базовым типом файла.

Eof(f)

Возвращает True, если файловый указатель стоит на конце файла, и False в противном случае

FileSize(f) 

Возвращает количество элементов в типизированном файле

FilePos(f)

Возвращает позицию файлового указателя в типизированном файле (нумерация элементов в типизированном файле начинается с нуля)

Seek(f,n)

Перемещает файловый указатель в типизированном файле на n-тый элемент (нумерация начинается с нуля)

Truncate(f)

Удаляет все элементы типизированного файла с текущей позиции файлового указателя до конца файла

Rename(f,name)

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

Erase(f)

Удаляет файл, связанный с файловой переменной f. Файл должен быть закрыт

Read(x);

Z:=a+b;

Y:=x;

Когда центральный процессор дойдет до 3-й команды, ему нужно узнать, выполнилась ли первая команда

-либо процессор периодически обращается к процессору ввода-вывода, либо процессор ввода-вывода сам сообщает, когда закончит выполнять

Центральный процессор:

- стартовать операции ввода-вывода

- проверять состояние

- работает быстрее за счет электронных, а не механических операций

2) буферизация – разделение памяти за счет разных процессоров

Write (x,y,z);

X:=f();

Y:=f();

Z:=f();

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

3) блокирование –

Логическая запись – (ввод-вывод), в программе манипулирование по логическим записям, логические записи в буфер

Физическая запись – (ввод-вывод), из буфера информация выводится физическими блоками, которые формируются из логических записей