ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 13 ГЛАВА 11. МОДУЛЬ DOS. Модуль Dos реализует ряд очень полезных программ операционной системы и обработки файлов. Ни одна из программ модуля Dos не определена стандартом Паскаля и поэтому они размещены в собственном модуле. Для полного описания операций DOS обращайтесь к техническому руководству по IBM DOS. Константы, типы и переменные. Каждая из констант, типов и переменных, определяемых модулем Dos коротко обсуждены в этом разделе. Для более детальной информации смотри описание процедур и функций в Справочной руководстве по библиотеке. Константы. Константы флагов. Следующие константы используются для проверки отдельных битов флага в регистре Flags после вызова Intr или MSDOS: ДДДДДДДДДДДДДДДДДДДДДДДД константа значение ДДДДДДДДДДДДДДДДДДДДДДДД FCarry $0001 FParity $0004 FAuxiliary $0010 FZero $0040 FSign $0080 FOverFlow $0800 ДДДДДДДДДДДДДДДДДДДДДДДД Например, если R - запись типа регистр, то тест R.Flags and FCarry <> 0 R.Flags and FZero = 0 равен true соответственно, если Carry флаг установлен и если Zero флаг сброшен. Константы режима файла. Эти константы используются процедурами обработки файлов, при открытии и закрытии дисковых файлов. Поля режимов файловых переменных Turbo Pascal будут содержать одно из значений, указанных ниже: ДДДДДДДДДДДДДДДДДДДДДДДД константа значение ДДДДДДДДДДДДДДДДДДДДДДДД fmClosed $D7B0 fmInput $D7B1 fmOutput $D7B2 fmInOut $D7B3 ДДДДДДДДДДДДДДДДДДДДДДДД Константы атрибутов файла. Эти константы используются для проверки, установки и очистки битов файловых атрибутов в процедурах GetFAttr, SetFAttr, FindFirst, FindNext: ДДДДДДДДДДДДДДДДДДДДДДДД константа значение ДДДДДДДДДДДДДДДДДДДДДДДД ReadOnly $01 Hidden $02 SysFile $04 VolumeID $08 Directory $10 Archive $20 AnyFile $3F ДДДДДДДДДДДДДДДДДДДДДДДД Эти константы можно суммировать, так, например, оператор FindFirst ('*.*', ReadOnly+Directory,S); будет искать файлы "только для чтения" и подсправочники в текущем справочнике. Константа AnyFile - это просто сумма всех атрибутов. Типы. Типы файловых записей. Определения записей, используемых внутренне Turbo Pascal, также определены в модуле Dos. FileRec используется для типированных и нетипированных файлов, а TextRec - внутренний формат файловой переменной типа Тext. type {типированные и нетипированные файлы} FileRec = record Handle : Word; Mode : Word; RecSize : Word; Private : array [1..6] of Byte; UserData : array [1..16] of Byte; Name : array [0..79] of Char; end; {запись для текстовых файлов} TextBuf = array [0..127] of Char; TextRec = record Handle : Word; Mode : Word; BufSize : Word; Private : Word; BufPos : Word; BufEnd : Word; BufPtr : ^TextBuf; OpenFunc : Pointer; InOutFunc : Pointer; FlushFunc : Pointer; CloseFunc : Pointer; UserData : array [1..16] of Byte; Name : array [0..79] of Char; Buffer : TextBuf; end; Тип Registers. Переменные типа Registers используются процедурами Intr и MSDos для указания содержимого входного значения регистров и проверки выходного содержимого регистров для программного прерывания. type Registers = record case Integer of 0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word); 1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte); end; Заметим, что можно пользоваться одновременно и 8-ми и 16-ти битовыми регистрами. Тип DataTime. Переменные типа DataTime используются в сочетании с процедурами UnpacTime и PackTime для проверки и создания 4-байтовых упакованных значений даты и времени в процедурах GetFTime, SetFTime, FindFirst и FindNext. type DataTime = record Year, Month, Day, Hour, Min, Sec: Integer; end; Дипазон допустимых значений:Year 1980..2099, Month 1..12, Day 1..31, Hour 0..23, Min 0..59, Sec 0..59. Тип SearchRec. Переменная типа SearchRec используется процедурами FindFirst и FindNext для просмотра справочников. type SearchReс = record File: array[1..21] of Byte; Attr: Byte; Time: Longint; Size: Longint; Name: String[12]; end; Информация, найденная для каждого файла одной из этих процедур, возвращается в SearchRec. Поле Attr содержит атрибуты файла (сформировано из констант атрибутов ), Time содержит упакованные время и дату (используйте UnpackTime для распаковки), Size содержит размер файла в байтах и Name содержит имя файла. Поле Fill резервируется операционной системой и никогда не должно модифицироваться. Строковые типы обработки файлов. Эти строковые типы используются в процедуре FSplit: DirStr = String[67]; {строка устройства и справочника} NameStr = String[8]; {строка имени файла} ExtStr = String[4]; {строка расширения файла} ComStr = String[127]; {командная строка} PathStr = String[79]; {полная строка пути файла} Переменные. Переменная DosError. Переменная DosError используется многими программами в модуле Dos для указания ошибок. var DosError : Integer; Значение, запомненое в DosError, представляет собой код ошибки операционной системы. Значение 0 означает "нет ошибки", другие коды означают: ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД код ошибки DOS значение ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД 2 файл не найден 3 путь не найден 5 доступ запрещен 6 неверный обработчик 8 нет памяти 10 неправильная среда 11 неправильный формат 18 больше нет файлов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры и функции. Процедуры даты и времени ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД процедура описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД GetDate Возвращает текущую дату, установленную в DOS GetFTime Возвращает дату и время последней записи в файл GetTime Возвращает текущее время, установленное в DOS PackTime Преобразует запись в 4 байтовое упакованное значение даты и времени типа longint, используемое процедурой SetFTime. Поля записи DateTime не проверяются на диапазон. SetData Устанавливает текущую дату в DOS SetFTime Устанавливает время и дату последней записи в файл SetTime Устанавливает текущее время в DOS UnpackTime Преобразует 4-х байтовое упакованное значение даты и времени, возвращаемое GetFTime, FindFirst или FindNext в распакованную запись типа DateTime. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры обслуживания прерываний. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД процедура описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД GetIntVeс Возвращает адрес, хранящийся в указанном векторе прерывания Intr Выполняет указанное программное прерывание MSDos Выполняет функцию операционной системы SetIntVec Устанавливает адрес для указанного вектора прерывания. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функция статуса диска. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД функция описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД DiskFree Возвращает число свободных байт на указанном диске DiskSize Возвращает полный объем указанного диска в байтах ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры обработки файлов. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД процедура описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД FindFirst Ищет в указанном или текущем справочнике первый файл, соответствующий заданному имени файла и набору атрибутов. FindNext Возвращает следующий файл,соответствующий имени и атрибутам, указанным в предыдущем вызове FindFrst. GetFAttr Возвращает атрибуты файла. SetFAttr Устанавливает атрибуты файла. FSplit Разбивает имя файла на 3 составные части (справочник, имя файла, расширение). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции обработки файла. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД функция описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД FExpand Берет имя файла и возвращает полное имя файла (устройство, справочник, имя и расширение). FSearch Ищет файл в списке справочников. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Процедуры обработки процессов. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД процедура описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Exec Выполняет заданную программу с указанной командной строкой. Keep Завершает программу и оставляет ее в памяти (реализует прерывание "завершить и оставить резидентным"- TSR). SwapVectors Меняет сохраненные вектора прерываний с текущими векторами ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции обработки процессов. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД функция описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД DosExitCode Возвращает код завершения подпроцесса. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Функции управления средой. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД функция описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД EnvCount Возвращает число строк, содержащихся в среде DOS EnvStr Возвращает указанную строку среды. GetEnv Возвращает значение указанной переменной среды. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Дополнительные процедуры. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД процедура описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД GetCBreak Возвращает состояние проверки Ctrl-Break в DOS SetCBreak Устанавливает состояние проверки Ctrl-Break в DOS GetVerify Возвращает состояние флага верификации в DOS SetVerify Устанавливает состояние флага верификации в DOS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Дополнительные функции. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД функция описание ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД DosVersion Возвращает номер версии DOS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД |