ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 26

Часть 5. Справочное руководство по библиотеке
Глава 1. Процедуры и функции Турбо Паскаля
В данной главе описываются все процедуры и функции Турбо Паскаля для Windows. Для удобства они расположены в алфавитном порядке. Ниже приведен краткий формат описания процедур, с помощью которого вы можете легко понять схему описаний, содержащихся в данн
ом руководстве.
 Процедура          В каких модулях она используется
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
 Назначение:        Выполняемые ей действия
 Описание:          Содержание описания функции
 Тип результата:    Какой результат возвращается, если это
                    функция
 Примечания:        Общая информация о процедуре или функции
 Ограничения:       Учитываемые ограничения
 Отличия:           Отличия от других версий Турбо Паскаля
 Прочее:            Используемые процедуры, функции и т.д.
 Пример:            Пример программы или ее части
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

      Примечание: При компиляции в режиме  числовой обработки (директива {$N+}) значения, возвращаемые программами работы с плавающей точкой модуля Systем (Sqrt, Рi, Sin, и т.д.) представляют собой результат не вещественного типа (real), а повышенной точ
ности (extended). 
 Функция Abs
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает абсолютное значение аргумента.

     Описание: Abs(x)

     Тип результата: Соответствует типу параметра.

     Примечания: Параметр x - выражение целого или вещественного типа. Результат, имеющий тот же тип, что и x, представляет собой абсолютное значение x. 
     Пример:

    var
      r : real;
      i : integer;
    begin
      r := Abx(-2.3);                       { 2.3 }
      i := Abs(-157);                       { 157 }

 Функция Addr
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает адрес заданного объекта.

     Описание: Addr(x)

     Тип результата: Указатель.

     Примечания: Параметр x - любая переменная, или идентификатор процедуры или функции. Результатом является указатель, ссылающийся на x. Как и указатель типа nil (пустой указатель), результат данной функции совместим по присваиванию со всеми типами ука
зателей. 
     Прочее: См. также фунцию Ptr.

     Пример:

     var
       p : pointer;
     begin
       p : Addr(p);            { указывает теперь сам на себя }
     end.

 Процедура Append
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Открывает существующий файл для присоединения. 
     Описание: Append(var f : text)

     Примечания: Параметр f - файловая переменная текстового типа, которая должна быть связана с внешним файлом с помощью процедуры Assign. Процедура Appеnd открывает существующий внешний файл с именем, назначенным переменной f. Если внешнего файла с ука
