Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Компиляция модулей



В среде Турбо Паскаля имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. Результатом компиляции модуля является файл с тем же именем и расширением имени.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; Прочитано: 330 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...