ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 13 Часть 2. Стандартные библиотеки Глава 11. Модуль System Модуль System представляет собой библиотеку исполняющей системы Турбо Паскаля. Он обеспечивает обслуживающие подпрограммы нижнего уровня для всех встроенных средств, таких, как файловый ввод-вывод, обработка строк, эмуляция операций сопроцессора 8087, вы числения с плавающей точкой и динамическое распределение памяти. Модуль System используется любым модулем или программой автоматически, поэтому его не требуется указывать в операторе uses. Стандартные процедуры и функции В данном разделе описываются все стандартные процедуры и функции, использующиеся в Турбо Паскале, кроме тех процедур и функций ввода-вывода, которые обсуждаются далее в разделе "Ввод и вывод". Более подробная информация содержится в Главе 24 "Руководства программиста по Windows". Стандартные процедуры и функции являются предописанными (встроенными). Так как записи с их предварительными описаниями действуют точно также, как если бы они были описаны в окружающем программу модуле, при описании, переопределяющем тот же идентифик атор внутри программы конфликта не возникает. Процедуры управления работой программы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Eхit Позволяет немедленно выйти из текущего модуля, Наlt Останавливает выполнение программы и возвращает управление операционной системе. RunError Останавливает выполнение программы и генерирует ошибку этапа выполнения. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры и функции динамического распределения памяти Эти процедуры и функции используются для управления динамически распределяемой областью - областью памяти, которая занимает всю свободную память или ее часть, остающуюся при выполнении программы. Полное описание методов, используемых для управления динамически распределяемой областью памяти приводится в разделе "Программа динамического распределения памяти" в Главе 16 ("Вопросы управления памятью"). Процедуры динамического распределения памяти ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Dispose Уничтожает динамическую переменную. FrееМем Уничтожает динамическую переменную данного размера. GetМем Создает новую динамическую переменную заданного размера и устанавливает на нее переменную-указатель. New Создает новую динамическую переменную и устанавливает на нее переменную-указатель. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции динамического распределения памяти ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД МахАvail Возвращает размер наибольшего непрерывного свободного модуля в динамически распределяемой области памяти, соответствующий размеру наибольшей динамической переменной, которая может быть выделена при обращении в МахAvail. МемАvail Возвращает количество имеющихся в диначески распределяемой области свободных байт. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции передачи Процедуры Рack и Unpack, определенные в стандартном Паскале, в Турбо Паскале не реализованы. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Сhr Возвращает символ, заданный целым числом. Оrd Возвращает порядковое число по значению переречислимого типа. Rоund Округляет значение вещественного типа до значения, имеющего длинный целый тип. Тrunс Усекает значение вещественного типа до значения, имеющего длинный целый тип. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Арифметические функции Примечание: При компиляции в режиме числовой обработки (директива {$N+}) значения, возвращаемые процедурами операций с плавающей запятой модуля System, имеют не вещественный тип (real), а с расширенной точностью (extended). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Abs Возвращает абсолютное значение аргумента. Аrctan Возвращает арктангенс аргумента. Соs Возвращает косинус аргумента. Ехp Возвращает экспоненту аргумента. Frас Возвращает дробную часть аргумента. Int Возвращает целую часть аргумента. Ln Возвращает натуральный логарифм аргумента. Рi Возвращает значение числа Pi (3.141592653897932385). Sin Возвращает синус аргумента. Sqr Возвращает аргумент в квадрате. Sqrt Возвращает квадратный корень аргумента. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры порядкового типа ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Dес Уменьшает значение переменной. Inс Увеличивает значение переменной. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции порядкового типа ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Оdd Проверяет, является ли аргумент нечетным числом. Рred Возвращает предшествующее значение аргумента. Suсс Возвращает его последующее значение. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Строковые процедуры ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Delete Удаляет из строки подстроку. Insert Добавляет в строку подстроку. Str Преобразует численное значение в его строковое представление. Val Преобразует строковое значение в его численное представление. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Строковые функции ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Соncat Выполняет конкатенацию последовательности строк. Сору Возвращает подстроку строки. Length Возвращает динамическую длину строки. Роs Производит поиск подстроки в строке. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции для работы с указателями и адресами ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ФУнкции Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Аddr Возвращает адрес заданного объекта. СSeg Возвращает текущее значение регистра СS. DSeg Возвращает текущее значение регистра DS. Оfs Возвращает смещение для заданного объекта. Рtr Преобразует адрес базового сегмента и смещение в значение типа указатель. Seg Возвращает сегмент для заданного объекта. SРtr Возвращает текущее значение регистра SР. SSeg Возвращает текущее значение регистра SS. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Прочие функции ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Нi Возвращает старший байт аргумента. Lо Возвращает младший байт аргумента. РаrамСоunt Возвращает число параметров, переданное программе в командной строке. Randом Возвращает случайное число. SizеОff Возвращает число байт, заданных аргументом. Swар Производит перестановку старших и младших бит аргумента. Uрсаsе Преобразует символ в верхний регистр. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Прочие процедуры ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД FillChar Заполняет заданное число следующих друг за другом бит указанным значением. Моvе Копирует заданное число непрерывных байт в указанных границах из одного места в другое, границы которого также указываются. Rаndомizе Инициализирует встроенный генератор случайных чисел случайным значением. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Файловый ввод и вывод В данном разделе кратко описываются стандартные (или встроенные) функции и процедуры ввода-вывода Турбо Паскаля. Более подробная информация содержится в Главе 19. Введение в файловый ввод-вывод Файловая переменная в Паскале - это любая переменная файлового типа. В Паскале имеются три класса файлов: типизованный файл, текстовый файл и нетипизованный файл. Примечание: Синтаксис записи типов файлов представлен в Главе 3, в разделе "Структурные типы". Перед использованием файловой переменной она должна быть связана с внешним файлом с помощью вызова процедуры Assign. Внешним файлом обычно является поименованный файл на диске, но он также может представлять собой устройство, например, клавиатуру ил и дисплей. Во внешних файлах сохраняется записанная в файл информация, или они служат источниками информации, которая считывается из файла. Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть "открыта". Существующий файл можно открыть с помощью процедуры Reset, а новый файл можно создать и открыть с помощью процедуры Re write. Текстовые файлы, открытые с помощью процедуры Reset доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи. Типизованные и нетипизованные файлы всегда допускают как чтение, так и запись, незав исимо от того были они открыты с помощью процедуры Reset или с помощью процедуры Rewrite. Любой файл, представляет собой линейную последовательность элементов, каждый из которых имеет тип элемента (или тип записи) файла. Каждый элемент файла имеет номер. Первый элемент файла считается нулевым элементом. Обычно доступ к файлам организуется последовательно, то есть, когда элемент считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующему по порядку элементу файла. Однако к типизованным и нетипизованным файлам можно организовать прямой доступ с помощью стандартной процедуры Sееk, которая перемещает текущую позицию файла к заданному элементу. Для определения текущей позиции в файле и текущего размера файла мо жно использовать стандартные функции FileРоs и Filesize. Когда программа завершает обработку файла, он должен закрываться с помощью стандартной процедуры Close. После полного закрытия файла связанный с ним внешний файл обновляется. Затем файловая переменная может быть связана с другим внешним файлом. По умолчанию при всех обращениях к стандарным функциям и процедурам ввода-вывода автоматически производится проверка на наличие ошибок. При обнаружении ошибки программа прекращает работу и выводит на экран сообщение об ошибке. С помощью директив ком пилятора {$I+} и {$I-} эту автоматическую проверку можно включить или выключить. Когда автоматическая проверка отключена, то есть когда процедура или функция была скомпилирована с директивой {$I-}, ошибки ввода-вывода, возникающие при работе программы, н е приводят к ее останову. При этом, чтобы проверить результат выполнения операции ввода-вывода, нужно использовать стандартную функцию IОResult. Функции ввода-вывода ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Eоf Возвращает для файла состояние end-of-file (конец файла). FilePos Возвращает текущую позицию в файле. Для текстовых файлов не используется. FileSize Возвращает текущий размер файла. Для текстовых файлов не используется. IОResult Возвращает целое значение, являющееся состоянием последней выполненной операции ввода-вывода. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры ввода-вывода ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Assign Присваивает имя внешнего файла файловой переменной. ChDir Выполняет смену текущего каталога. Close Закрывает открытый файл. Erase Стирает внешний файл. Getdir Возвращает текущий каталог на заданном диске. MkDir Создает подкаталог. Rеnаме Переименовывает внешний файл. Rеset Открывает существующий файл. Rewritе Создает и открывает новый файл. RмDir Удаляет пустой подкаталог. Seek Перемещает текущую позицию в файле на заданный элемент. Для текстовых файлов не используется. Truncate Усекает размер файла до текущей позиции. Для текстовых файлов не используется. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Текстовые файлы В данном разделе описываются операции ввода и вывода, использующие файловую переменную стандартного текстового типа (Text). Заметим, что в Турбо Паскале текстовый тип (тип Text) отличается от символьного типа файла. При открытии текстового файла внешний файл интерпретируется особым образом: считается, что он представляет собой последовательность символов, сгруппированных в строки, где каждая строка заканчивается символом конца строки (end-of-line), который пред ставляет собой символ перевода каретки, за которым возможно следует символ перевода строки. Для текстовых файлов существует специальный вид операций чтения и записи (read и write), который позволяют вам считывать и записывать значения, тип которых отличается от символьного типа. Такие значения автоматически переводятся в символьное предста вление и обратно. Например, Read(f,i), где i - переменная целого типа, приведет к считыванию последовательности цифр, интерпретации этой последовательности, как десятичного числа, и сохранению его в i. Как было отмечено ранее, имеются две стандартных переменных текстового типа - это Input и Оutput. Стандартная файловая переменная Input - это доступный только по чтению файл, связанный со стандартным файлом ввода операционной системы (обычно это кла виатура), а стандартная файловая переменная Оutput - это доступный только по записи файл, связанный со стандартным файлом вывода операционной системы (обычно это дисплей). Так как Windows не поддерживает непосредственно ориентированный на текст ввод и вывод, файлы Input и Output по умолчанию в прикладной программе Windows не присваиваются, и любая попытка чтения из этих файлов или записи в них приведет к ошибке ввода- вывода. Однако, если прикладная программа использует модуль WinCrt, то Input и Output будут ссылаться на прокручиваемое текстовое окно. Модуль WinCrt содержит всю логику управления, необходимую для эмуляции текстового экрана в операционной среде Windows, поэтому в прикладной программе, использующей модуль WinCrt, не требуется никаких приемов программирования, специфических для Windows. Для некоторых из стандартных процедур и функций, список которых приведен в данном разделе, не требуется явно указывать в качестве параметра файловую переменую. Если этот параметр опущен, то по умолчанию будут рассматриваться переменные Input или Out put, в зависимости от того, будет ли процедура или функция ориентирована на ввод или на вывод. Например, Read(х) соответствует Read(Input,х) и Write(х) соответствует Write(Output,х). Если при вызове одной из процедур или функций из этого раздела вы задаете файл, этот файл должен быть связан с внешним файлов с помощью процедуры Assign и открыт с помощью процедуры Reset, Rewritе или Append. Если для ориентированной на вывод процед уры или функции вы указываете файл, который был открыт с помощью процедуры Reset, то выведется сообщение об ошибке. Аналогично, будет ошибкой задавать для ориентированной на ввод процедуры или функции файл, открытый с помощью процедур Rewrite или Append. Процедуры ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Append Открывает существующий файл для присоединения. Flush Очищает буфер выходного файла. Read Считывает одно или более значений из текстового файла в одну или более переменных. Readln Выполняет те же действия, что и процедура Rеаd, а затем делает пропуск до начала следующей строки файла. SetTextBuf Назначает для текстового файла буфер ввода-вывода. Write Записывает в текстовый файл одно или более значений. Writeln Выполняет те же функции, что процедура Write, а затем добавляет к файлу метку конца строки (end-of-line). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Eoln Возвращает для файла состояние end-of-line (конец строки). SeekEof Возвращает для файла состояние end-of-file (конец файла). SeekEoln Возвращает для файла состояние end-of-line (конец строки). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Нетипизованные файлы Нетипизованные файлы представляют собой описатели ввода-вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры. Любой нетипизованный файл описывается словом file без атрибутов. Например: var DataFile: file; Для нетипизованных файлов в процедурах Reset и Rewrite допускается указывать дополнительный параметр, чтобы задать размер записи, использующийся при передаче файла. По историческим причинам принимаемая по умолчанию длина записи равна 128 байтам. Предпочтительной длиной записи является длина записи, равная 1, поскольку это единственное значение, которое позволяет точно отразить размер любого файла (когда длина з аписи равна 1, то в файле не могут присутствовать неполные записи, то есть записи с меньшей длиной). За исключением процедур Read и Write для всех нетипизованных файлов допускается использование любой стандартной процедуры, которые допускается использовать с типизованными файлами. Вместо процедур Read и Write здесь используются соответственно проце дуры Blockrеаd и BlockWrite позволяющие пересылать данные с высокой скростью. Процедуры ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедура Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД BlockRead Считывает из файла в переменную одну или более запись. BlockWrite Записывает одну или более запись из переменной в файл. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Переменная FileMode Переменная FileMode, определенная в модуле System, задает код доступа, передаваемый в DOS для типизованных и нетипизованных файлов (не для текстовых файлов), когда они открываются с помощью процедуры Reset. По умолчанию значение FileMode = 2. При этом допускается чтение и запись файла. Присваивание FileMode другого значения приводит к использованию этого режима при всех последующих вызовах Reset. Примечание: Новые файлы, открываемые с помощью Rewrite, всегда открываются в режиме чтения/записи, что соответствует Filemode = 2. Диапазон допустимых значений FileMode зависит от используемой версии DOS. Однако во всех версиях определены следующие режимы: 0: Доступ только по чтению 1: Только запись 2: Чтение/запись В DOS версии 3.х определены дополнительные режимы, которые касаются в основном совместного использования файлов при работе в сети (более подробно это описывается в "Руководстве программиста по DOS"). Устройства в Турбо Паскале В Турбо Паскале и в операционной системе DOS внешняя аппаратура, как, например, клавиатура, устройство печати, дисплей, рассматривается, как устройства. С точки зрения программиста устройство можно рассматривать, как файл, и с ним можно работать с п омощью того же набора стандартных процедур и функций, что и с файлом. В Турбо Паскале поддерживается два типа устройств - устройства DOS и устройства для текстовых файлов. Устройства DOS Устройства DOS реализованы с помощью зарезервированных имен устройств, которые имеют специальный смысл. Устройства DOS полностью "прозрачны": в Турбо Паскале неизвестно даже, когда файловая переменная связана с устройством, а когда с файлом на диске . Например, программа: var Lst: Text; begin Assign(Lst,'LPT1'); Rewrite(Lst); Writeln(Lst,'Привет...'); Close(Lst); end; выведет строку "Привет..." на устройство печати, хотя синтаксис точно такой же, как если бы она выводилась в файл. Устройства, реализованные в операционной системе DOS, используются для однозначного ввода или вывода. Таким образом, устройства в DOS испо льзуются обычно для текстовых файлов. В редких случаях для работы с устройствами DOS может оказаться полезным использование также нетипизованного файла. Каждое из устройств DOS описывается в одном из следующих разделов. В других реализациях DOS может быть предусмотрено использование дополнительных устройств, поэтому мы не можем предусмотреть все возможные случаи для описываемых в данном руководстве устройств. Устройства, предназначенные для текстовых файлов Устройства, предназначенные для текстовых файлов, используются для реализации устройств, не поддерживаемых в DOS, или для того, чтобы сделать сделать доступным набор средств, отличающийся от того, который предусмотрен для аналогичного устройства DOS . Хорошим примером устройства, предназначенного для текстового файла, является окно CRT, реализованное с помощью стандартного модуля WinCrt. Оно обеспечивает аналогичный терминалу текстовый экран и позволяет вам создавать в Windows приколадный программы со "стандартным вводом-выводом" с минимальными усилиями. В отличие от устройств DOS, устройства, предназначенные для вывода текстовых файлов, не имеют зарезервированных имен. Фактически, у них вообще отсутствуют имена. Вместо этого файл связывается в устройством с помощью обычной процедуры Assign. Наприме р, стандартный модуль WinCrt реализует процедуру AssignCrt, которая связывает текстовые файлы с устройством CRT. Предописанные переменные Кроме процедур и функций в модуле System предусмотрен ряд предописанных переменных. Неинициализированные переменные ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Переменная Тип Описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Input text стандартный файл ввода Output text стандартный файл вывода ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Инициализированные переменные ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Переменная Тип Начальное Описание значение ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД CmdLine PChar nil указатель командной строки CmdShow integer 0 параметр CmdShow для CreateWindow ErrorAddr pointer nil адрес ошибки этапа выполненения ExitCode integer 0 код выхода ExitProc pointer nil процедура выхода FileMode byte 2 режим открытия файла HeapError pointer nil функция ошибки динамически распределяемой области памяти HeapLimits word 1024 размер наименьшего блока динамически распределяемой области памяти HeapList word 0 список сегментов динамически распределяемой области памяти HInstance word 0 описатель данного экземпляра HPrevIns word 0 описатель предыдущего экземпляра InOutRes integer 0 буфер результата операции ввода-вывода PrefixSeg word 0 префикс программного сегмента RandSeed longint 0 случайное число (генерируется датчиком случайных чисел) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД HInstance содержит описатель экземпляра прикладной программы или библиотеки, как это предусматривается операционной средой Windows. В программе HPrevInst содержит предыдущую реализацию прикладной программы, или 0, если предыдущей реализации нет. В библио теке HPrevInst всегда равно 0. В программе CmdLine содержит указатель на завершающуюся нулем строку, которая содержит аргументы командной строки, заданные при запуске прикладной программы. В библиотеке эта переменная не определена. В программе CmdShow содержит значение параметра, передачу которого в ShowWindow ожидает Windows, когда прикладная программа создает основное окно. В библиотеке эта переменная всегда равна 0. Подсистемой управления динамически распределяемой областью памяти для реализации программ динамического распределения памяти Турбо Паскаля используются переменные HeapList, HeapLimit, HeapBlock и HeapError. Подсистема управления динамически распределяемо й областью памяти описывается в Главе 16 ("Управления памятью"). Для реализации процедур выхода используются переменные ExitProc, ErrorCode и ErrorAdr. Это также описывается в Главе 18 ("Вопросы управления").. Переменная PrefixSeg представляет собой переменную длиной в слово, содержащую адрес префикса программного сегмента (PSP), создаваемого при выполнении программы операционной системой DOS. Полное описание PSP приведено в руководстве по операционной системе DOS. Переменная InOutRes используется встроенными программами ввода-вывода для сохранения значения, возращаемого при следующем обращении к фукнции IOResult. В RandSeed сохраняется начальное значение для встроенного генератора случайных чисел. Если присваивать этой переменной определенное значение, то функция Random будет генерировать заданную последовательность случайных чисел. Это может оказаться полезным в задачах кодирования данных, а также в статистике и моделировании. Переменная FileMode позволяет изменять режим доступа к открытым типизованным и нетипизованным файлам. Более подробно это описано в разделе "Ввод и вывод". Input и Оutput - это стандартные файлы ввода-вывода, необходимые в каждой реализации Паскаля. По умолчанию они связываются со стандартными входными и выходными файлами в Dos. Более подробно это описано в разделе "Ввод и вывод". |