Функции и процедуры модуля DOS Процедура

advertisement
Функции и процедуры модуля DOS
Процедуры для работы с датой и временем:
Процедура
GetDate
Описание
Возвращает текущую дату, установленную в операционной
системе.
GetFTime
GetTiме
Возвращает дату и время последней записи файла.
Возвращает текущее время, установленное в операционной
системе.
РackTiме
Преобразует запись DateTiме в четырехбайтоое упакованное
символьное представление даты и времени длинного целого
типа, которое используется в процедуре SetTiме. Поля записи
DateTiме не проверяются на допустимость границ.
SetDate
Устанавливает для операционной системы текущую дату.
SetFTiме
Устанавливает время и дату последней записи файла.
SetTiме
UnpackTiме
Устанавливает в операционной системе текущее время.
Преобразует четырехбайтовое упакованной символьное
представление даты и времени длинного целого типа,
возвращаемого процеурами GetFTiме, FindFirst, FindNext в
распакованную запись DateTiме.
Процедуры и функции обслуживания прерываний:
Процедура
GetIntVес
Intr
МsDos
SetIntVес
Описание
Возвращает адрес, сохраненный в заданном векторе
прерываний.
Выполняет заданное программное прерывание.
Выполняет вызов функции DOS.
Устанавливает по заданному адресу заданный вектор
прерывания.
Функции, проверяющие состояние диска:
Процедура
DiskFrее
DiskSize
Описание
Возвращает число свободных байт на диске в заданном
дисководе.
Возвращает полный объем в байтах заданного диска.
Процедуры обработки файлов:
Процедура
FExpand
FSearch
Описание
Воспринимает имя файла и возвращает полное уточненное
имя (диск, каталог, расширение).
Ищет файл в списке каталогов.
GetFAttr
Производит поиск в заданном (или текущем) каталоге записи,
содержимое которой совпадает с заданным именем файла и
атрибутами.
Возвращает следующую запись, имя файла и атрибуты в
которой совпадают с теми, которые были заданы при
предыдущем обращении к процедуре FindFirst.
Возвращает атрибуты файла.
SetFAttr
Устанавливает атрибуты файла.
FindFirst
FindNext
Функции управления операционной средой:
Функция
EnvCount
EnvStr
GetEnv
Описание
Возвращает число строк, содержащихся в операционной
среде DOS.
Возвращает заданную строку операционной среды.
Возвращает значение заданной переменной операционной
среды.
Процедуры управления процессами:
Процедура
Eхесutе
Keep
SwapVectors
Описание
Выполняет заданную программу с указанной командной
строкой.
Сохраняет (прекращает выполнение и сохраняет в памяти)
прекратившую работу программу, оставляя ее резидентной в
памяти.
Меняет местами содержимое сохраненных векторов
прерываний и текущих векторов.
Прочие процедуры и функции:
Процедура/функция
DosVersion
GetCBreak
SetCBreak
GetVerify
Описание
Возвращает номер версии операционной системы DOS.
Возвращает проверяемое DOS состояние Ctrl+Break.
Устанавливает проверяемое DOS состояние Ctrl+Break.
Возвращает состояние флага проверки в DOS.
SetVerify
Устанавливает состояние флага проверки в DOS.
Процедура
Procedure GetDate(Var Year,
Month, Day, DayOfWeek : Word);
Procedure GetFTime(Var F; Var
Time : Longint);
Procedure GetTime(Var Hour,
Minute, Second, Sec100 : Word);
Procedure PackTime(Var T :
DateTime; Var Time : Longint);
Procedure SetDate(Year, Month,
Day : Word);
Procedure SetFTime(Var F; Time :
Longint);
Procedure SetTime(Hour, Minute,
Second, Sec100 : Word);
Описание
Возвращает текущую дату, установленную в операционной
системе.
Замечания:
Диапазоны возвращаемых значений:
Year 1980..2099
Month 1..12
Day 1..31
DayOfWeek 0..6 (0 - воскресенье, 1 - понедельник...)
Возвращает дату и время последней записи файла.
Замечания:
Файловой переменной F должен быть назначен
типизированный, нетипизированный или текстовый файл,
который должен быть открыт. Время, полученной в
переменной Time может быть распаковано с помощью
процедуры UnpackTime.
Возвращает текущее время, установленное в операционной
системе.
Замечания:
Диапазоны возвращаемых значений:
Hour 0 .. 23 (часы)
Minute 0 .. 59 (минуты)
Second 0 .. 59 (секунды)
Sec100 0 .. 99 (сотые доли секунды)
Преобразует запись DateTiме в четырехбайтовое упакованное
символьное представление даты и времени длинного целого
типа, которое используется в процедуре SetTiме.
Замечания:
Преобразовывает запись типа DateTime в 4-байтовое число
типа LongInt, в котором хранятся дата и время. Это число
используется процедурами SetFTime и GetFTime. Поля в
записи DateTime не проверяются на принадлежность
допустимому диапазону значений.
Устанавливает для операционной системы текущую дату.
Замечания:
Допустимые диапазоны параметров:
Year = 1980 .. 2099
Month = 1 .. 12
Day = 1 .. 31
Если дата недопустима, запрос игнорируется.
Устанавливает время и дату последней записи файла.
Замечания:
Коды ошибок передаются в переменную DosError.
Единственный возможный код ошибки - 6 (Недопустимый
дескриптор файла).
Ограничения:
Переменной F должно быть назначено имя и файл должен
быть открыт.
Устанавливает в операционной системе текущее время.
Замечания:
Допустимые диапазоны параметров:
Hour 0 .. 23, (Часы)
Minute 0 .. 59, (Минуты)
Procedure UnpackTime(Time :
Longint; Var DT : TDateTime);
Second 0 .. 59, (Секунды)
Sec100 0 .. 99. (Сотые доли секунды)
Если время не допустимо, запрос игнорируется.
Преобразует четырехбайтовое упакованной символьное
представление даты и времени длинного целого типа,
возвращаемого процедурами GetFTiме, FindFirst, FindNext в
распакованную запись DateTiме.
Замечания:
Преобразовывает упакованное значение LongInt,
содержащее дату и время, возвращенное процедурами
GetFTime, FindFirst или FindNext в неупакованную запись
типа DateTime.
Процедуры обслуживания прерываний модуля WinDos
Процедура
Procedure GetIntVec(IntNo : Byte;
Var Vector : Pointer);
Procedure Intr(IntNo : Byte; Var
Regs : TRegisters);
Описание
Возвращает адрес, сохраненный в заданном векторе
прерываний
Замечания:
Параметр IntNo определяет номер вектора прерывания
(0..255), А его адрес возвращается в переменной Vector.
Выполняет заданное программное прерывание
Замечания:
IntNo - номер программного прерывания (0 .. 255). Registers
- запись, определенная в модуле DOS; TRegisters - запись,
определенная в модуле WinDos. Смотри описание типа
Registers и описание типа TRegisters. Перед выполнением
заданного программного прерывания, Intr загружает
регистры ЦП 8086 : AX, BX, CX, DX, BP, SI, DI, DS и ES из
записи Regs. После завершения прерывания, содержание
регистров AX, BX, CX, DX, BP, SI, DI, DS, ES и Flags
сохраняется обратно в запись Regs. Чтобы избежать
появления ошибки защиты при выполнении программ в
стандартном режиме Windows или расширенном режиме
Windows 386, всегда инициализируйте регистры DS и ES в
записи TRegisters с допустимыми селекторными
значениями или просто обнулите данные поля записи.
Procedure MsDos(Var Regs :
TRegisters);
Ограничения:
Не используйте программные прерывания, которые:
- Зависят от значений регитров SP или SS при входе.
- Изменяют значения регистров SP или SS при выходе.
В Turbo Pascal версии 3.0, тип переменной Regs был
определяемым пользователем. В версиях 5.0 и старше,
переменная Regs должна иметь тип Registers,
определенный в модуле Dos.
Выполняет вызов функции DOS.
Замечания:
Обращение к MsDos - то же самое, что и обращение к
процедуре Intr с параметром IntNo равным $21. Тип
параметра Regs - это запись, определенная в модуле DOS.
Используйте TRegisters, если вы пишете программу для
среды Windows.
Ограничения:
Не используйте программные прерывания, которые:
- Зависят от значений регистров SP или SS при входе.
- Изменяют регистры SP или SS при выходе.
Procedure SetIntVec(IntNo : Byte;
Vector : Pointer);
Устанавливает по заданному адресу заданный вектор
прерывания.
Замечания:
IntNo определяет номер вектора прерываний (0 .. 255) и
Vector определяет адрес. Vector обычно создается с
помощью оператора @ для указания адреса процедуры
обработки прерывания. Пусть Int1BSave - переменная
указательного типа и Int1BHandler - идентификатор
процедуры обработки прерывания, тогда первая
последовательность операторов устанавливает новый
обработчик прерывания, а вторая восстанавливает
первоначальный обработчик:
GetIntVec ($1B, Int1BSave);
SetIntVec ($1B, @Int1BHandler);.
SetIntVec ($1B, Int1BSave);
Ограничения:
В защищенном режиме DOS, в стандартном или
расширенном режимах Windows, SetIntVec устанавливает
вектор прерывания защищенного режима с заданным
номером вектора прерываний. SetIntVec не может
использоваться для изменения векторов прерываний
реального режима или векторов исключений в
защищенном режиме.
Функции модуля WinDos, проверяющие состояние диска
Фуннкция
Function DiskFree(Drive : Byte) :
Longint;
Описание
Возвращает число свободных байт на диске в заданном
дисководе.
Замечания:
Параметр Drive:
0 - Текущий диск
1 - Диск A
2 - Диск B
3 - Диск C
И так далее...
Function DiskSize(Drive: Byte):
Longint;
Если номер дисковода недопустим, то возвращается
значение равное -1.
Возвращает полный объем в байтах заданного диска.
Замечания:
Параметр Drive:
0 - Текущий диск
1 - Диск A
2 - Диск B
3 - Диск C
И так далее...
Если номер дисковода недопустим, то возвращается
значение равное -1.
Процедуры работы с файлами модуля WinDos
Процедура
Описание
Function FExpand (Path : PathStr) : Воспринимает имя файла и возвращает полное уточненное
PathStr;
Function FileSearch(Dest, Name,
DirList : PChar) : PChar;
Function FileSplit(Path, Dir, Name,
Ext : PChar) : Word
Procedure FindFirst(Path : PChar;
Attr : Word; Var F : TSearchRec);
Procedure FindNext(Var F :
TSearchRec);
Procedure GetFAttr(Var F; Var
Attr : Word);
Procedure SetFAttr(Var F; Attr :
Word);
имя (диск, каталог, расширение).
Замечания:
Тип PathStr определен в модуле Dos.
Ищет файл в списке каталогов.
Замечания:
Ищет файл в списке каталогов DirList. Каталоги в DirList
должны быть разделены точками с запятой.
Разбивает полное имя файла на три компонента (диск, каталог,
имя и расширение.
Замечания:
Разбивает имя файла, определенное в переменной Path на
три компонента:
- Параметр Dir равняется пути к файлу, включая диск и
каталоги с
любыми начальными и конечными левыми наклонными
чертами
- Параметр Name равняется имени файла
- Параметр Ext раняется расширению файла с
предшествующей точкой
Если строковый параметр компонента равен NIL, то
соответствующая часть пути не сохраняется. Если путь не
содержит данный компонент, то полученная строка
компонента будет пустой. Максимальные длины строк,
возвращенных в параметрах Dir, Name и Ext определяются
константами fsDirectory, fsFileName и fsExtension.
Возвращаемое значение - комбинация констант fcDirectory,
fcFileName и fcExtension, указывающая на то, какие
компоненты были представлены в пути. Если имя или
расширение содержит любые символы масок (* или ?), то в
возвращаемом значении устанавливается флаг
fcWildcards.
Производит поиск в заданном (или текущем) каталоге
записи, содержимое которой совпадает с заданным именем
файла и атрибутами
Замечания:
Ищет в определенном (или текущем) каталоге первое
вхождение файла, соответствующего заданному имени и
набору атрибутов.
Возвращает следующую запись, имя файла и¦атрибуты в
которой совпадают с теми, которые были заданы при
предыдущем обращении к процедуре FindFirst.
Замечания:
Ошибки сообщаются в переменной DosError.
Единственная возможная ошибка - 18 (нет больше
файлов).
Возвращает атрибуты файла.
Замечания:
Файловой переменной F должен быть назначен
типизированный, нетипизированный или текстовый файл,
который не должен быть открыт.
Устанавливает атрибуты файла.
Замечания:
Коды ошибок помещаются в переменную DosError.
Возможные коды ошибок:
- 3 (Недопустимый путь)
- 5 (Доступ к файлу закрыт)
Ограничения:
Файл не может быть открыт.
Процедуры и функции для работы с каталогами
Процедура/функция
Procedure CreateDir(Dir : PChar)
Function GetCurDir(Dir : PChar;
Drive : Byte) : PChar;
Описание
Создает новый подкаталог.
Замечания:
Выполняет те же функции, что и MkDir, но использует
строку стиля Pascal, а не строку с завершающим нулем.
Возвращает текущий каталог на заданном диске.
Procedure Remove(Dir : PChar);
Замечания:
Параметр Drive:
0 - Текущий диск
1 - Диск A
2 - Диск B
3 - Диск C
И так далее...
Удаляет подкаталог.
Procedure SetCurDir(Dir : PChar)
Замечания:
Удаляет каталог с путем, указанным в Dir. Ошибки типа
несуществующего или непустого подкаталога,
сохраняются в переменной DosError.
Изменяет текущий каталог.
Замечания:
Если в Dir содержится и буква дисковода, то текущий
дисковод тоже будет изменен.
Процедуры и функции обслуживания прерываний модуля WinDos
Процедура
Function GetArgCount : Integer
Function GetArgStr(Dest : PChar;
Index : Integer; MaxLen : Word) :
PChar;
Function GetEnvVar(VarName :
PChar) : PChar;
Описание
Возвращает число параметров, переданных программе в
командной строке
Возвращает заданный аргумент командной строки.
Замечания:
Параметр: Возвращаемое значение:
Index < 0 или > GetArgCount Пустая строка
Index = 0 Имя файла текущего модуля,
Значение параметра возвращается в Dest
Возвращает указатель на значение заданной переменной
операционной среды.
Возвращаемое значение:
NIL, если заданная переменная среды не существует.
Прочие процедуры и функции модуля WinDos
Процедура/функция
Function DosVersion : Word;
Описание
Возвращает номер версии операционной системы DOS.
Замечания:
Procedure GetCBreak(Var Break :
Boolean);
Procedure SetCBreak(Break :
Boolean);
Procedure SetVerify(Verify :
Boolean);
Младший байт результата - номер версии, а старший байт номер подверсии.
Возвращает проверяемое DOS состояние Ctrl+Break.
Замечания:
Если Break = False, то DOS проверяет Ctrl+Break только в
течение операций ввода/вывода на консоль, принтер или
устройства связи. А если Break = True, то проверка
осуществляется при каждом системном
вызове.
Устанавливает проверяемое DOS состояние Ctrl+Break.
Замечания:
SetCBreak устанавливает состояние проверки на
Ctrl+Break в DOS. Когда SetCBreak = False, DOS проверяет
Ctrl+Break только в течение операций ввода/вывода на
консоль, принтер или устройства связи. Когда SetCBreak =
True, проверка осуществляется при каждом системном
вызове.
Устанавливает состояние флага проверки в DOS.
Замечания:
Procedure SetVerify устанавливает состояние флага
проверки в DOS. Если Verify = False, то запись на диск не
проверяется. Если же Verify = True, то DOS проверяет все
операции записи на диск, чтобы гарантировать
правильность записи, что замедляет работу с диском.
Download