Шпаргалка: Вопросы и ответы к экзаменам В-1
_____________________________________________________________
|Assign(Var f,FileName:String) - Cвязывание ф.п.f с файлом FileName
|RESET(Var f) | Открытие файла с логическим именем f для чтения |
|REWRITE(Var f) Открытие файла с лог. именем f для записи |
| CLOSE(f) | Закрытие файла с лог. именем f |
|Erase(Var f) | Удаление файла (стирание) с диска |
|Rename(f, NewName:String)|Переименовывает физический файл |
| EOF(f) | Функция тестирования конца файла |
|FLUSH()| Очищает внутренний буфер файла |
-------------------------------------------------------------
ТЕКСТОВЫЕ ФАЙЛЫ
Это файлы последовательного доступа.
Они предназначены для хранения текстовой информации. Компоненты (запи-
си) текстового файла могут иметь переменную длину.
Для доступа к записям файла применяются процедуры
READ, READLN, WRITE, WRITELN.
Текст-ориентированные процедуры и функции
____________________________________________________________
| процедуры | пояснения |
| и функции | (действия) |
|-------------|----------------------------------------------|
|Append |Процедура открывает уже существующий файл f|
| () |для дозаписи в конец файла |
|пр:Append(f) | (для его расширения) |
|SeekEOLN |Функция пропускает все пробелы и знаки табуля-|
| () |ции до первого признака EOLN или первого зна-|
| логич.типа |чащего символа. Возвращает значение TRUE, если|
пр:SeekEOLN(f)|обнаружен маркер конца файла или маркер конца |
| |строки. Если ф.п. опущена, |
| |функция проверяет стандартный файл INPUT. |
| | |
|SeekEOF |Функция пропускает все пробелы,знаки табуляции|
| () |и маркеры конца строк до маркера конца файла|
|пр:SeekEOF(f)|или первого значащего символа. Если маркер об-|
| |наружен, возвращает значение TRUE. |
|EOLN ()|Функция возвращает значение TRUE,если во вход-|
| логич.типа | ном файле f достигнут маркер EOLN или |
|пр: EOLN(f) | EOF; FALSE - в противном случае. |
|_____________|______________________________________________|
Типизированные файлы
позволяют организовать прямой доступ к каждой из компонент (по его по-
рядковому номеру). Описание файловой переменной
Var ft: file of ;
Перед первым обращением к процедурам ввода-вывода указатель файла
стоит в его начале и указывает на 1-ю компоненту с номером 0. После
каждого чтения или записи указатель сдвигается с следующему компоненту
файла. Переменные в списках в/в должны иметь тот же тип, что и компо-
ненты файла.
Процедуры и функции для работы с типизированными файлами
____________________________________________________________
| процедуры | пояснения |
| и функции | (действия) |
|-------------|----------------------------------------------|
READ(,); Процедура
Обеспечивает чтение очередных компонентов файла
WRITE(,) используется для записи новых
компонент в файл; в качестве элементов вывода
м.б. выражение.
SEEK(,) - смещает указатель
файла к компоненту с ;
- выражение типа LONGINT.
(К текстовым файла применять нельзя.)
FILESIZE) Функция возвращает количество компонент,
содержащихся в файле.(Типа LongInt )
Функция FILEPOS() возвращает порядковый номер компо-
ненты файла, доступной для чтения или записи
(который будет обрабатываться следующей операцией в/в).
( Процедура CLOSE () - закрытие файла. )
|-------------|----------------------------------------------|
- содержит одну или более переменных такого
же типа, что и компоненты файла,
- файловая переменная д.б. объявлена предложением FILE OF
и связана с именем файла процедурой ASSIGN. Файл необходимо открыть
процедурой RESET для чтения.
Если файл исчерпан, обращение к READ вызовет ошибку В/В
Чтобы переместить указатель в конец файла можно написать
Пр. Seek(f,FileSize(f)) ; где f - файловая переменная
Нетипизированные файлы
Обьявляются без указания типа файла:
TYPE ftype=file; или VAR fn: file;
Для данных файлов не указывается тип компонентов, что делает их сов-
местимыми с любыми другими файлами. Позволяет организовать высокоско-
ростной обмен данными между диском и памятью.
При инициализации нетипизированных файлов процедурами RESET и
REWRITE указывается длина записи нетипизированного файла в байтах.
пример: VAR f:file; ...
ASSIGN (f,'a.dat');
RESET (f,512);
\ длина записи
Длина файла может быть представлена выражением типа WORD; если пара-
метр длины опущен, подразумевается длина 128 байт; максимальная длина
65535 байт.
Для обеспечения максимальной скорости обмена данными следует за-
давать длину, кратную длине физического сектора дискового носителя
(512 байт). Кроме того, фактически пространство на диске выделяется
любому файлу порциями - кластерами, которые в зависимости от типа дис-
ка могут занимать 2 и более смежных секторов. Как правило, кластер
м.б. прочитан или записан за один оборот диска, поэтому наивысшую ско-
рость обмена данными можно получить, если указать длину записи, равную
длине кластера.
При работе с нетипизированными файлами Могут применяться все
рассмотренные процедуры и функции, доступные типизированным файлам, за
исключением READ и WRITE, которые для чтения и записи заменяются соот-
ветственно высокоскоростными процедурами BlockREAD и BlockWRITE.
BlockREAD(,,,[,Var])
BlockWRITE(,,,[,Var])
где - имя переменной, которая будет участвовать в обмене дан-
ными с дисками;
- количество записей, которые д.б. прочитаны или записаны за одно
обращение к диску;
- необязательный параметр, содержащий при выходе из процедуры ко-
личество фактически обработанных записей.
За одно обращение к процедурам м.б. передано N*r байт, где r -
длина записи нетипизированного файла. Передача идет, начиная с 1-го
байта переменной .
После завершения процедуры указатель смещается на записей.
Процедурами SEEK, FilePos и FileSize можно обеспечить доступ к любой
записи нетипизированного файла.
40. Библиотечный модуль GRAPH. Графические возможности ТП.
GRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).
Для запуска программы с использованием модуля GRAPH необходимо,
чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.
Файл BGI - графический интерфейс. Он обеспечивает взаимодействие
программ с графическими устройствами.
В начале программы модуль GRAPH должен быть подключен
PROGRAM
USES GRAPH;
описание меток, переменных программы, в частности
VAR driver, Mode: integer;
Begin
Далее инициализируется графический режим работы процедурой
InitGraph(,:integer;
: string);
Графическая информация на экране дисплея отражается совокупностью
светящихся точек - ПИКСЕЛЕЙ.
Режим по вертикали: 0 - 200 пикселей (4 страницы),
1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).
Режим 2 (640х480, 16 цветов,1 страница)
В текстовом режиме координаты верхнего угла (1,1).
центр (319,239)
нижнего (639,479)
Тип драйвера допускается указывать =0, тогда он устанавливается
по результатам тестирования (авто определение). Путь определяет маршрут поиска графического драйвера.
Пример:
USES GRAPH;
Const driver, mode: intGRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).
Для запуска программы с использованием модуля GRAPH необходимо,
чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.
Файл BGI - графический интерфейс. Он обеспечивает взаимодействие
программ с графическими устройствами.
В начале программы модуль GRAPH должен быть подключен
PROGRAM
USES GRAPH;
описание меток, переменных программы, в частности
VAR driver, Mode: integer;
Begin
Далее инициализируется графический режим работы процедурой
InitGraph(,:integer;
:string);