Переменные модуля System библиотеки TPW.TPL — КиберПедия 

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Переменные модуля System библиотеки TPW.TPL

2022-10-29 26
Переменные модуля System библиотеки TPW.TPL 0.00 из 5.00 0 оценок
Заказать работу

(библиотеки для приложений Windows).

Переменная    Тип          Описание                
CmdLine       PChar       указатель командной строки  
CmdShow       Integer         параметр CmdShow для Create- Window
ErrorAddr     Pointer         адрес ошибки этапа выполнения
ExitProc      Pointer         процедура выхода            
ExitCode      Integer          код выхода                  
FileMode      Byte            режим открытия файла        
Input         Text            стандартный файл ввода      
HeapAllocFlag Word            флаги распределения блока динамически распределяемой области памяти
HeapBlock     Word            размер блока динамически распределяемой области памяти
HearError     Pointer         функция ошибки динамически распределяемой области памяти
HeapLimit     Word            размер наименьшего блока динамически распределяемой области памяти
HeapList      Word           список сегментов динамически распределяемой области памяти
HInstance     Word            описатель данного экземпляра
HPrevInst     Word            описатель предыдущего экземпляра
InOutRes      Integer         буфер результата операции ввода-вывода
Output        Text            стандартный файл вывода     
PrefixSeg Word префикс программного сегмен- та
RandSeed      Longint         случайное число (генериру- ется датчиком случайных чи сел)
SelectorInc   Word            шаг увеличения селектора    
StackLimit    Word            указатель на нижнюю границу стека
Test8086      Byte            результат проверки процессора 8086

 

HInstance содержит описатель экземпляра прикладной программы или библиотеки, как это предусматривается операционной средой Windows. В программе HPrevInst содержит предыдущий экземпляр прикладной программы, или 0, если предыдущего экземпляра нет. В библиотеке HPrevInst всегда равно 0.

В программе CmdLine содержит указатель на завершающуюся нулем строку, которая содержит аргументы командной строки, заданные при запуске прикладной программы. В библиотеке эта переменная не определена.

В программе CmdShow содержит значение параметра, передачу которого в ShowWindow ожидает Windows, когда прикладная программа создает основное окно. В библиотеке эта переменная всегда равна 0.

 

Подсистемой управления динамически распределяемой областью памяти для реализации программ динамического распределения памяти Borland Pascal используются переменные HeapList, HeapLimit, HeapBlock и HeapError.

 

Для реализации процедур выхода используются переменные ExitProc, ErrorCode и ErrorAdr.

 

Переменная PrefixSeg представляет собой переменную длиной в слово, содержащую адрес префикса программного сегмента (PSP), создаваемого при выполнении программы операционной системой DOS. Полное описание PSP приведено в руководстве по операционной системе DOS.

 

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

 

Переменная FileMode позволяет изменять режим доступа к открытым типизованным и нетипизированным файлам.

 

Глава 14. Ввод и вывод

 

В данной Главе кратко описываются стандартные (или встроенные) функции и процедуры ввода-вывода Borland Pascal. Эти процедуры и функции можно найти в модуле System.

 

 

Файловый ввод-вывод

 

Файловая переменная в Паскале - это любая переменная файлового типа. В Паскале имеются три класса файлов: типизированный файл, текстовый файл и нетипизированный файл.

Перед использованием файловой переменной она должна быть связана с внешним файлом с помощью вызова процедуры Assign. Внешним файлом обычно является поименованный файл на диске, но он также может представлять собой устройство, например, клавиатуру или дисплей. Во внешних файлах сохраняется записанная в файл информация, или они служат источниками информации, которая считывается из файла.

 

Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть "открыта". Существующий файл можно открыть с помощью процедуры Reset, а новый файл можно создать и открыть с помощью процедуры Rewrite. Текстовые файлы, открытые с помощью процедуры Reset доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи. Типизированные и нетипизированные файлы всегда допускают как чтение, так и запись, независимо от того были они открыты с помощью процедуры Reset или с помощью процедуры Rewrite.

 

Любой файл, представляет собой линейную последовательность элементов, каждый из которых имеет тип элемента (или тип записи) файла. Каждый элемент файла имеет номер. Первый элемент файла считается нулевым элементом.

 