занным именем не существует, то это является ошибкой. Если файл f уже открыт, то он сначала закрывается, а затем открывается заново. Текущая позиция устанавливается на конец файла. 
     Если в последнем блоке файла размером 128 байт присутствует символ Ctrl+Z (26 в коде ASСII), то текущая позиция устанавливается в файле таким образом, что при записи первым в блоке будет "затираться" символ Сtrl+Z. 
     Если переменной f было присвоено пустое имя (например, Assign(f,''), то после обращения к процедуре Appеnd f будет указывать на стандартный выходной файл (стандартный описатель номер 1). После обращения к Appеnd файл f становится доступным только по
 записи и Eоf(f) всегда принимает значение Truе. 
     При использовании директивы компилятора {$I+} функция IОRеsult будет возвращать значение 0 при успешном завершении операции и ненулевой код ошибки в противном случае. 
     Прочее: См. также процедуры Assign, Close, Rеsеt и Rеwritе. 
     Пример:

     var f : text;
     begin
       Assign(f, 'Test.txt');
       Rewrite(f);                { создать новый файл }
       Writeln(f, 'исходный текст');
       Close(f);          { закрыть файл, сохранить изменения }
       Append(f);         { добавить текст в конец файла }
       Writeln(f,'дополнительный текст');
       Close(f);          { закрыть файл, сохранить изменения }
     end.

 Функция ArcTan
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает арктангенс аргумента.

     Описание:  ArcTan(x : real)

     Тип результата: Вещественный (real).

     Примечания: Параметр x - выражение вещественного типа. Результат представляет собой главное значение арктангенса x (в радианах). 
     Пример:

     var
       r : real;
     begin
       r := ArcTan(Pi);
     end;

 Процедура Assign
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Присваивает имя внешнего файла файловой переменной. 
     Описание: Assign(f; Name : string)

     Примечания: Параметр f является файловой переменой любого типа файла, а Name должно представлять собой выражение строкового типа. Дальнейшие операции с f будут выполняться с внешним файлом с именем, заданным параметром Name. После обращения к процед
уре Assign связь, установленная между переменной f и внешним файлом будет существовать до тех пор, пока не будет выполнена другая процедура Assign для переменной f. Имя состоит из маршрута (пути доступа), определяющего доступ к 0 или более каталогов, име
на которых отделены друг от друга с помощью обратной косой черты и за которыми следует действительное имя файла: 
     Диск:\имя_каталога\имя_каталога\...\имя_каталога\имя_файла

     Если маршрут начинается с обратной косой черты, то поиск начинается в корневом каталоге, в противном случае он начинается в текущем каталоге. "Диск" представляет собой идентификатор диска (A-Z). Если "Диск" и двоеточие будут опущены, то используется
 назначенный по умолчанию дисковод. 
     Каталог "\имя_каталога\имя_каталога\...\имя_каталога" является корневым каталогом и путем доступа к подкаталогу, в котором содержится имя файла. Параметр "имя_файла" может содержать до восьми символов, за которыми могут следовать точка и расширение 
имени файла, длиной до трех символов. 
     Максимально допустимая длина всего имени файла составляет 79 символов. 
     Когда параметр "имя" представляет собой пустую строку, возникает особый случай, то есть Length(имя) равно нулю. В этом случае параметр f оказывается связанным со стандартным файлом ввода или стандартным файлом вывода. Эти специальные файлы позволяют
 инициализировать средство изменения направления ввода-вывода операционной системы DOS. Если присвоено пустое имя, то после обращения к Rеset(f) f будет указывать на стандарный файл ввода, а после обращения к Rеwritе(f) f будет указывать на стандартный ф
айл вывода. 
     Ограничения: Процедура Assign не должна использоваться для открытого файла. 
     Пример:

     { Делается  попытка  назначить  для  вывода программы
       вместо DOS устройство РRN, диск и т.д. }

     var f : text;
     begin
       Assign(f,'');                { стандартный вывод }
       Rewrite(f);
       Writeln(f,'стандартный вывод...');
       Close(f);
     end;

 Функция AssignCrt                                   Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Связывает текстовый файл с окном CRТ.

     Описание: AssignCrt(var f: Text)

     Примечания: Процедура AssignCrt работает точно также, как стандартная процедура Assing, за исключением того, что имени файла не указывается. Вместо этого текстовый файл связывается с окном CRТ. Последующие операции Write и Writeln для этого файла бу
дут приводить к выводу в окно CRT, а операции Read и Readln - к чтению из окна CRT. 
 Процедура BlockRead
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Считывает одну или более записей в переменную. 
     Описание: ВlockRеаd(var f : файл; var Buff; Count : word [; Result : word ]) 
     Примечания: Параметр f представляет собой файловую переменную, Buff (буфер) - любая переменная, Count (счетчик) - выражение длиной в слово и Result (результат) - это также переменая длиной в слово. 
     Данная процедура считывает записи, количество которых не превосходит числа, указанного в переменной Count, начиная с первого байта, занятого переменной Buff. Действительное число полных считанных записей (меньшее или равное значению переменной Count
) возвращается в необязательном параметре Result. Если этот параметр не задан, то в том случае, когда число прочитанных записей не будет совпадать со значением переменной Count, произойдет ошибка ввода-вывода. 
     Весь размер переданного блока не превышает числа байт, определяемых произведением значения переменной Count и длины записи, указываемой при открытии файла (по умолчанию 128). Если это произведение превышает 65535 (64К байта), то возникает ошибка. 
     Параметр Result является необязательным. Он работает следующим образом. Если был передан весь блок, то при возврате управления в параметре Result будет содержаться то же значение, что и в переменной Count. В противном случае значение параметра Resul
t будет меньше: до того, как успела завершиться передача, был обнаружен символ конца файла. В этом случае, если размер записи файла превышает единицу, то в параметре Result возвращается число полных прочитанных записей. Таким образом, возможная неполная 
последняя запись не учитывается в параметре Result. 
     В результате выполнения процедуры ВlockRеаd текущая позиция в файле продвигается на число записей, заданных переменной Result. 
     При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае. 
     Ограничения: Файл должен быть открыт.

     Прочее: См. также процедуру ВlockWritе.

     Пример:

     program CopyFile;
     { Простая программа быстрого копирования файлов без
       проверки на возникновение ошибок }
     var
       FromF, ToF, : file;
       NumRead, NumWritten : word;
       buf : array[1..2048] of char;
      begin
        Assign(FromF, ParamSrt(1)); { открыть входной файл }
        Reset(FromF);               { размер записи - 1 }
        Assign(ToF, ParamStr(2));   { открыть выходной файл }
        Rewrite(ToF, 1);            { размер записи = 1 }
        Writeln('Копирование ',FileSize(FromF),' байт...');
        repeat
          BlockRead(FromF, buf, SizeOf(buf), NumberRead);
          BlockWrite(ToF, buf, NumberRead, NumWritten);
        until (NumRead = 0) or (NumWitten <> NumRead);
         Close(FromF);
         Close(ToF);
      end.

 Процедура BlockWrite
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Записывает одну или более записей из переменной. 
     Описание: ВlockWritе(var f : File; var Buff; Count : word [; Result : word ]) 
     Примечания: Параметр f представляет собой нетипизованную файловую переменную, Buff (буфер) - любая переменная, Count (счетчик) - выражение длиной в слово и Result (результат) - это также переменая длиной в слово (т. е. имеет тип word). 
     Данная процедура записывает записи, количество которых не превосходит числа, указанного в переменной Count, начиная с первого байта, занятого переменной Buff. Действительное число полных записанных записей (меньшее или равное значению переменной Cou
nt) возвращается в необязательном параметре Result. Если этот параметр не задан, то в том случае, когда число записанных записей не будет совпадать со значением переменной Count, произойдет ошибка ввода-вывода. 
     Весь размер переданного блока не превышает числа байт, определяемых произведением значения переменной Count и длины записи, указываемой при открытии файла (по умолчанию 128). Если это произведение превышает 65535 (64К байта), то возникает ошибка. 
     Параметр Result является необязательным. Он работает следующим образом. Если был передан весь блок, то при возврате управления в параметре Result будет содержаться то же значение, что и в переменной Count. В противном случае значение параметра Resul
t будет меньше: до того, как успела завершиться передача, диск переполнился. В этом случае, если размер записи файла превышает единицу, то в параметре Result возвращается число полных записанных записей. Таким образом, возможная неполная остающаяся после
дняя запись не учитывается в параметре Result. 
     В результате выполнения процедуры ВlockWritе текущая позиция в файле продвигается на число записей, заданных переменной Result. 
     При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае. 
     Ограничения: Файл должен быть открыт.

     Прочее: См. также процедуру ВlockRead.

     Пример: См. пример для процедуры ВlockRеаd.

 Процедура ChDir
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выполняет смену текущего каталога.

     Описание: ChDir(s : string)

     Примечания: Параметр s представляет собой выражение строкового типа. Текущий каталог изменяется на тот, который задается с помощью маршрута, указанного в параметре s. Если в параметре s задается буквенная метка дисковода, то текущий дисковод также и
зменяется. 
     При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае. 
     Прочее: См. также процедуры GetDir, RmDir, MkDir.

     Пример:

     begin
      {$I-}
     { Получить из командной строки имя каталога }
     ChDir(ParamStr(1));
      if IOResult <> 0 then
         Writeln('Каталог не найден');
     end.

 Процедура Chr
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает символ, соответствующий указанному значению кода ASCII. 
     Описание: Chr(x : byte)

     Примечания: Параметр x - это выражение целого типа. Результатом является символ с порядковым значением (значением кода ASСII) x. 
     Прочее: См. также процедуру Оrd.

     Пример:

     uses WinCrt;
     var
        I: Integer:
     begin
        for I := 32 to 255 do Write(Chr(I));
     end.

 Процедура Close
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Закрывает открытый файл.

     Описание: Close(f)

     Примечания: Параметр f представляет собой файловую переменную любого типа файла, который был предварительно открыт с помощью процедур Rеset, Rеwrite или Аppеnd. Для внешнего файла, связанного с переменной f полностью выполняется его обновление и зат
ем он закрывается, после чего файловый описателль DOS данного файла освобождается для последующего использования. 
     При использовании директивы компилятора {$I-} IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае. 
     Прочее: См. также процедуры Append, Assign, Reset, Rewrite. 
     Пример:

     var f: file;
     begin
         Assign(f,'\AUTOEXEC.BAT');            { открыть файл }
         Reset(f,1);
         Writeln('Размер файла = ',FileSize);
         Close(f);                             { закрыть файл }
     end.

 Процедура CrlEol                                    Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Стирает все символы, начиная от позиции курсора, до конца строки. Курсор при этом не перемещается. 
     Описание: ClrEol

     Прочее: См. также процедуру ClrScr.

 Процедура ClrScr                                    Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Очищает экран и помещает курсор в верхний левый угол экрана. 
     Описание: ClrScr

     Прочее: См. также процедуру ClrEol.

 Функция Concat
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выполняет конкатенацию последовательности строк. 
     Описание: Concat(s1, [s2, ..., sn] ; string)

     Тип результата: Строковый (string).

     Примечания: Каждый параметр является выражением строкового типа. Результат представляет собой конкатенацию (объединение) всех строковых параметров. Если длина результирующей строки превышает 255 символов, то она усекается до 255 символов. Те же резу
льтаты, что и использование функции Concat, позволяет получить операция +: 
     S := 'ABC' + 'DEF';

     Прочее: См. также подпрограммы Copy, Delete, Insert, Pos. 
     Пример:

     var
       s : string;
     begin
       s := Concat('ABC','DEF');                    { 'ABCDEF' }
     end.

 Функция Copy
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает для строки подстроку.

     Описание: Cоpy(S : string; Indx : integer; Count : integer)

     Тип результата: Строковый (string).

     Примечания: Параметр S - выражение строкового типа. Параметры Indx и Count являются выражениями целого типа. Функция Соpy возвращает строку, число символов которой соответствует параметру Count и которая начинается с символа строки S, номер которого
 задан параметром Indx. Если значение параметра Indx превышает длину строки, то возвращается пустая строка. Если параметр Count задает больше символов, чем остается в строке, начиная с символа Indx, то возвращается только остаток строки. 
     Прочее: См. также подпрограммы Concat, Delete, Insert, Pos. 
     Пример:

     var
       s : string;
     begin
       s := 'ABCDEF';
       s := Copy(s,2,3)                             { 'BCD' }
     end.

 Функция Cos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает косинус аргумента.

     Описание: Cos(x : real)

     Тип результата: Вещественный (real).

     Примечания: Параметр x является выражением вещественного типа. Результатом будет косинус x. Предполагается, что это значение задает угол в радианах. 
     Прочее: См. подпрограммы Arctan, Sin.

     Пример:

     var
       r : real;
     begin
       r := Cos(Pi);
     end.

 Функция CreateDir                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Создает новый подкаталог.

     Описание: CreateDir(Dir: PChar)

     Примечания: Создаваемый подкаталог задается параметром Dir. Возможные ошибки можно получить с помощью переменной DosError. Те же функции, что и CreateDir, выполняет функция MkDir, но воспринимает в качестве аргумента обычную строку Паскаля, а не стр
оку с завершающим нулем. 
     Прочее: См. также GetCurDir, SetCurDir, RemoveDir.

 Функция CSeg
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущее значение регистра СS.

     Описание: CSeg

     Тип результата: Результат имеет длину в слово (word).

     Примечания: Результат длиной в слово представляет собой адрес сегмента для той части программы, из которой была вызвана функция СSeg. 
     Прочее: См. также функции DSeg, SSeg.

 Процедура CursorTo                                  Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Перемещает курсор в точку на виртуальном экране с заданными координатами. 
     Описание: Cursor(X, Y: Integer)

     Примечания: Левый верхний угол экрана имеет координаты (0,0). Переменная Cursor устанавливается в значение (X,Y). 
 Процедура Dec
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Уменьшает значение переменной.

     Описание: Dec(x[ , n])

     Примечания: Параметр x представляет собой переменную перечислимого типа, а n - целочисленное выражение. Значение x уменьшается на 1 (или на n в случае явного задания n). То есть Dес(x) соответствует x := x-1, а Dес(x,n) соответствует x := x-n. Функц
ия Dес порождает оптимизированный код и особенно полезна в больших циклах. 
     Прочее: См. также функции Inc, Pred, Succ.

     Пример:

     var
       IntVar     : integer;
       LongIntVar : longint;
     begin
        Dec(IntVar);                     { IntVar := IntVar - 1 }
        Dec(LongIntVar(Var, 5);  { LongIntVar := LongIntVar - 5 }
     end.

 Процедура Delete
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Удаляет из строки подстроку.

     Описание: Delete(var S : string; Indx : integer; Count : integer)

     Примечания: Параметр S представляет собой переменную строкового типа. Параметры Indx и Count являются выражениями целого типа. Функция Delete удаляет символы, количество которых соответствует параметру Count, начиная с символа строки S, номер которо
го задан параметром Indx. Если значение параметра Indx превышает длину строки, то символы не удаляются. Если параметр Count задает больше символов, чем остается в строке, начиная с символа Indx, то удаляется остаток строки. 
     Прочее: См. также процедуры Insert, Copy, Concat, Length, Pos. 
 Процедура DiskFree                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает число свободных байт на заданном диске. 
     Описание: DiskFree(Disk : word)

     Тип результата: Длинный целый (longint).

     Примечания: Значение параметра Disk, равное 0, задает определенный по умолчанию диск, значение 1 указывает на диск A, 2 - на диск В и т.д. Если номер диска недействителен, то данная процедура возвращает значение -1. 
     Прочее: См. также процедуры DiskSize.

     Пример:

     uses WinDos;
     begin
       Writeln('Свободно ',DiskFree(0), div 1024,' килобайт');
     end.

 Процедура DiskSize                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает число свободных байт на заданном диске. 
     Описание: DiskSizе(Disk : word)

     Тип результата: Длинный целый (longint).

     Примечания: Значение параметра Disk, равное 0, задает определенный по умолчанию диск, значение 1 указывает на диск A, 2 - на диск В и т.д. Если номер диска недействителен, то данная процедура возвращает значение -1. 
     Прочее: См. также процедуры DiskFree, GetDir.

     Пример:

     uses WinDos;
      begin
         Writeln(DiskSize(0) div 1024,' килобайт');
      end.

 Процедура Dispose
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Уничтожает динамическую переменную.

     Описание: Dispose(var P : pointer [, Destructor] )

     Примечания: Параметр P является переменной-указателем и может иметь тип, соответствующий любому типу указателя. Для этого параметра должно быть предварительно выполнено присваивание с помошью процедуры New, или ему должно быть присвоено значащее зна
чение с помощью оператора присваивания. Данная процедура уничтожает переменную, на которую указывает P и возвращает занимаемую ей память в динамически распределяемую область памяти. Значение P становится неопределенным и последующие ссылки вида P^ являют
ся ошибкой. 
     Процедура Dispose расширена таким образом, что допускает теперь для уничтожения динамической переменной объектного типа в качестве второго параметра вызов деструктора. В этом случае параметр P - это переменная-указатель, указывающая на данный объект
, а Destruct - вызов дуструктора данного объекта. 
     Ограничения: Если P не указывает на область динамически распределяемой памяти, то возникает ошибка этапа выполнения. 
     Полностью этот вопрос обсуждается в Главе 16 в разделе "Подсистема управления динамически распределяемой памятью". 
     Прочее: См. также процедуры New, GetMem, FreeMem.

     Пример:

     type
       Str18 = sting[18];
     var
       p : ^Str18;
     begin
     New(p);
     p^ := 'теперь вы можете это видеть...';
     Dispose(p);                            { а теперь нет... }
     end.

 Процедура DoneWinCrt                                 Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Уничтожает окно CRT, если оно еще не отменено. 
     Описание: DoneWithCrt

     Примечание: Вызов процедуры DoneWinCrt перед завершением программы предотвращает переход окна CRT в неактивное состояние. Таким образом, пользователю не нужно закрывать окно. 
 Функция DosVersion                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает номер версии DOS.

     Описание: DosVersion

     Тип результата: Результат имеет длину в слово (word).

     Примечания: Данная функция возвращает номер версии DOS. Младший байт результата содержит основной номер версии, а старший байт - вспомогательный. Например, для DOS 3.20 в младшем байте возвращается значение 3, а в старшем байте - 20. 
     Пример:

     uses WinDos;
     var
        Ver: Word;
     begin
        Ver := DosVersion;
        Writeln('Номер версии DOS ', Lo(Ver), '.', Hi(Ver));
     end;

 Функция Dseg
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущее значение регистра DS.

     Описание: DSeg

     Тип результата: Результат имеет длину в слово (word).

     Примечания: Результат длиной в слово представляет собой адрес сегмента данных. 
     Прочее: См. также функции CSeg, SSeg.

 Функция Eof (текстовые файлы)
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает состояние "конец файла" (end-of-file) для текстовых файлов. 
     Описание: Eof(f)

     Тип результата: Булевский (boolean).

     Примечания: Параметр f представляет собой файловую переменную, определяющую текстовый файл. Если этот параметр опущен, то используется стандартная файловая переменная Input. Если текущая позиция в файле находится за последним элементом файла или есл
и файл не содержит никаких элементов, то функция Eоf(f) возвращает значение Truе. В противном случае она возвращает значение False. 
     При указании директивы компилятора {$I+} функция IОRеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
     Прочее: См. также функции Eoln, SeekEof.

     Пример:

     var
        f  : text; ch : char;
      begin  { получить имя файла из командной строки }
        Assign(f, ParamStr(1));
        Reset(f);
        while not Eof(f) do
          begin
          Read(f,ch);   { вывести текстовый файл }
          Write(ch);
        end;
     end.

 Функция Eof (типизованные и нетипизованные файлы)
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Для типизованных или нетипизованных файлов возвращает состояние "конец файла" (end-of-file). 
     Описание: Eof(f)

     Тип результата: Булевский (boolean).

     Примечания: Параметр f представляет собой файловую переменную. Если текущая позиция в файле находится за последним элементом файла или если файл не содержит никаких элементов, то функция Еоf(f) возвращает значение Truе. В противном случае она возвра
щает значение False. 
     При указании директивы компилятора {$I+} функция IОRеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
 Функция Eoln
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Для файлов возвращает состояние "конец строки" (end-of-line). 
     Описание: Eoln [ (var f : text) ]

     Тип результата: Булевский (boolean).

     Примечания: Параметр f, если он задан, представляет собой файловую переменную, определяющую текстовый файл. Если этот параметр опущен, то подразумевается использование стандартной файловой переменной Input. Если текущая позиция в файле находится на 
метке конца строки, то функция Eоln(f) возвращает значение Truе. В противном случае она возвращает значение False. 
     При проверке состояния "конец строки" для стандартного ввода, направление которого изменено не было, следующая программа ожидает, пока не будет введен символ возврата каретки, а затем передает управление функции Eoln. 
     begin
      WriteLn(Eoln);     { Это приведет к тому, что }
                         { программа будет ожидать ввода }
                         { с клавиатуры }
     end.

     При указании директивы компилятора {$I+} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
     Прочее: См. также функцию Eof.

 Процедура Erase
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Стирает внешний файл.

     Описание: Erase

     Примечания: Параметр f представляет собой файловую переменную любого файлового типа. Внешний файл, связанный с переменной f, стирается. 
     При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
     Ограничения: Процедура Еrase не должна использоваться для открытого файла. 
     Прочее: См. также процедуру Rename.

     Пример:

     var
       f : file;
      ch : char;
     begin
      { получить из командной строки имя предназначенного для
        удаления файла }
        Assign(f, ParamStr(1));
       {$I-}
        Reset(f);
       {$I+}
        if IOResult <> 0 then
          Write('Файл не найден ' ParamStr(1))
        else
        begin
           Close();
          Write('Стереть ', ParamStr(1)),'?');
          Readln(ch);
          if UpCase(ch) = 'Y' then
          Erase(f);
       end;
      end.

 Процедура Exit
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выполняет немедленный выход из текущего блока. 
     Описание: Exit

     Примечания: Когда процедура Ехit выполняется в подпрограмме (процедуре или функции), то происходит возврат управления из подпрограммы. Когда эта процедура выполняется в операторной части программы, она вызывает прекращение работы программы. Обращени
е к Ехit аналогично оператору перехода на оператор с меткой, адрес которого находится непосредственно после оператора end. 
     Прочее: См. также функцию Нalt.

     Пример:

     uses WinCrt;
     procedure WasteTime;
     begin
        repeat
           if KeyPressed then Exit;
           Write('Xx');
        until False;
     end;
     end.

 Функция Exp
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает экспоненциальное значение аргумента. 
     Описание: Exp(x : real)

     Тип результата: Вещественный (real).

     Примечания: Параметр x является выражением вещественного типа. Результатом будет экспонента x, то есть значение e возводится в степень x (e - основание натурального логарифма). 
     Прочее: См. также функцию Ln.

 Функция FileExpand                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Расширяет имя файла до полного имени файла.

     Описание: FileExpand(Dest, Name: PChar)

     Тип результата: PChar.

     Примечания: Расширяет имя файла, задаваемого параметром Name", до полного имени файла. Полученное в результате имя преобразуется в верхний регистр и содержит буквенную метку дисковода, двоеточие, путь доступа относительно корневого каталога и имя фа
йла. Внутренние ссылки на каталоги ".." и "." удаляются, а все компоненты имени и расширения усекаются до 8 и 3 символов. Возвращаемое значение содержится в параметре Dest. Допускается, чтобы Name и Dest ссылались на одно и то же место. 
     Предположим, что текущим диском и каталогом является C:\SOURCE\PAS. Тогда следующие вызовы процедуры FileExpand дадут такие значения: 
     FileExpand(S, 'test.pas')      = 'C:\SOURCE\PAS\TEST.PAS'
     FileExpand(S, '../*.TPU')      = 'C:\SOURCE\*.TPU'
     FileExpand(S, 'c:\bin\wturbo.exe') = 'C:\BIN\WTURBO.EXE'

     Для разбиения результата функции FileExpand на дисковод/каталог, строку имени файла и строку расширения можно использовать функцию FileSplit. 
     См. также функции: FindFirst, FindNext, FileSplit.

 Функция FilePos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущую позицию в файле.

     Описание: FilePos(f)

     Тип результата: Длинный целый (longint).

     Примечания: Параметр f представляет собой файловую переменную. Если текущей позицией является начало файла, то функция FilePos(f) возвращает значение 0. Если текущей позицией в файле является конец файла, то есть Eоf(f) возвращает значение Truе, то 
значение, возвращаемое функцией FilePos(f), совпадает со значением, возвращаемым функцией FileSizе(f) (то есть с размером файла). 
     При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
     Ограничения: Эта функция не может использоваться для текстового файла. Файл должен быть открыт. 
     Прочее: См. также процедуры FileSize, Seek.

 Функция FileSearch
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выполняет поиск файла в списке каталогов.

     Описание: FileSearch(Dest, Name, List; PChar): PChar

     Тип результата: PChar.

     Примечания: Данная функция ищет файл, заданный именем Name, в списке каталогов, заданном параметром List. Каталоги в списке List должны разделяться точкой с запятой, аналогично команде PATH в DOS. Поиск всегда начинается с текущего каталога на текущ
ем диске. Если файл будет найден, функция FileSearch записывает конкатенацию имени каталога и имени файла в параметр Dest. Ссылка Dest и Name на одно и то же место не допускается. 
     Максимальная длина результата задается константой fnPathName и равна 79. 
     Чтобы выполнить поиск по маршруту, заданному в команде DOS PATH, вызовите функцию GetEnvVar('PATH') и передайте в параметре List результат этого вызова функции FileSearch. 
     Для преобразование его в полное имя маршрута (имя файла в верхнем регистре с указанием метки диска и маршрута относительно корневого каталога) результат функции FileSearch можно передать подпрограмма FileExpand. Кроме того, для разбиения имени файла
 и выделения из него строки с меткой диска, строки имени файла и строки расширения вы можете использовать функцию FileSplit. 
     См. также: FileExpand, FileSplit

     Пример:

     uses Модуль WinCrt, WinDos;
     var
        S: array[0..fsPathName] of Char;
     begin
        FileSearch(S, 'TPW.EXE', GetEnvSVar('PATH'));
        if S(0) = #0 then
           Writgeln('TPW.EXE не найден')
        else
          Writeln('Найден в ', FileExpand(S, S);
     end.

 Функция FileSize
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущий размер файла.

     Описание: FileSize(var f)

     Тип результата: Длинный целый (longint).

     Примечания: Параметр f представляет собой файловую переменную. Данная функция возвращает число элементов в f. Если файл пуст, функция возвращает значение 0. 
     При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
     Ограничения: Функция не может использоваться для текстового файла. Файл должен быть открыт. 
     Прочее: См. также функцию FilePos.

     Пример:

     var
       f : file of byte;
     begin
      { получить имя файла из командной строки }
      Assign(f, ParamStr(1));
      Reset(f);
      Writeln('Размер файла в байтах: ', FileSize(f));
      Close(f);
     end.

 Процедура FileSplit                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Разбивает имя файла на три составляющих компонента. 
     Описание: FileSplit(Path, Dir, Name, Ext: PChar): Word

     Примечания: Имя файла, заданное параметром Path, разбивается на три составных компонента. В параметр Dir записывается буквенная метка диска и имя каталога со начальными и конечными символами обратной косой черты, в параметр Name - имя файла, а в Ext
 - расширение имени файла с предшествующей точкой. Если компонент строки имеет значение nil (пусто), то соответствующая часть маршрута не записывается. Если маршрут не содержит данного компонента, то возвращаемая строка-компонент будет пустой. Максимальн
ая длина строк, возвращаемых в параметрах Dir, Name и Ext, определяется константами fsDirectory, fsFileName и fsExtension. 
     Возвращаемое значение является комбинацией битовых масок fsDirectory, fsFileName и fsExtension, указывающих, какие компоненты присутствовали в марпшруте. Если имя файла или расширение содержат трафаретные символы (* и ?), то в возвращаемом значении 
устанавливается флаг fcWincards. 
     Константы fsXXXX и fcXXXX определены в модуле WinDos следующим образом: 
     const
        fsPathName     = 79;
        fsDirectory    = 67;
        fsFileName     =  8;
        fsExtension    =  4;

     const
        fcExtension   = $0001;
        fcFileName    = $0002;
        fcDirectory   = $0004;
        fcWildcards   = $0008;
        fcExtension   = $0001;

     Прочее: См. подпрограммы FileExpand, FindFirst, FindNext. 
     Пример:

     uses Strings, WinCrt, WinDos;
     var
        Path: array[0..fsPathName] of Char;
        Dir: array[0..fsDirectiry] of Char;
        Name: array[0..fsFileName] of Char;
        Ext: array[0..fsExtension] of Char;
     begin
        Write('Filename (WORK.PAS): ');
        Readln(Path);
        FileSplit(Path, Dir, Name, Ext);
        if Name[0] = #0 then StrCopy(Name, 'WORK');
        if Ext[0] = #0 then StrCopy(Ext, '.PAS');
        StrECopy(StrECopy(StrECopy(Path, Dir), Name), Ext);
        Writeln('Результат: ', Path);
     end.

 Процедура FillChar
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Помещает в заданное число следующих друг за другом байт указанное значение. 
     Описание: FillChar(x; Count : word; Val)

     Примечания: Параметр x является ссылкой на переменную любого типа, Count представляет собой выражение длиной в слово, Val является выражением перечислимого типа. Процедура записывает значение, указанное в параметре Val, в то количество следующих дру
г за другом байт памяти, начиная с первого байта, занимаемого переменной х, которое определяется параметром Count. 
     Проверка на допустимость границ не выполняется, поэтому будьте внимательны. 
     Если это возможно, при использовании процедуры FillChar задавайте параметр Count. При использовании этой процедуры для строк не забудьте после заполнения установить длину в байтах. 
     Прочее: См. также процедуру Моvе.

     Пример:

     var
      s : string[80];
     begin
      { задать строку, состоящую из пробелов }
      FillChar(s, SizeOf(s),' ');   { установить длину
                                      последовательности байт }
      s[0] := #80;
     end.

 Процедура FindFirst                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Производит поиск в заданном (или текущем) каталоге первой записи, соответствующей заданному имени файла и набору атрибутов файла. 
     Описание: FindFirst(Path : String; Attr : Bуtе; var S: TSearchRec)

     Примечания: Параметр Path определяет каталог, например "*.*". Параметр Attr определяет включение в список рассматриваемых специальных файлов (наряду со всеми обычными файлами). Приведем список атрибутов файла, как они описаны в модуле WinDos: 
     const
            { константы атрибутов файла }
        ReadOnly   = $01;            { только чтение      }
        Hidden     = $02;            { "скрытый" файл     }
        SysFile    = $04;            { системный файл     }
        VolumeId   = $08;            { идентификатор тома }
        Directory  = $10;            { каталог            }
        Archive    = $20;            { архивизация        }
        AnyFile    = $3F;            { прочий файл        }

     Результат поиска по каталогу возвращается в заданной записи типа TSearchRec, который описывается в модуле WinDos: 
     type
      { тип SearchRec, использующийся в процедурах FindFirst
        и FindNext }
      TSearchRec = record
                     Fill : array[1..2] of byte;
                     Attr : byte;
                     Time : longint;
                     Size : longint;
                     Name : string[12];
                  end;

     Коды ошибки можно получить с помощью подпрограммы DosError. Возможными значениями кодов являются 2 (каталог не найден) и 18 (больше файлов нет). 
     Прочее: См. также процедуры FileExpand, FindNext.

     Пример:

     uses WinDos;
     var
       DirInfo : TSearchRec;
     begin
       FindFirst('*.PAS', Archive, DirInfo); { то же, что и
                                               DIR *.PAS }
       while DosError = 0 do
       begin
         Writeln(DirInfo.Name);
         FindNext(DirInfo);
       end;
     end.

 Процедура FindNext                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает следующую запись, совпадающую с именем и атрибутами файла, указанными при предыдущем обращении к процедуре FindFirst. 
     Описание: FindNext(var S : TSearchRec)

     Примечания: Параметр S должен быть таким же, как при обращении к FindFirst (тип SearchRec описывается в модуле WinDos (см. процедуру FindFirst). С помощью DosError можно получить код ошибки. Единственно возможным кодом является код 18, указывающий н
а отсутствие файлов. 
     Прочее: См. также процедуры FileExpand, FindFirst.

     Пример: См. пример для процедуры FindFirst.

 Процедура Flush
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выводит содержимое буфера открытого для вывода текстового файла. 
     Описание: Flush(var f : text)

     Примечания: Параметр f является файловой переменной текстового типа. 
     Когда текстовый файл открывается для вывода с помощью процедур Rewrite или Appеnd, обращение к процедуре Flush позволяет очистить буфер файла. Это обеспечивает то, что все символы, записанные в это время в файл, будут действительно записаны во внешн
ий файл. Для файлов, открытых для ввода, данная процедура никаких дейстий не выполняет. 
     При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. 
 Функция Frac
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает дробную часть аргумента.

     Описание: Frac(x : real)

     Тип результата: Вещественный (real).

     Примечания: Параметр х является выражением вещественного типа. Результатом является дробная часть x, то есть Frас(x) = x - Int(x). 
     Прочее: См. также функцию Int.

     Пример:

     var
        r : real;
     begin
        f := Frac(123.456);
     end.

 Процедура FreeMem
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Уничтожает динамическую переменную данного размера. 
     Описание: FrееМем(var P : pоinter; Size : word)

     Примечания: Параметр P является указателем на переменную (относящимся к любому типу указателей), для которого было предварительно выполнено присваивание с помощью процедуры GetМем или которому было присвоено значащее значение с помощью оператора при
сваивания. Параметр Size представляет собой выражение длиной в слово, которое задает размер уничтожаемой динамической переменной (в байтах). Его значение должно в точности соответствовать числу байт памяти, отведенных ранее для переменной процедурой GetМ
ем. Процедура FrееМем уничтожает переменную, на которую указывает P, и освобождает занятую ей область памяти в динамически распределяемой области. Если указатель p не ссылается на область памяти в динамически распределяемой области, то во время выполнени
я программы возникает ошибка. После обращения к процедуре FrееМем значение указателя P становится неопределенным, а последующие ссылки вида P^ будут приводить к ошибке. 
     Прочее: См. также процедуры Dispose, GetMem, New.

 Функция GetArgCount                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает число параметров, переданное программе в командной строке. 
     Описание: GetArgCount: Integer

 Функция GetArgStr                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает параметр командной строки, заданный параметром Index. 
     Описание: GetArgSrt(Dest: PChar; Index: Ingteger; MaxLen: Word): PChar; 
     Примечания: Если Index меньше нуля или превышает значение GetArgCount, то функция GetArgStr возвращает пустую строку. Если Index = 0, GetArgStr возвращает для текущего модуля имя файла. Dest - это возвращаемое значение. Максимальная длина возвращаем
ого значения задается параметром MaxLen. 
     Прочее: См. также подпрограмму GetArgCount.

 Процедура GetCBreak                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает состояние Ctrl+Break, которое проверяется операционной системой DOS. 
     Описание: GetCBreak(var Break: boolean)

     Примечания: Данная процедура возвращает состояние Ctrl+Break, проверяемое в DOS. В выключенном состоянии (False) DOS проверяет Ctrl+Break только при выводе на консоль, устройство печати или в коммуникационные порты. Во включенном состоянии (True) пр
оверки делаются при каждом обращении к системе. 
     Прочее: См. также функцию SetCBreak.

 Функция GetCurDir                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущий каталог на заданном диске. 
     Описание: GetCurDir(Dir: PChar; Drive: Byte): PChar

     Примечания: Возвращаемая в параметре Dir строка всегда начинается с буквенной метки диска, двоеточия и обратной косой черты. Drive = 0 указывает на текущий диск, 1 - на диск A, 2 - на диск B и т.д. Возвращаемое значение содержится в Dir. Ошибки возв
ращаются в DosError. 
     Максимальная длина строки-результата определяется константой fsDirectory. 
     Прочее: См. также подпрограммы SetCurDir, CreateDir, RemoveDir. GetDir возвращает текущий каталог на заданном диске в виде стандартной строки Паскаля. 
 Процедура GetDate                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущую дату, установленную в операционной системе. 
     Описание: GetDate(var Year, M, Day, D : word)

     Примечания: Возвращаемые значения имеют следующие диапазоны: Year (год) - 1980..2099, M (месяц) - 1..12, Day (число) 1..31, D (день недели) - 0..6 (где значение 0 соответствует воскресенью). 
     Прочее: См. также процедуры SetDate, GetTime, SetTime.

 Процедура GetDir
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает текущий каталог на заданном диске.

     Описание: GetDir(d : byte; var s : string)

     Примечания: Параметр d представляет собой выражение целого типа, а s - переменную строкового типа. Значение текущего каталога на диске, заданного параметром d, возвращается в переменной s. Значение d = 0 указывает на текущий дисковод, 1 - задает дис
ковод A, 2 - В и т.д. 
     Процедура GetDir не выполняет сама по себе проверку ошибок. Если в параметре d задан недопустимый каталог, в s возвращается '\' (как будто это корневой каталог на недопустимом диске). 
     Прочее: См. также процедуры ChDir, DiskFree, DiskSize, MkDir, RmDir. Подпрограмма GetCurDir выполняет те же функции, что и GetDir, но вместо строки Турбо Паскаля воспринимает в качестве аргумента строку, завершающуюся нулем. 
 Функция GetEnvVar                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает значение заданной переменной операционной среды. 
     Описание: GetEnvVar(VarName : PChar)

     Примечания: Функция GetEnvVar возвращает указатель на значение заданной переменной VarName, например, указатель на первый символ после знака равенства = в записи операционной среды, заданной параметром VarName. Имя переменной может указываться как с
трочными (нижний регистр), так и прописными (верхний регистр) буквами, но оно не должно включать в себя знак равенства (=). Если заданная переменная операционной среды не существует, то функция GetEnvVar возвращает указатель nil. 
     Пример:

     uses WinDos;
     var
     begin
       Write('Текущий маршрут:  ', GetEnvVar('PATH'));
     end.

 Процедура GetFAttr                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает атрибуты файла.

     Описание: GetFAttr(var f; var Attr : Word);

     Примечания: Параметр f должнен представлять собой файловую переменную, соответствующую типизованному, нетипизованному или текстовому файлу, для которого должно быть выполнено присваивание файловой переменой, но который не должен быть открыт. Проверк
а атрибутов Attr выполняется путем сравнения их с масками, заданными в виде констант в модуле WinDos: 
     const
          { константы атрибутов файла }
        ReadOnly   = $01;        { только чтение }
        Hidden     = $02;        { "скрытый" файл }
        SysFile    = $04;        { системный файл }
        VolumeId   = $08;        { идентификатор тома }
        Directory  = $10;        { каталог }
        Archive    = $20;        { архивизация }
        AnyFile    = $3F;        { прочий файл }

     Коды ошибок можно получить с помощью функции DosError. Возможными кодами ошибок являются код 3 (недопустимый маршрут) и код 5 (файл недоступен). 
     Ограничения: Файл f не должен быть открыт.

     Прочее: См. также процедуры SetFAttr, SetFAttr, SetFTime.

     Пример:

     uses WinDos;
      var
        f : file;
        attr : byte;
      begin
     { получить из командной строки имя файла }
     Assign(f, ParamStr(1));
     GetFAttr(f, attr);
         Writeln(ParamStr(1));
     ifDosError <> 0 then
        Writeln('Код ошибки DOS = ', DosError)
     else
     begin
        Writeln('Атрибут = ', attr);
     { определить тип атрибута файла с помощью флагов в модуле
       Dos }
     if attr and ReadOnly <> 0 then
        Writeln('Файл доступен только по чтению');
     if attr and Hidden <> 0 then
        Writeln('"Скрытый" файл');
     if attr and SysFile <> 0 then
        Writeln('Системный файл');
     if attr and VolumeId <> 0 then
        Writeln('Идентификатор тома');
     if attr and Directory <> 0 then
        Writeln('Каталог');
     if attr and Archive <> 0 then
        Writeln('Архивизируемый (обычный) файл');
     end; { else }
     end.

 Процедура GetFTime                                  Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает дату и время последней записи файла. 
     Описание: GetFTime(var f; var Time)

     Примечания: Параметр f должен представляеть собой файловую переменную, соответствующую типизованному, нетипизованному или текстовому файлу, для которого должно быть выполнено присваивание файловой переменной, но который не должен быть открыт. Значен
ие времени, возвращаемое в параметре Time, может быть распаковано путем обращения к процедуре UnpackTime. Коды ошибок можно получить с помощью функции DosError. Единственным возможным кодом ошибки является код 6 (недопустимая обработка файла). 
     Ограничения: Файл должен быть открыт.

     Прочее: См. также процедуры SetFTime, PackTime, UnPackTime. 
 Процедура GetIntVec                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает адрес указанного вектора прерываний. 
     Описание: GetIntVec(Int : byte; Vec : pointer)

     Примечания: Параметр Int задает номер вектора прерывания (от 0 до 255), а его адрес возвращается в параметре Vec. 
     Прочее: См. также процедуру SetIntVec.

 Процедура GetMem
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Создает новую динамическую переменную указанного размера и помещает адрес блока в переменную-указатель. 
     Описание: GetMem(var P : pоinter; Size : word)

     Примечания: Параметр P является переменной-указателем и может относится к любому типу указателей. Параметр Size имеет длину в слово и задает размер (в байтах) области памяти, выделяемой для динамической переменной. На вновь созданную переменную можн
о ссылаться с помощью P^. 
     Если для выделения памяти под новую динамическую переменную в динамически распределяемой области недостаточно свободной памяти, то во время выполнения программы происходит ошибка. (Этой ошибки можно избежать - см. раздел "Переменная HeapError" в Гла
ве 16). 
     Ограничения: Наибольший блок, который может быть выделен в динамически распределяемой области памяти, составляет 65521 байт (64К - $F). 
     Прочее: См. также процедуры New, FreeMem, Dispose.

 Процедура GetTime                                   Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает установленное в операционной системе текущее время. 
     Описание: GetTime(var hour, min, sec, ssec : word)

     Примечания: Возвращаемые параметры принимают следующие значения: hour (час) - от 0 до 23, min (минута) - от 0 до 59, sec (секунда) - от 0 до 59 и ssec (сотая доля секунды) - от 0 до 99. 
     Прочее: См. также процедуры SetTime, GetDate, SetDate, UnpackTime. 
 Процедура GetVerify                                 Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает состояние флага проверки DOS.

     Описание: GetVerify(var Flag : boolean)

     Примечания: Данная процедура возвращает состояние флага проверки DOS. При сброшенном флаге (False) проверка при записи на диск не выполняется. При установленном флаге (True) для обеспечения правильности записи все операции записи на диск проверяются
. 
     Прочее: См. также процедуру SetVerify.

 Процедура GotoXY                                    Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Позиционирует курсор в точку на виртуальном экране с заданными координатами. 
     Описание: GoToXY(X, Y : byte)

     Примечания: Верхний левый угол задается кординатами (1,1). Переменная Cursor устанавается в значение (X - 1,Y - 1), так как в ней записывается позиция курсора относительно точки (0,0), а не (1,1). 
 Процедура Halt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Останавливает выполнение программы и возвращает управление операционной системе. 
     Описание: Наlt [ (ExtCode : word) ]

     Примечания: Параметр ExtCode (код выхода) представляет собой необязательное выражение длиной в слово, которое задает код выхода из программы. Процедура Наlt без параметров соответствует вызову Наlt(0). Код выхода может проверяться порождающим процес
сом с помощью функции EхitCode модуля Dos или с помощью проверки ERRORLEVEL в файле пакетной обработки DOS. 
     Заметим, что процедура Наlt инициализирует выполнение имеющихся в модуле процедур завершения (см. Главу 8). 
     Прочее: См. также процедуру Exit, RunError.

 Функция Hi
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает старший байт аргумента.

     Описание: Нi(x)

     Тип результата: Байт.

     Примечания: Параметр x представляет собой выражение целого типа или слово. Функция Нi возвращает старший байт x в виде значения без знака. 
     Прочее: См. также функции Lo, Swap.

     Пример:

     var
       w : word;
     begin
       w := Hi($1234);                             { $12 }
     end;

 Процедура Inc
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Увеличивает значение переменной.

     Описание: Inc(x [ ; n : longint ] )

     Примечания: Параметр x представляет собой переменную перечислимого типа, а n - целочисленное выражение. Значение x увеличивается на 1 (или на n в случае явного задания n). То есть Inс(x) соответствует x := x+1, а Inс(x,n) соответствует x := x+n. Фун
кция Inс порождает оптимизированный код и особенно полезна в больших циклах. 
     Прочее: См. также функции Dec. Pred, Succ.

     Пример:

     var
       IntVar  : intege;
       LongIntVar : longint;
     begin
       Inc(IntVar);         { intVar := IntVar + 1 }
       Inc(LongIntVar);     { LongIntVar := LongIntVar + 5 }

 Процедура InitWinCrt                                Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Создает окно CRT (если оно еще не создано).

     Описание: InitWinCrt

     Примечания: Операции Read, Readln, Write или Writeln с файлом, который присвоен окну CRT, для обеспечения существования окна CRT автоматически вызывают процедуру InitCrt. Для определения характеристик окна CRT процедура InitWinCrt использует перемен
ные WindowOrg, WindowSize, ScreenSize и WindowTitle. 
 Процедура Insert
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Вставляет в строку подстроку.

     Описание: Insert(String1 : string; var s : string; Indx : integer)

     Примечания: Параметр String1 представляет собой выражение строкового типа. Параметр s - переменная строкового типа любой длины. Параметр Indx является выражением целого типа. Данная процедура вставляет строку, задаваемую параметром String1, в строку
, задаваемую параметром s, начиная с позиции, определяемой параметром "индекс". Если получившаяся в результате строка превышает 256 символов, то она усекается до 255 символов. 
     Прочее: См. также процедуры Delete, Copy, ConCat, Length, Pos. 
     Пример:

     var
       s : string;
     begin
       s := 'Honest Lincoln';
       Insert('Abe',s,8);    { Honest Abe Lincoln }

 Функция Int
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает целую часть аргумента.

     Описание: Int(X: Real)

     Тип результата: Вещественный (Real).

     Примечания: X - это выражение вещественного типа. Результатом будет целая часть X, то есть число X, округленное в сторону 0. 
     Прочее: см. подпрограммы Frac, Round, Trunc.

     Пример:

     var
       r : real;
     begin
       r := Int(123.456);                  { 123 }
     end.

 Процедура Intr                                      Модуль WinDos
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Выполняет заданное программное прерывание.

     Описание: Intr(IntNum : byte; var Regs : TRegisters)

     Примечания: Параметр IntNum - это номер программного прерывания (0...255). TRegisters является записью, определенной DOS следующим образом: 
    type
      TRegisters = record
                   case integer of
                    0: (AX,BX,CX,X,BP,SI,DS,ES,Flags: word);
                    1: (AL,AH,BL,BH,CL,CH,DL,DH: byte);
                  end;

     Перед выполнением указанного программного прерывания функция Intr, используя запись Rеgs, загружает регистры AХ, ВХ, СХ, DХ, ВР, SI, DI, DS и ЕS процессора 8086. После того, как прерывание будет выполнено, содержимое регистров AХ, ВХ, СХ, DХ, ВР, S1
, DI, DS, ES и регистров флагов опять сохраняется в записи Regs. 
     Чтобы избежать при работе в стандартном режиме Windows или улучшенном режиме Windows 386 сбоев по нарушению защиты, всегде необходимо убедиться, что поля DS и ES записи TRegisters инициализируются допустимыми значениями селектора, или установлены в 
0. 
     Ограничения: Программные прерывания, для которых на входе требуется задание определенных значений в SР или SS или изменяют значения SР и SS на выходе, с использованием данной процедуры выполняться не могут. 
     Прочее: См. также процедуру MsDos.

 Функция IOResult
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает целое значение, представляющее собой состояние последней выполненой операции ввода-вывода. 
     Описание: IOResult

     Тип результата: Слово (word).

     Примечания: Чтобы перехватить ошибки ввода-вывода с помощью функции IORеsult, проверка ввода-вывода должна быть выключена (директива компилятора {$I-}). Если проверка ввода-вывода выключена и происходит ошибка ввода-вывода, то, пока выполняется обра
щение к функции IORеsult, все последующие операции ввода-вывода игнорируются. Обращение в функции IORеsult сбрасывает ее внутренний флаг ошибки. 
     Перечень возвращаемых кодов ошибок приведен в Приложении A. Значение 0 отражает успешное выполнение операции ввода-вывода. 
     Пример:

     var
       f : file of byte;
     begin
       { получить командную строку с именем файла }
       Assign(f, ParamStr(1));
       {$I-}
       Reset(f);
       {$I+}
       if IOResult = 0 then
           Writeln('Размер файла в байтах :',FileSize(f));
       else
           Writeln('Файл не найден');
      end.

 Функция KeyPressed                                  Модуль WinCrt
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Определяет, нажата ли клавиша на клавиатуре. 
     Описание: KeyPressed: Boolean

     Тип результата: Булевский (boolean).

     Примечания: Возвращает значение Truе, если на клавиатуре нажата клавиша и False в противном случае. Символ (или символы) остаются в буфере клавиатуры. Данная процедура не распознает клавиш перевода регистра, таких, как Shift, Аlt, NumLock и т.д. 
 Функция Length
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает динамическую длину строки.

     Описание: Length(S : string)

     Тип результата: Целый (integer).

     Примечания: Параметр S представляет собой выражение строкового типа. Результатом будет длина S. 
     Пример:

     var
       s : string;
       i : word;
     begin
       s := 'abc';
       for i := 1 to Lenth(s) do
         s[i] := UpCase(s[i]);
         Writeln(s);                       { ABC }
     end.

 Функция Ln
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает натуральный логарифм аргумента.

     Описание: Ln(x : real)

     Тип результата: Вещественный (real).

     Примечания: Параметр x является выражением вещественного типа. Результатом будет натуральный логарифм x. 
     Прочее: См. также функцию Exp.

 Функция  Lo
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

     Назначение: Возвращает младший байт аргумента.

     Описание: Lо(x)

     Тип результата: Байт (byte).

     Примечания: Параметр x - это параметр целого типа или параметр длиной в слово. Функция Lо возвращает младший байт x в качестве значения без знака. 
     Прочее: См. также функции Hi, Swap.

     Пример:

     var
       w : word;
     begin
       w := Lo($1234);                       { $34 }
     end.


Яндекс цитирования