Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В среде Турбо Паскаля имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. Результатом компиляции модуля является файл с тем же именем и расширением имени.TPU, который заносится на диск, тогда как результат компиляции программы в целом (ЕХЕ-файл) может оставаться в основной памяти. При его получении проверяется правильность обращения к блокам модуля (вот для чего нужна интерфейсная часть).
Общий объем модульной программы может быть много более 64 кбайт, но каждый.TPU-файл не может превышать 64 кбайт. Вызовем подменю COMPILE: Compile Alt-F9 Make F9 Build Destination Memory/Disk Primary file...
Здесь первые три режима - это режимы компиляции. Они отличаются только способом связи компилируемого модуля или основной программы с другими модулями, объявленными в предложении USES.
При компиляции модуля или основной программы в режиме COMPILE все упоминавшиеся ранее модули в предложении USES должны быть предварительно откомпилированы и помещены в одноименные файлы с расширением TPU.
Если в программе (см. пример 5.2) имеется предложение
USES Triangle, Printer;
где Printer - стандартный модуль, то на диске в каталоге, объявленном опцией UNIT DIRECTORIES, уже должен находиться файл TRIANGLE.TPU. Этот файл создается автоматически в результате компиляции модуля.
71 ТИПИЗИРОВАННЫЕ И НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ В ЯЗЫКЕ ТУРБО ПАСКАЛЬ.СТАНДАРТНЫЕ СРЕДСТВА ОБРАБОТКИ ФАЙЛОВ.ПРИМЕРЫ
Для того, чтобы считать данные из файла или записать данные в файл, необходимо выполнить процедуру инициализации файла. Инициировать файл означает указать для этого файла направление передачи информации. В Турбо Паскале можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно. Для инициализации типизированных файлов существуют следующие процедуры:
1) Reset (f); где f – файловая переменная, связанная ранее процедурой Assign с уже существующим файлом или логическим устройством–приемником информации. При выполнении этой процедуры дисковый файл или логическое устройство подготавливается к чтению информации. В результате специальная переменная–указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0;
2) Rewrite (f); инициирует запись информации в файл или логическое устройство, связанное ранее с файловой переменной f. Процедурой Rewrite нельзя инициировать запись в ранее существовавший дисковый файл. При выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается.
Процедура Close (f) закрывает файл. При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры Close выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы.
Для чтения данных из типизированного файла предназначена процедура Read (f, <сп. ввода>);
Перед первым обращением к процедурам ввода–вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными.
Для записи данных в типизированный файл используется процедура Write (f, <сп. ввода>);
Параметры аналогичны параметрам процедуры Read. При записи в типизированные файлы записывается машинное представление очередного компонента, будь то число, массив, запись или строка. Внутри файла компоненты не отделяются ничем друг от друга. Поэтому не имеет смысла применять к типизированным файлам операторы Readln и Writeln. В них просто не существует такого понятия, как строка и ее конец.
Функция Eof (f) возвращает результат типа Boolean: True, если считан последний компонент файла, и False – в противном случае. Файл f должен быть открыт.
Существуют встроенные процедуры и функции Турбо Паскаля для прямого доступа к компонентам файла.
Процедура Seek (f, <N компонента>) – устанавливает номер текущего компонента файла f. Назначенный компонент будет считан или записан последующей операцией ввода–вывода. Эта процедура непосредственно реализует прямой доступ в файл.
Функция FilePos (f) возвращает номер текущего компонента. Результат типа Longint.
Функция Filesize (f) возвращает реальное число записей в открытом файле. Результат типа Longint.
Truncate (f) – усекает файл f по текущему положению указателя.
При работе с нетипизированными файлами могут применяться все процедуры и функции, доступные типизированным файлам, за исключением Read и Write. Их заменяют процедуры: BlockRead (Var f: file; Var A; n: Word; Var result: Word) и
BlockWrite (Var f: file; Var A; n: Word; Var result: Word).
Эти процедуры осуществляют чтение в переменную A и запись из переменной A не компонентов файла или его строк, а блоков, состоящих из того количества байтов, которое определено для буфера файла f.
Файлы
Данные, обрабатываемые программой, могут находиться не только в оперативной памяти компьютера, но и располагаться на устройствах внешней памяти в файлах. Под файлом понимается либо именованная область внешней памяти ПК, либо логическое устройство – потенциальный источник или приемник информации. Все, что является файлом в MS DOS, является физическим файлом в Турбо Паскале. Файл является некоторой структурой данных с однородными компонентами, число которых при описании файла жестко не фиксируется. Обращение к внешним устройствам из программы на Паскале дает возможность формировать большие объемы информации, корректировать информацию на всем протяжении времени ее существования, транспортировать данные в другие программы.
Дата публикования: 2015-01-26; Прочитано: 333 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!