Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

ГЛАВА 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

───────────────────────────────────────────────────────────────────

[начало] [оглавление]


Предыдущая страница     |     Следующая страница


Добавить в избанное Обсудить в форуме Написать автору сайта Версия для печати

 

Опрос

Конкурсы
Реклама

 

Web дизайн: Бурлаков Михаил    

Web программирование: Бурлаков Михаил

Используются технологии uCoz