Обычно доступ к файлам организуется последовательно, то есть, когда элемент считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующему по порядку элементу файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Sееk, которая перемещает текущую позицию файла к заданному элементу. Для определения текущей позиции в файле и текущего размера файла можно использовать стандартные функции FilePоs и Filesize.

 

Когда программа завершает обработку файла, он должен закрываться с помощью стандартной процедуры Close. После полного закрытия файла связанный с ним внешний файл обновляется. Затем файловая переменная может быть связана с другим внешним файлом.

 

По умолчанию при всех обращениях к стандартным функциям и процедурам ввода-вывода автоматически производится проверка на наличие ошибок. При обнаружении ошибки программа прекращает работу и выводит на экран сообщение об ошибке. С помощью директив компилятора {$I+} и {$I-} эту автоматическую проверку можно включить или выключить. Когда автоматическая проверка отключена, то есть когда процедура или функция была скомпилирована с директивой {$I-}, ошибки ввода-вывода, возникающие при работе программы, не приводят к ее останову. При этом, чтобы проверить результат выполнения операции ввода-вывода, нужно использовать стандартную функцию IОResult.

 

Для очистки ошибки, которая может произойти, вы можете вызвать функцию IOResult. Если вы этого не сделаете, и текущим состоянием является {$I+}, то из-за оставшейся ошибки IOResult следующая операция ввода-вывода завершится с ошибкой.

 

Примечание: Если вы пишете программу дл Windows и не хотите, чтобы Windows обрабатывала за вас ошибки ввода-вывода на диск или другие ошибки ввода-вывода, вызовите SetErrorMode(1).

 

 

Текстовые файлы

 

В данном разделе описываются операции ввода и вывода, использующие файловую переменную стандартного текстового типа. Заметим, что в Borland Pascal текстовый тип (тип Text) отличается от символьного типа Char.

При открытии текстового файла внешний файл интерпретируется особым образом: считается, что он представляет собой последовательность символов, сгруппированных в строки, где каждая строка заканчивается символом конца строки (end-of-line), который представляет собой символ перевода каретки, за которым возможно следует символ перевода строки.

Для текстовых файлов существует специальный вид операций Char. Такие значения автоматически переводятся в символьное представление и обратно. Например, Read(f,i), где i - переменная целого типа, приведет к считыванию последовательности цифр, интерпретации этой последовательности, как десятичного числа, и сохранению его в i.

Как было отмечено ранее, имеются две стандартных переменных текстового типа - это Input и Оutput. Стандартная файловая переменная Input - это доступный только по чтению файл, связанный со стандартным файлом ввода операционной системы (обычно это клавиатура), а стандартная файловая переменная Оutput - это доступный только по записи файл, связанный со стандартным файлом вывода операционной системы (обычно это дисплей). Перед началом выполнения программы DOS файлы Input и Оutput автоматически открываются, как если бы были выполнены следующие операторы:

 

                Assign(Input,'');

                Reset(Input);

                Assign(Output,'');

                Rewrite(Output);

 

Так как Windows не поддерживает непосредственно ориентированный на текст ввод и вывод, файлы Input и Output по умолчанию в прикладной программе Windows не присваиваются, и любая попытка чтения из этих файлов или записи в них приведет к ошибке ввода-вывода. Однако, если прикладная программа использует модуль WinCrt, то Input и Output будут ссылаться на текущее текстовое окно. Модуль WinCrt содержит всю логику управления, необходимую для эмуляции текстового экрана в операционной среде Windows, поэтому в прикладной программе, использующей модуль WinCrt, не требуется никаких приемов программирования, специфических для Windows.

Для некоторых из стандартных процедур и функций, список которых приведен в данном разделе, не требуется явно указывать в качестве параметра файловую переменную. Если этот параметр опущен, то по умолчанию будут рассматриваться переменные Input или Output, в зависимости от того, будет ли процедура или функция ориентирована на ввод или на вывод. Например, Read(х) соответствует Read(Input,х) и Write(х) соответствует Write(Output,х).

 

Если при вызове одной из процедур или функций из этого раздела вы задаете файл, этот файл должен быть связан с внешним файлов с помощью процедуры Assign и открыт с помощью процедуры Reset, Rewritе или Append. Если для ориентированной на вывод про цедуры или функции вы указываете файл, который был открыт с по мощью процедуры Reset, то выведется сообщение об ошибке. Аналогично, будет ошибкой задавать для ориентированной на ввод процедуры или функции файл, открытый с помощью процедур Rewrite или Append.

 

Нетипизированные файлы

 

Нетипизированные файлы представляют собой каналы ввода-вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры. Любой нетипизированный файл описывается словом file без атрибутов. Например:

 

var

DataFile: file;

 

Для нетипизированных файлов в процедурах Reset и Rewrite допускается указывать дополнительный параметр, чтобы задать размер записи, использующийся при передаче файла.

 

По историческим причинам принимаемая по умолчанию длина записи равна 128 байтам. Предпочтительной длиной записи является длина записи, равная 1, поскольку это единственное значение, которое позволяет точно отразить размер любого файла (когда длина записи равна 1, то в файле не могут присутствовать неполные записи, то есть записи с меньшей длиной).

 

За исключением процедур Read и Write для всех нетипизированных файлов допускается использование любой стандартной процедуры, которые допускается использовать с типизированными файлами. Вместо процедур Read и Write здесь используются соответственно процедуры Blockrеаd и BlockWrite позволяющие пересылать данные с высокой скоростью.

 

Переменная FileMode

 

Переменная FileMode, определенная в модуле System, задает код доступа, передаваемый в DOS для типизированных и нетипизированных файлов (не для текстовых файлов), когда они открываются с помощью процедуры Reset.

 

По умолчанию значение FileMode = 2. При этом допускается чтение и запись файла. Присваивание FileMode другого значения приводит к использованию этого режима при всех последующих вызовах Reset.

 

Примечание: Новые файлы, открываемые с помощью Rewrite, всегда открываются в режиме чтения/записи, что соответствует Filemode = 2.

Диапазон допустимых значений FileMode зависит от используемой версии DOS. Однако во всех версиях определены следующие режимы:

0: доступ только по чтению

1: Только запись

 

Чтение/запись

В DOS версии 3.х определены дополнительные режимы, которые касаются в основном совместного использования файлов при работе в сети (более подробно это описывается в "Руководстве программиста по DOS").

 

Уройства в Borland Pascal

 

В Borland Pascal и в операционной системе DOS внешняя аппаратура, как, например, клавиатура, устройство печати, дисплей, рассматривается, как устройства. С точки зрения программиста устройство можно рассматривать, как файл, и с ним можно работать с помощью того же набора стандартных процедур и функций, что и с файлом. В Турбо Паскале поддерживается два типа устройств - устройства DOS и устройства для текстовых файлов.

 

 

Устройства DOS

 

Устройства DOS реализованы с помощью зарезервированных имен устройств, которые имеют специальный смысл. Устройства DOS полностью "прозрачны": в Турбо Паскале неизвестно даже, когда файловая переменная связана с устройством, а когда с файлом на диске.

Например, программа:

 

var

Lst: Text;

begin

Assign(Lst,'LPT1');

Rewrite(Lst);

Writeln(Lst,'Привет...');

Close(Lst);

end;

 

выведет строку "Привет..." на устройство печати, хотя синтаксис точно такой же, как если бы она выводилась в файл.

 

Устройства, реализованные в операционной системе DOS, используются для однозначного ввода или вывода. Таким образом, устройства в DOS используются обычно для текстовых файлов. В редких случаях для работы с устройствами DOS может оказаться полезным использование также нетипизированного файла.

 

 

Устройство CОN

 

Устройство CОN означает консоль, посредством которой выводимая информация пересылается на экран дисплея, а вводимая информация воспринимается с клавиатуры. Если не было изменено направление ввода или вывода, стандартные файлы Input и Оutput и все файлы, которым присвоено пустое имя, ссылаются на устройство CОN.

Вводимая с устройства CОN информация является строчно-ориентированной и используется средствами редактирования строки, котоые описаны в руководстве по DOS. Символы считываются из буфера строки, а когда буфер становится пустым, вводится новая строка.

При нажатии клавиш Ctrl+Z генерируется символ конца файла (end-of-file), после которого функция Eоf возвращает значение Truе.


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.041 с.