ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 27 Функция MaxAvail ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает размер наибольшего непрерывного свободного блока в динамически распределяемой области памяти. Описание: MaxAvail Тип результата: Длинный целый (Longint). Примечания: Данное значение вычисляется путем сравнения размеров наибольших свободных блоков в пространстве вторичного распределения глобальной динамически распределяемой области Windows. Функция возвращает наибольшее из двух значений, соответствующее на ибольшей динамической переменной, память для которой можно выделить с помощю процедуры New или GetMem. Размер наибольшего свободного блока в глобальной динамически распределяемой области памяти Windows вычисляется с помощью функции GlobalCompact. Прочее: См. также процедуру MemAvail. Пример: type PBuffer = ^TBuffer; TBuffer = array[0..1638] of Char; var Buffer: PBuffer; begin . . if MaxAvail < SizeOf(TBuffer) then OutOfMemory else begin New(Buffer); . . end; . . end. Функция MemAvail ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает объем памяти в динамически распределяемой области памяти. Описание: MemAvail Тип результата: Длинный целый (Longint). Примечания: Данное число определяется с помощью вызова функции Windows GetFreeSpace и прибавления к результату размера каждого свободного блока в пространстве вторичного распределения подсистемы управления динамически распределяемой памятью. Прочее: См. также функцию МахAvail. Пример: begin Writeln('Доступно ', MemAvail, 'байт'); Writeln('Наибольший свободный блок равен ', MaxAvail, ' байт'); end. Процедура MkDir ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Создает подкаталог. Описание: MkDir(s : string) Примечания: Параметр s представляет собой выражение строкового типа. Создается новый каталог с путем доступа, заданным строкой s. Последний элемент этой записи не может задавать имя существующего файла. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. также процедуры RmDir, ChDir, GetDir. Те же действия, что и MkDir, выполняет подпрограмма CreateDir, но она работает со строкой с завершающим нулем, а не со строкой Паскаля. Пример: begin {$I-} { получить из командной строки имя каталога } MkDir(ParamStr(1)); If IOResult <> 0 then Writeln('создание каталога невозможно'); else Writeln('создан новый каталог'); end. Процедура Move ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует заданное число непрерывных байт из заданного диапазона в указанный диапазон. Описание: Моvе(var Source, Dest; Count word) Примечания: Параметры Source и Dest представляют собой ссылки на переменные любого типа. Параметр Count представляет собой выражение длиной в слово. Процедура Моvе копирует блок байт из Source, размер которого (в байтах) задается параметром Count, в блок, начинающийся первого байта, заданного параметром Dest. С данной процедурой следует работать аккуратно, поскольку никаких проверок не выполняется. Замечание: Когда области, задаваемые параметрами Source и Dest, находятся в одном сегменте, то есть когда адреса сегментов у них совпадают, то процедура Моvе автоматически обнаруживает и компенсирует какие-либо перекрытия. Для статически и динамиче ски распределяемых переменных внутрисегментных перекрытий никогда не происходят (если только это не делается специально) и, таким образом, они не могут обнаруживаться. Там, где это возможно, для определения параметра Count следует использовать функцию SizeOf. Прочее: См. также процедуру FillChar. Пример: var a : array[1..4] of char; b : longint; begin Move(a, b, SizeOf(a)); { для надежности исполь- зуется функция SizeOf } end. Функция MsDos Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выполняет функциональный вызов DOS. Описание: MsDos(var Regs : TRegisters) Примечания: Результат обращения к функции MsDos будет тот же самый, что и обращение к функции Intr с номером прерывания IntNo $21. TRegisters представляет собой запись, описанную в модуле WinDos следующим образом: 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; Ограничения: Программные прерывания, для которых на входе требуется задание определенных значений в SР или SS или изменяют значения SР и SS на выходе, с использованием данной функции выполняться не могут. Прочее: См. также функцию Intr. Процедура New ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Создает новую динамическую переменную и устанавливает на нее указатель. Описание: New(var p : pointer [ , Init: CVonstructor ] ) Примечания: Параметр р является указателем-переменной и относится к указателям любого типа. Размер выделяемого блока памяти соответствует размеру того типа, на который указывает p. На вновь созданную переменную можно ссылаться с помощью p^. Если для выделения памяти под новую динамическую переменную в динамически распределяемой области недостаточно свободной памяти, то во время выполнения программы происходит ошибка (этой ошибки можно избежать - см. раздел "Функция обработки ошибки динамически расп ределяемой области памяти", содержащийся в Главе 16). Процедура New расширена таким образом, что допускает теперь для распределения динамической переменной объектного типа вызов в качестве второго параметра конструктора. В этом случае p - переменная-указатель, указывающая на данный объект, а Cunstruct - вызов конструктора данного объектного типа. Дополнительные расширения позволяют использовать подпрограмму New, как функцию, которая распределяет и возвращает динамическую переменную заданного типа. Если вызов имеет форму New(P), то P может быть указателем любого типа. Если вызов имеет форму N ew(P, Init), то Init должен быть вызовом конструктора данного объектного типа. В обоих случаях типом результата функции будет P. Прочее: См. также процедуры GetMem, FreeMem, Dispose. Функция Odd ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Проверяет, является ли аргумент нечетным числом. Описание: Odd(x : longint) Тип результата: Булевский (boolean). Примечания: Параметр x - это выражение длинного целого типа. Результат принимает значение Truе, если x представляет собой нечетное число и False - в противном случае. Функция Ofs ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает для заданного объекта смещение. Описание: Ofs(x) Тип результата: Слово (word). Примечания: Параметр x представляет собой любую переменную или идентификатор процедуры или функции. Результат длиной в слово представляет собой смещение для x. Прочее: См. также процедуры Seg, Addr. Функция Ord ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает порядковый номер для значения перечислимого типа. Описание: Ord(x) Тип результата: Длинный целый (longint). Примечания: Параметр x представляет собой выражение перечислимого типа. Результат имеет длинный целый тип и его значение является порядковым значением для x. Прочее: См. также функцию Chr. Процедура PackTime Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует запись TDateTime (дата и время) в четырехбайтовое значение, преобразуя длинный целый тип представления даты и времени, используемый процедурой SetTime. Описание: PackTime(var DT: TDateTime; var Time : longint) Примечания: Запись TDateTime описана в модуле WinDos следующим образом: TDateTime = record Year, Month, Day, Hour, Min, Sec : word; end; Для полей данной записи не выполняется проверка на правильность границ. Прочее: См. также процедуры UnPackTime, GetTime, SetTime, GetFTime, SetFTime. Функция ParamCount ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает число параметров, переданных в командной строке. Описание: ParamCount Тип результата: Слово (word). Примечания: Разделителями служат пробелы и символы табуляции. Прочее: См. также функцию ParamStr. Пример: begin if ParamCount < 1 then Writeln('В командной строке нет параметров'); else Writeln(ParamCount,' параметров'); end. Функция ParamStr ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает заданный параметр командной строки. Описание: РаrамStr(Index) Примечания: Параметр Index представляет собой выражение длиной в слово. Данная функция возвращает из командной строки параметр, номер которого задается параметром Index, или пустую строку, если Index равняется нулю или больше, чем РаrамСоunt. В верс ии Dos 3.0 или более поздней функция ParamStr(0) возвращает маршрут и имя файла выполняемой прогрыммы (например, C:\TP\MVYPROG.EXE). Прочее: См. также функцию ParamCount. Пример: var i : word; begin for i := 1 to ParamCount do Writeln(PaamStr(i)); end. Функция Pi ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает значение числа Pi (3.1415926535897932385). Описание: Pi Тип результата: Вещественный (real). Примечания: В зависимости от того, работает ли компилятор в режиме с сопроцессором 80x87 или только в режиме программного обеспечения, точность может меняться. Функция Pos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Производит поиск подстроки в строке. Описание: Pos(Sub, S : string) Тип результата: Байт (byte). Примечания: Параметры Sub и S являются выражениями строкового типа. Данная функция ищет подстроку, заданную параметром Sub, в строке S и возвращает целое значение, являющееся позицией первого символа подстроки в строке S. Если подстрока не найдена, то функция возвращает значение 0. Прочее: См. также функции Concat, Copy, Delete, Insert, Length. Пример: var s : string; begin s := ' 123.5'; { преобразует пробелы в нули } while Pos(' ',s) > 0 do s[Pos(' ',s)] := '0'; end; Функция Pred ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает предшествующее значение аргумента. Описание: Pred(x) Тип результата: Совпадает с типом параметра. Примечания: Параметр x - выражение перечислимого типа. Результат, имеющий тот же тип, что и x, является предшествующим значением x. Прочее: См. также функции Dec, Inc, Succ. Функция Ptr ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует адрес, заданный в виде базового сегмента и смещения, в значение типа указатель. Описание: Ptr(Seg, Offs : word) Примечания: Параметры Seg (сегмент) и Offs (смещение) представляют собой выражения длиной в слово. Результатом является указатель на адрес, заданный параметрами "сегм" и "смещ". Как и указатель типа nil, результат функции Рtr совместим по присваиван ию с указателями любых типов. Результат функции можно проанализировать, например: if Prt($40, $49)^ = 7 then Writeln('видеорежим = моно'); Прочее: См. также функцию Addr, Offs, Mono. Пример: var p^ : byte; begin p := Ptr($40, $49); Writeln('Текущим видеорежимом является ', p^); end; Функция Random ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает случайное число. Описание: Random(Range : word) Тип результата: Совпадает с типом параметра. Примечания: Если параметр Range (диапазон) не задан, то результатом будет вещественное число x в диапазоне 0 <= х < 1. Если задан параметр Range, то он должен представлять собой выражение целого типа, а результатом будет случайное число длиной в сло во в диапазоне 0 <= х < N, где N - значение, заданное параметром Range. Если параметр Range меньше или равен нулю, то вовращаемое значение будет равно нулю. Генератор случайных чисел Random должен инициализироваться обращением к процедуре Randomize. Прочее: См. также процедуру Randomize. Пример: uses Crt; begin Randomize; repeat { вывести текст со случайно выбранным цветом } TexAttr := Random(256); Write('!'); until KeyPressed; end. Процедура Randomize ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Инициализирует встроенный генератор случайных чисел случайным значением. Описание: Randomize Примечания: Случайное значение получается от системного таймера. Замечание: Число, получаемое в результате работы генератора случайных чисел, хранится в предописаной переменной с именем RandSeed. Путем присваивания этой переменной конкретного значения можно получать каждый раз заданную последовательность случайны х чисел. Это особено полезно в прикладных задачах, где используется кодирование данных. Прочее: См. также процедуру Random. Процедура Read Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Считывает строку из окна CRT. Описание: ReadBuf(Buffer: PChar; Count: Word) Примечания: Параметр Buffer указывает на буфер строки, который имеет объем до Cunt символов. Может вводиться до Count - 2 символов, а когда пользователь нажимает клавишу Ebnter, к строке автоматически добавляется маркер конца строки (#13 и #10). Есл и ChackEOF имеет значение True, то пользователь может также закончить ввод, нажав клавиши Ctrl+Z. При этом к строке будет присоединяться маркер конца файла (#26). Возвращаемое значение равно числу считанных символов, включая маркер конца строки. Прочее: ReadChar. Процедура Read (текстовые файлы) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Считывает одно или более значений из текстового файла в одну или более переменных. Описание: Read( [ var f : text; ] v1, [, v2,...,vn ] ) Примечания: Параметр f (если он указан) является файловой переменой, соответствующей текстовому файлу. Если он опущен, то подразумевается использование стандартной файловой переменной Input. Каждый параметр v является переменной символьного, строков ого, целого или вещественного типа. В случае строкового типа процедура Rеаd считывает из файла один символ и присваивает его переменной. Если перед выполнением процедуры Rеаd функция Eof(f) принимала значение Truе, то переменной присваивается значение Сhr(26) (символ Сtrl+Z). Если фун кция Eoln(f) принимала истинное значение (Truе), то переменной присваивается значение Сhr(3) (символ возврата каретки). Следующая операция Rеаd начнется со следующего символа в файле. В случае переменной целого типа процедура Rеаd ожидает поступления последовательности символов, образующих число со знаком (см. раздел "Числа" в Главе 1). Любые пробелы, знаки табуляции или метки конца строки, предшествующие числовой строке, пропуск аются. Считывание прекращается при обнаружении первого пробела, символа табуляции или метки конца строки, которые следуют за числовой строкой, или в том случае, если функция Eof(f) принимает значение Truе. Если числовая строка не соответствует ожидаемому формату, то происходит ошибка ввода-вывода. В противном случае переменной присваивается значение. Если функция Eof(f) имела значение Truе перед выполнением процедуры Rеаd, или функция Eof(f) приняла значение Truе при пропуске начальных пробелов, знаков табуляции или меток конца строки, то переменной присваивается нулевое значение. Следующая операция Rеаd начнется с пробела, символа табуляции или метки конца строки, которыми завершилась числовая строка. В случае переменной вещественного типа процедура Rеаd ожидает поступления последовательности символов, которые образуют число, но шестнадцатиричное представление не допускается. Любые пробелы, знаки табуляции или метки конца строки, предшествующие ч исловой строке, пропускаются. Считывание прекращается при обнаружении первого пробела, символа табуляции или метки конца строки, которые следуют за числовой строкой, или в том случае, если функция Eof(f) принимает значение Truе. Если числовая строка не с оответствует ожидаемому формату, то происходит ошибка ввода-вывода. В противном случае переменной присваивается значение. Если функция Eof(f) имела значение Truе перед выполнением процедуры Rеаd, или функция Eof(f) приняла значение Truе при пропуске нача льных пробелов, знаков табуляции или меток конца строки, то переменной присваивается нулевое значение. Следующая операция Rеаd начнется с пробела, символа табуляции или метки конца строки, которыми завершилась числовая строка. В случае переменной строкового типа процедура Rеаd считывает все символы, вплоть до следующей метки конца строки (но не включая ее), или пока функция Eof(f) не примет значение Truе. Переменной присваивается получившаяся в результате символьная строк а. Если длина результирующей строки превышает длину, максимально допустимую для строковой переменной, то она усекается. Следующая операция Rеаd начинается с метки конца строки, которой завершилась предыдущая строка. При разрешении расширенного синтаксиса функцию Read можно использвать для считывания в массивы с нулевой базой строк, завершающихся нулем. При использовании символьного массива вида array[0..N] of Char функция Read считывает до N символов, или пока Eoln(F) или Eof(F) не примут значения True, а затем присоединяет к строке нулевой завершающий символ NULL (#0). При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Процедура Rеаd со строковой переменной не делает после считывания пропуск до следующей строки. Поэтому для считывания последовательности строк нельзя использовать последовательные обращения к процедуре Rеаd, поскольку при этом вы никогд а не перейдете дальше первой строки. После первого обращения к процедуре Rеаd последующие операции Rеаd будут обнаруживать метку конца строки и возвращать строку нулевой длины. Поэтому для считывания последовательности строк используйте обращения к проце дуре Rеаdln. Прочее: См. также процедуры Readln, ReadKey. Процедура Read (типизованные файлы) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Считывает в переменную элемент файла. Описание: Read(f, v1, [, v2,...,vn]) Примечания: Параметр f является файловой переменной, соответствующей любому типу файла, кроме текстового, а каждый элемент v представляет собой переменную того же типа, что и элемент файла f. При каждом считывании в переменную текущая позиция в файл е продвигается к следующему элементу. Попытка считывания следующего элемента файла в тот момент, когда текущая позиция файла находится в конце файла (то есть когда Eof(f) имеет значение Truе) является ошибкой. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Файл должен быть открыт. Прочее: См. также процедуру Write. Функция ReadKey Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Считывает символ с клавиатуры. Описание: ReadKey Тип результата: Символьный (char). Примечания: Считываемый символ не отображается на экране. Функция ReadKey поддерживает только стандартные коды клавиш ASCII. Расширенные кода, такие как коды клавиш перемещения курсора, не поддерживаются. Процедура ReadLn ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выполняет процедуру Rеаd, затем переходит к следующей строке файла. Описание: ReadLn( [ var f : text; ] v1 [, v2,...,vn ] ) Примечания: Процедура RеаdLn является расширением процедуры Rеаd и определена для текстовых файлов. После выполнения процедуры Rеаd процедура RеаdLn делает пропуск до начала следующей строки. Вызов процедуры RеаdLn(f) без параметров приводит к перемещению текущей позиции файла на начало следующей строки (если она имеется, в противном случае происходит переход к концу файла). Функция RеаdLn без списка параметров полностью соответствует об ращению RеаdLn(Input). При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Подпрограмма работает только для текстовых файлов, включая станадартный ввод. Файл должен быть открыт для ввода. Прочее: См. также функцию Read. Процедура RemoveDir Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Удаляет пустой подкаталог. Описание: RemoveDir(Dir : PChar) Примечания: Удаляется подкаталог с маршрутом, заданным параметром Dir. Ошибки (например, несуществующий или ненулевой каталог) можно получить с помощью переменной DosError. Прочее: См. подпрограммы GetCurDir, CreateDir, SetCurDir. Функция RmDir также удаляет пустой подкаталог, но в качестве аргумента воспринимает строку Паскаля, а не строку с завершающим нулем. Процедура Rename ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Переименовывает внешний файл. Описание: Rename(f; NewName : string) Примечания: Параметр f представляет собой файловую переменную, соответствующую любому файловому типу. Параметр NewName (новое имя) является выражением строкового типа. Внешнему файлу, связанному с переменной f, присваивается новое имя, заданное пара метром NewName. Дальнейшие операции с f будут выполняться с внешним файлом с новым именем. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Процедура Rename не должна использоваться для открытого файла. Прочее: См. также процедуру Erase. Процедура Reset ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Открывает существующий файл. Описание: Reset(f [ : file; Size : word ] ) Примечания: Параметр f является файловой переменной, соответствующей любому типу файла. Он должен быть связан с внешним файлом с помощью процедуры Assign. Параметр Size представляет собой необязательное выражение длиной в слово и может указываться т олько в том случае, если f является нетипизованным файлом. Процедура Reset открывает существующий внешний файл, имя которого было присвоено f. Если внешний файл с указанным именем отсутствует, то это является ошибкой. Если файл f уже открыт, то он сначала закрывается, а затем открывается вновь. Текущая пози ция в файле устанавливается на начало файла. Если f было присвоено пустое имя (например, Assign(f'')), то после обращения к процедуре Reset f будет ссылкой на стандартный файл ввода (стандартный описатель 0). Если f - текстовый файл, то он становится доступным только по чтению. После обращения к процедуре Reset Eof(f) принимает значение Truе, если файл пуст, и значение False в противном случае. Если f является нетипизованным файлом, то параметр Size определяет размер записи, который должен использоваться при передаче данных. Если этот параметр опущен, то он подразумевается равным по умолчанию 128 байтам. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. также процедуры Rewrite, Append, Assign, Close, Truncate. Пример: function FileExists(FileName: string) : boolean; { булевская функция, возвращающая значение Truе, если файл существует и значение False в противном случае } var f : file; begin {$I-} Assign(f, FileName); Reset(f); Close(f); {I+} FileExists := (IOResult = 0) and (FileName <> ''); end; { FileExists }; begin if FileExists(ParamStr(1)) then { получить из командной строки имя файла } Writeln('Файл существует'); else Writeln('Файл не найден'); end. Процедура Rewrite ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Создает и открывает новый файл. Описание: Rewrite(f [ : file; Size : word ] ) Примечания: Параметр f является файловой переменной, соответствующей любому типу файла. Он должен быть связан с внешним файлом с помощью процедуры Assign. Параметр Size представляет собой необязательное выражение длиной в слово и может указываться т олько в том случае, если f является нетипизованным файлом. Процедура Rewrite создает новый внешний файл, имя которого присвоено f. Если внешний файл с указанным именем уже существует, то он удаляется и на его месте создается новый пустой файл. Если файл f уже открыт, то он сначала закрывается, а затем откры вается вновь. Текущая позиция в файле устанавливается на начало файла. Если f было присвоено пустое имя (например, Assign(f,'')), то после обращения к процедуре Reset(f) будет ссылкой на стандартный файл ввода (стандартный канал номер 1). Если f - текстовый файл, то он становится доступным только по записи. После обращения к процедуре Rewrite Eof(f) принимает значение Truе, если файл пуст, и значение False в противном случае. Если f является нетипизованным файлом, то параметр Size определяет размер записи, который должен использоваться при передаче данных. Если этот параметр опущен, то он подразумевается равным по умолчанию 128 байтам. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. также процедуры Reset, Append, Assign, Truncate. Пример: var f : text; begin Assign(f,'NEWFILE,$$$'); Writeln(f,'Создается файл, в который записывается эта строка'); Close(f); end. Процедура RmDir ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Удаляет пустой подкаталог. Описание: RmDir(s : string) Примечания: Параметр s является выражением строкового типа. Удаляется подкаталог с путем доступа, заданным строкой s. Если путь доступа не существует, является непустым или если он задает текущий католог, то происходит ошибка ввода-вывода. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. также процедуры MkDir, ChDir, GetDir. Пример: begin {$I-} { получить имя каталога из командной строки } RmDir(ParamStr(1)); if IOResult <> 0 then Writeln('Каталог удалить нельзя'); else Writeln('Каталог удален'); Функция Round ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Округляет значение вещественного типа до значения целого типа. Описание: Round(x : real) Тип результата: Длинный целый (longint). Примечания: Параметр x представляет собой выражение вещественного типа. Функция Round возвращает значение длинного целого типа, которое является значением x, округленным до ближайшего целого числа. Если значение x находится точно посередине между дв умя целыми числами, то результатом будет число с большим обсолютным значением. Если округленное значение x не соответствует диапазону представления длинного целого типа, то во время выполнения происходит ошибка. Прочее: См. также функции Trunc, Int. Процедура RunError ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Останавливает выполнение программы и генерирует ошибку времени выполнения. Описание: RunError [ (ErrCode : word ) ] Примечания: Процедура RunError аналогична процедуре Halt, но в дополнение к остановке программы она генерирует на текущем операторе ошибку времени выполнения. Параметр ErrCode представляет собой номер ошибки времени выполнения (0 опущен). Если текущ ий модуль был скомпилирован с установленным параметром Debug Information (Отладочная информация), и вы запускаете программу из среды интерактивной отладки, то Турбо Паскаль обрабатывает обращение к RunErrorа как обычную ошибку времени выполнения. Прочее: См. также процедуру Halt. Пример: {$IFDEF Debug} if P = nil then RunError(204); {$EDNIF} Функция ScrollTo Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выполняет прокрутку окна CRT для вывода в левом верхнем углу позиции экрана с координатами (X,Y). Описание: ScroolTo(X, Y: Integer) Примечания: Левому верхнему углу экрана соответствует точка с координатами (0,0). Процедра Seek ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Перемещает текущую позицию файла на заданный элемент. Описание: Seek(var F; N: Longint) Примечания: F - это файловая переменная любого типа, за исключением текстового файла, а N - выражение типа Longint. Текущая позиция файла F перемещается на элемент с номером N. Номер первого элемента файла равен 0. Чтобы увеличить файл, можно найти первый элемент после последнего, то есть Seek(F, FileSize(F)) перемещает текущую позицию файла на конец файла. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. функцию FilePos. Функция SeekEof ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает для файла статус "конец файла" (end-of-file). Описание: SeeEof [ (var f : text) ] Тип результата: Булевский (boolean). Примечания: За исключением того, что функция SеекEof пропускает все пробелы, знаки табуляции и метки конца строки, она полностью соответствует функции Eof. Ее полезно использовать при считывании числовых значений из текстового файла. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Функцию можно использовать только для текстовых файлов. Файл должен быть открыт. Прочее: См. также функции Eof, SeekEoln. Функция SeekEoln ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает для файла состояние "конец строки" (end-of-line). Описание: SeekEoln [ (var f : text) ] Тип результата: Булевский (boolean). Примечания: За исключением того, что функция SееkEоln пропускает все пробелы и знаки табуляции, она полностью соответствует функции Eoln. Ее полезно использовать при считывании числовых значений из текстового файла. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Oграничения: Функцию можно использовать только для текстовых файлов. Файл должен быть открыт. Прочее: См. также функции Eoln, SeekEof. Функция Seg ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает сегмент для указанного объекта. Описание: Seg(x) Тип результата: Слово (word). Примечания: Параметр x представляет собой любую переменную или идентификатор процедуры или функции. Результат длиной в слово является адресом сегмента для x. Прочее: См. также функции Ofs, Addr. Процедура SetCBreak Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает проверяемое операционной системой DOS состояние Ctrl+Break. Описание: SetCBreak(Break : boolean) Примечания: Данная процедура устанавливает проверяемое DOS состояние Ctrl+Break. Когда это состояние выключено (False), DOS проверяет Ctrl+Break только во время выполнения ввода-вывода на консоль, устройство печати или порты. Во включенном состоянии (True) проверки выполняются при каждом системном выводе. Прочее: См. также процедуру GetCBreak. Процедура SetCurDir Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Изменяет текущий каталог в соответствии с маршрутом, заданным параметром Dir. Описание: SetCurDir(Dir: PChar) Примечания: Если в Dir задается буквенная метка диска, то изменяется также текущий диск. Ошибки можно получить в DosError. Прочее: См. также подпрограммы GetCurDir, CreateDir, RemoveDir. Процедурая ChDir выполняет те же функции, что и подпрограмма SetCurDir, но воспринимает в качестве аргумента строку Паскаля, а не строку с завершающим нулем. Процедура SetDate Модуль Dos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает текущую дату в операционной системе. Описание: SetDate(var Y, M, D, Dw : word) Примечания: Возвращаемые значения имеют следующие допустимые значения: Y (год) - 1980..2099, M (месяц) - 1..12, D (число) 1..31, Dw (день недели) - 0..6 (где значение 0 соответствует воскресенью). Если дата указана неверно, то запрос игнорируется. Прочее: См. также процедуры GetDate, GetTime, SetTime. Процедура SetFAttr Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает атрибуты файла. Описание: SetAttr(var f; var Attr : byte) Примечания: Параметр f должнен представляеть собой файловую переменную (соответствующую типизованному, нетипизованному или текстовому файлу) для которого должно быть выполнено присваивание файловой переменой, но который не должен быть открыт. Формир ование атрибутов выполняется путем добавления соответствующих масок, заданных в виде констант в модуле Dos: const { константы атрибутов файла } ReadOnly = $01; { только чтение } Hidden = $02; { "скрытый" файл } SysFile = $04; { системный файл } VolumeId = $08; { идентификатор тома } Directory = $10; { каталог } Archive = $20; { архивизация } AnyFile = $3F; { прочий файл } Коды ошибок можно получить с помощью функции DosError. Возможными кодами ошибок являются код 3 (недопустимый маршрут) и код 5 (доступ к файлу отвергнут). Ограничения: Файл не может быть открыт. Прочее: См. также процедуры GetFAttr, GetFTime, SetFTime. Пример: uses Dos; var f : file; begin Assign(f,'C:\AUTOEXEC.BAT'); SetFAttr(f, Hidden); Readln; SetFAttr(f, Archive); end. Процедура SetFTime Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает дату и время последней записи файла. Описание: SetTime(var f; Time : longint) Примечания: Параметр f должен быть файловой переменной, соответствующей типизованному, нетипизованному или текстовому файлу. Параметр Time (время) можно сформировать с помощью обращения к процедуре РасkТiме. Ошибки можно получить с помощью функции D osError. Единственно возможным кодом ошибки является код 6 (недопустимый описатель файла). Ограничения: Файл f должен быть открыт. Прочее: См. также процедуры GetFTime, PackTime, SetFAttr, UnPackTime. Процедура SetIntVec Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает по указанному адресу заданный вектор прерывания. Описание: SetIntVec(IntNum : byte; Vec : pointer) Примечания: Параметр IntNum задает номер вектора прерывания (0...255), а параметр Vec задает его адрес. Чтобы получить адрес процедуры обработки прерываний параметр Vec часто задается с использованием операции @. Предположим, что Int1BSave является переменной типа указатель и Int1BHandler - идентификатор процедуры обработки прерываний. Тогда следующая последовательность операторов новый обработчик прерывания $В1, а затем восстанавливает исходный обработчик прерывания: GetIntVec($1B,Int1BSave); SetIntVec($1b,@Int1BHandler); . . . SetIntVec($1B,Int1BSave); Прочее: См. также процедуру GetIntVec. Процедура SetTextBuf ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Назначает для текстового файла буфер ввода-вывода. Описание: SetTextBuf(var f : text; var Buf [ ; Size : word]) Примечания: Параметр f представляет собой файловую переменную, соответствующую текстовому файлу. Параметр Buf (буфер) - любая переменная, а параметр Size (размер) - необязательное выражение длиной в слово. Каждая файловая переменная для текстового файла имеет внутренний буфер размером в 128 байт, что по умолчанию используется для буферизации операций чтения и записи. Этот буфер подходит для использования во многих прикладных задачах, однако программы, выполняющие значительное количество много операций ввода-вывода (например, задачи, осуществляющие копирование или преобразование текстовых файлов) будут лучше работать с буфером большего размера, поскольку это уменьшает перемещение головки по поверхност и диска и избыточное использование файловой системы. Процедура SetTextBuf переназначает буфер, используемый для текстового файла f: вместо внутреннего буфера файла f используется буфер, заданный параметром Buf. Параметр Size задает размер буфера в байтах. Если этот параметр опущен, то подразумевается использование SizeOf(Buf), то есть по умолчанию в качестве буфера используется вся область памяти, занятая буфером. Новый буфер действует до тех пор, пока для f вновь не выполняется процедура Assign. Ограничения: Данная процедура никогда не должна применяться для открытого файла, хотя вызывать ее можно немедленно вслед за обращением к процедурам Reset, Rewrite и Appеnd. Вызов процедуры SetTextBuf для открытого файла во время выполнения операций ввода -вывода может из-за смены буфера привести к потере данных. Турбо Паскаль не обеспечивает существование буфера на все время выполнения операций ввода-вывода для файла. Общей ошибкой, в частности, является введение качестве буфера локальной переменной и затем использование файла вне процедуры, в которой описы вается буфер. Пример: var f : text; ch : char; buf : char; { буфер 10 К } begin { назначить для файла считывание из командной строки } Assign(f, ParamStr(1)); { ввести для более быстрого чтения буфер большего размера } SetTextBuffer(f, buf); Reset(f); { вывести текстовый файл на экран } while not Eof(f) do begin Read(f, ch); Write(ch); end; end. Процедура SetTime Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает в операционной системе текущее время. Описание: SetTime(var Hour, Min, Sec, Ssec : word) Примечания: Возвращаемые параметры принимают следующие значения: Hour (час) - от 0 до 23, Min (минута) - от 0 до 59, Sec (секунда) - от 0 до 59 и Ssec (сотая доля секунды) - от 0 до 99. Прочее: См. также процедуры GetTime, GetDate, SetDate. Процедура SetVerify Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Устанавливает в DOS состояние флага проверки. Описание: SetVerify(Verify : boolean) Примечания: Процедура SetVerify устанавливает в операционной системе DOS состояние флага проверки. В сброшенном состоянии (False) проверка операций записи на диск не выполняется. В установленном состоянии флага (True) при операциях записи на диск вы полняется поверки правильности выполнения операции. Прочее: См. также процедуру GetVerify. Функция Sin ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает синус аргумента. Описание: Sin(x : real) Тип результата: Вещественный (real). Примечания: Параметр x является выражением вещественного типа. Результатом будет синус x. Предполагается, что это значение задает угол в радианах. Пример: var r : real; begin r := Sin(Yк); end. Функция SizeOf ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает число байт, занимаемых аргументом. Описание: SizeOf(x) Тип результата: Слово (word). Примечания: Параметр x является ссылкой на переменную или идентификатором типа. Данная фунция возвращает число байт памяти, занимаемых x. При передаче значений функциям FillChar, Моvе, GetМем всегда следует использовать функцию SizeOf: FillChar(s, SizeOf(s), 0); GetMem(p, SizeOf(RecordType)); Пример: type CustRec = record Name : string[30]; Phone : string[14]; end; var p : ^CustRec; begin GetMem(p, SizeOf(CustRec)); end. Функция SPtr ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает текущее значение регистра SР. Описание: SPtr : word; Тип результата: Слово (word). Примечания: Результат длиной в слово представляет собой смещение указателя стека внутри сегмента стека. Прочее: См. также функцию Sseg. Функция Sqr ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает квадрат аргумента. Описание: Sqr(x) Тип результата: Совпадает с типом параметра. Примечания: Параметр x представляет собой выражение целого или вещественного типа. Результат, имеющий тот же тип, что и x, представляет собой квадрат x, то есть x*x. Функция Sqrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает квадратный корень аргумента. Описание: Sqrt(x : real) Тип результата: Вещественный (rеаl). Примечания: Параметр x представляет собой выражение вещественного типа. Результатом является квадратный корень x. Функция SSeg ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает текущее значение регистра SS. Описание: SSeg : word Тип результата: Слово (word). Примечания: Результат длиной в слово представляет собой адрес сегмента для сегмента стека. Прочее: См. также функции Sptr, Cseg, Dseg. Процедура Str ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует численное значение в его строковое представление. Описание: Str(х [ : Size [ : Dec ] ], var s : string) Примечания: Параметр x является выражением целого или вещественного типа. Параметры Size и Dec представляют собой выражения целого типа. Параметр s - строковая переменная. Данная функция преобразует x в его строковое представление в соответствии в п араметрами форматирования Size (размер) и Dec. За исключением того, что результирующая строка сохраняется в параметре s, вместо того, чтобы записываться в текстовый файл, результат выполения процедуры будет в точности тот же самый, что и при обращении к стандартной процедуре Write. Прочее: См. также процедуры Val, Write. Пример: function IntToStr(i : longint) : string; { преобразует любое значение целого типа в строку } var s : string[1]; begin Str(i,s); IntToStr := s; end; begin Writeln(IntToSt(-5322)); end. Функция StrCat Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Присоединяет копию одной строки к концу другой строки и возвращает строку, представляющую собой конкатенацию этих строк. Описание: StrCat(Dest, Sourse : PChar) Тип результата: PChar. Примечания: Функция StrCat присоединяет копию строки Source к строке Dest и возвращает результат в Dest. Проверка длины строк не выполняется. Вы должны обеспечить, чтобы в буфере, заданном параметром Dest, было достаточно места (не менее StrLen(Dest ) + StrLen(Source) + 1 символов). Если вы хотите выполнять проверку длины, используйте функцию StrLCat. Прочее: См. функцию StrLCat. Пример: uses Strings, WinCrt; const Turbo: PChar = 'Turbo'; Pascal: PChar = 'Pascal'; var S: array[0..15] of Char; bagin StrCopy(S, Turbo); StrCat(S, PAscal); Writeln(S); end. Функция StrComp Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Сравнивает две строки. Описание: StrComp(Str1, Srtr2: PChar) Тип результата: Integer. Примечания: Функция StrComp сравнивает строку Srt1 со строкой Str2. Если Str1 < Str2, то возвращается значение, меньшее 0, если Str1 = Str2, то возвращается 0, а если Str1 > Str2 - то значение, большее нуля. Прочее: См. также функции StrIComp, StrLComp, StrLIComp. Пример: uses Strings, WinCrt; var C: Integer; Result: PChar; S1, S2: array[0..79] of Char; begin Readln(S1); Readln(S2); C := StrComp(S1, S2); if C < 0 then Result := ' меньше чем ' else if C > 0 then Result := ' больше чем ' else Result := ' равна '; Writeln(S1, Result, S2); end. Функция StrCopy Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует одну строку в другую. Описание: StrCopy(Dest, Source: PChar) Тип результата: PChar. Примечания: Функция StrCopy копирует строку Source в строку Dest и возвращает строку Dest. Никакой проверки длины строк функция StrCopy не выполняет. Вы должны обеспечить, чтобы в буфере, заданном параметром Dest, было достаточно места (не менее Str Len(Source) + 1 символов). Если вы хотите выполнять проверку длины, используйте функцию StrLCat. Прочее: См. также функции StrECopy, StrLCopy. Пример: uses Strings, WinCrt; var S: array[0..15] of Char; begin StrCopy(S, 'Turbo Pascal''); Writeln(S); end. Функция StrECopy Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует одну строку в другую, возвращая указатель на конец полученной в результате строки. Описание: StrCopy(Dest, Source: PChar) Тип результата: PChar. Примечания: Функция StrECopy копирует строку Source в строку Dest и возвращает StrEnd(Dest). Никакой проверки длины строк функция StrECopy не выполняет. Вы должны обеспечить, чтобы в буфере, заданном параметром Dest, было достаточно места (не менее StrLen(Source) + 1 символов). Для конкатенации последовательности строк можно использовать вложенные вызовы StrECopy. Прочее: См. также функции StrCopy, StrEnd. Пример: uses Strings, WinCrt; const Turbo: PChar = 'Turbo'; Pascal: PChar = 'Pascal'; var S: array[0..15] of Char; begin StrECopy(StrECopy(S, Turbo), ' '), Pascal); Writeln(S); end. Функция StrEnd Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает указатель на конец строки. Описание: StrEnd(Str: PChar) Тип результата: PChar. Примечания: Функция StrEnd возвращает указатель на нулевой символ, который завершает строку Str. Прочее: См. также функцию StrLen. Пример: uses Strings, WinCrt; var S: array[0..15] of Char; begin ReadLn(S); Writeln('Длина строки равна ', StrEnd(S) - S); end. Функция StrIComp Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Сравнивает две строки без различия регистров символов. Описание: StrIComp(Str1, Srtr2: PChar) Тип результата: Integer. Примечания: Функция StrIComp сравнивает строку Srt1 со строкой Str2. Если Str1 < Str2, то возвращается значение, меньшее 0, если Str1 = Str2, то возвращается 0, а если Str1 > Str2 - то значение, большее нуля. Прочее: См. также функции StrComp, StrLComp, StrLIComp. Функция StrLCat Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Присоединяет копию одной строки к концу другой строки и возвращает строку, представляющую собой конкатенацию этих строк. Описание: StrLCat(Dest, Sourse : PChar; MaxLen : Word) Тип результата: PChar. Примечания: Функция StrCat присоединяет не более MaxLen - StrLen(Dest) символов строки Source к концу строки Dest и возвращает результат в Dest. Для определения параметра MaxLen можно использовать функцию SizeOf (это показано в приведенном ниже прим ере). Прочее: См. функцию StrCat. Пример: uses Strings, WinCrt; var S: array[0..15] of Char; begin StrLCopy(S, 'Turbo', SizeOf(S) - 1); StrLCopy(S, ' ', SizeOf(S) - 1); StrLCopy(S, 'Turbo', SizeOf(S) - 1); Writeln(S); end. Функция StrLComp Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Сравнивает две строки до максимальной длины. Описание: StrComp(Str1, Srtr2: PChar; MaxLen : Word) Тип результата: Integer. Примечания: Функция StrComp сравнивает строку Srt1 со строкой Str2 до максимальной длины MaxLen символов. Если Str1 < Str2, то возвращается значение, меньшее 0, если Str1 = Str2, то возвращается 0, а если Str1 > Str2 - то значение, большее нуля. Прочее: См. также функции StrIComp, StrComp, StrLIComp. Пример: uses Strings, WinCrt; var C: Integer; Result: PChar; S1, S2: array[0..79] of Char; begin Readln(S1); Readln(S2); if StrLComp(S1, S2, 5) = 0 then Result := ' равны' else Result := ' различны': Writeln('Первые пять символов ', Result); end. Функция StrLCopy Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует одну строку в другую. Описание: StrCopy(Dest, Source: PChar; MaxLen: Word) Тип результата: PChar. Примечания: Функция StrCopy копирует не более MaxLen символов из строки Source в строку Dest и возвращает строку Dest. Для определения параметра MaxLen можно использовать функцию SizeOf (это показано в приведенном ниже примере). Прочее: См. также функции StrECopy, StrCopy. Пример: uses Strings, WinCrt; var S: array[0..15] of Char; begin StrCopy(S, 'Turbo Pascal' SizeOf(S) - 1); Writeln(S); end. Функция StrLIComp Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Сравнивает две строки до максимальной длины без различия регистров символов. Описание: StrComp(Str1, Srtr2: PChar; MaxLen : Word) Тип результата: Integer. Примечания: Функция StrComp сравнивает строку Srt1 со строкой Str2 до максимальной длины MaxLen символов. Если Str1 < Str2, то возвращается значение, меньшее 0, если Str1 = Str2, то возвращается 0, а если Str1 > Str2 - то значение, большее нуля. Прочее: См. также функции StrIComp, StrComp, StrLComp. Пример: uses Strings, WinCrt; var C: Integer; Result: PChar; S1, S2: array[0..79] of Char; begin Readln(S1); Readln(S2); if StrLComp(S1, S2, 5) = 0 then Result := ' равны' else Result := ' различны': Writeln('Первые пять символов ', Result); end. Функция StrLower Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует строку в нижний регистр. Описание: StrLower(Str : PChar) Тип результата: PChar. Примечания: Функция StrLower преобразует строку Str в нижний регистр и возвращает строку Srt. Прочее: См. также функцию StrUpper. Пример: uses Strings, WinCrt; var S: array[0..79] of Char; begin Readln(S); Writeln(StrLower(S)); Writeln(StrUpper(S)); end. Функция StrMove Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует символы из одной строки в другую. Описание: StrCopy(Dest, Source: PChar; Count: Word) Тип результата: PChar. Примечания: Функция StrMove копирует Count символов из строки Source в строку Dest и возвращает строку Dest. Строки Source и Dest могут перекрываться. Прочее: См. также функции StrECopy, StrCopy. Пример: { строка равпределяется в динамически распределяемой памяти } function StrNew(S: PChar): PChar; var L: Word; F: PChar; begin if (S = nil) or (S^ = #0) then StrNew := nil else begin L := StrLen(S) + 1; GetMem(P, L); StrNew := StrMove(P, S, L); end; end; { освободить память, выделенную для строки в динамически распределяемой памяти } procedure StrDispose(S: PChar); begin if S <> nil then FreeMem(S, StrLen(S) + 1); end; Функция StrNew Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выделяет память для строки в динамически распределяемой области памяти. Описание: StrNew(Str: PChar) Тип результата: PChar. Примечания: Функция StrNew распределяет копию строки в динамически распределяемой области памяти. Если Str равно nil или указывает на пустую строку, то функция StrNew возвращает значение nil и не выделяет память в динамически распределяемой области. В противном случае функция StrNew делает копию строки Str, выделяя память с помощью вызова стандартной процедуры GetMem и возвращает указатель на строку-результат. Размер выделяемой области памяти равен StrLen(Str) + 1 байт. Прочее: См. StrDispose. Пример: uses Strings, WinCrt; var P: PChar; S: array[0..79] of Char; begin Readln(S); P : SrtNew(S); Writeln(P); StrDispose(P); end. Функция StrPas Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует строку, завершающуюся нулем, в строку Паскаля. Описание: StrPas(Str: PChar) Тип результата: PChar. Примечания: Функция StrPas преобразует строку Str в стандартную строку Паскаля. Прочее: См. StrPCopy. Пример: uses Strings, WinCrt; var S: string[79]; S: array[0..79] of Char; begin Readln(A); S : SrtPas(A); Writeln(S); end. Функция StrPCopy Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Копирует одну строку в другую. Описание: StrPCopy(Dest: PChar; Source: String) Тип результата: PChar. Примечания: Функция StrCopy копирует строку в формате Паскаля Source в строку Dest и возвращает строку Dest. Вы должны обеспечить, чтобы в буфере, заданном параметром Dest, было достаточно места (не менее StrLen(Source) + 1 символов). Если вы хотите выполнять проверку длины, используйте функцию StrLCat. Прочее: См. также функции StrCopy. Пример: uses Strings, WinCrt; var A: array[0..15] of Char; S: string[79]; begin Readln(S); StrPCopy(A, S); Writeln(A); end. Функция StrPos Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает указатель на первое вхождение строки в другую строку. Описание: StrPos(Str1, Str2: PChar) Тип результата: PChar. Примечания: Функция StrPos возвращает указатель на первое вхождение строки Str2 в Str1. Если строка Str2 не содержится в строке Str1, то StrPos возвращает значение nil. Пример: uses Strings, WinCrt; var P: PChar; S, SubStr array[0..79] of Char; begin Readln(S); Readln(SubStr); P := StrPos(S, SubStr) if P = nil then Writeln('Подстрока не найдена'); else Writeln('Подстрока найдена в позиции ', P-S); end. Функция StrRScan Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает указатель на последнее вхождение символа в строку. Описание: StrRScan(Str: PChar; Chr: Char) Тип результата: PChar. Примечания: Функция StrRScan возвращает указатель на последнее вхождение символа Chr в строку Str. Если символ Chr не содержится в строке Str, то StrRScan возвращает значение nil. Нулевой завершающий символ рассматривается как часть строки. Прочее: См. также функции StrCopy. Пример: { возвращает указатель имя файла в полном имени маршрута } function NamePart(FileName: PChar); var P: PChar; begin P := StrRScan(FileName, '\'); if P = nil then P := FileName; end; NamePart := P; end. Функция StrScan Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает указатель на первое вхождение символа в строку. Описание: StrScan(Str: PChar: Chr: Char) Тип результата: PChar. Примечания: Функция StrScan возвращает указатель на первое вхождение символа Chr в Str. Если символ Chr не содержится в строке Str, то StrScan возвращает значение nil. Нулевой завершающий символ рассматривается как часть строки. Прочее: См. StrScan. Пример: { возвращает истинное значение, если имя файла содержит трафаретные символы } function RHasWildcards(FileName: PChar): Boolean; begin HasWildcards := (StrScan(FileName, '*') <> nil) or (StrScan(FileName, '?') <> nil); end; Функция StrUpper Модуль Strings ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует строку в верхний регистр. Описание: StrUpper(Str : PChar) Тип результата: PChar. Примечания: Функция StrUpper преобразует строку Str в верхний регистр и возвращает строку Srt. Прочее: См. также функцию StrUpper. Пример: uses Strings, WinCrt; var S: array[0..79] of Char; begin Readln(S); Writeln(StrLower(S)); Writeln(StrUpper(S)); end. Функция Succ ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает следующее значение аргумента. Описание: Succ(x) Тип результата: Совпадает с типом параметра. Примечания: Параметр x - выражение перечислимого типа. Результат, имеющий тот же тип, что и x, является следующим элементом x. Прочее: См. также функции Pred, Inc. Функция Swap ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Переставляет местами старший и младший байты аргумента. Описание: Swap(x) Тип результата: Совпадает с типом параметра. Примечания: Параметр x - выражение целого типа или слово. Прочее: См. также функции Hi, Lo. Пример: var x : word; begin x := Swap($1234); { $3412 } end. Функция TrackCursor ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Прокручивает окно CRT для обеспечения видимости курсора. Описание: TrackCursor Функция Trunc ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Округляет значение вещественного типа до значения целого типа. Описание: Trunc(x : real) Тип результата: Длинный целый (longint). Примечания: Параметр x представляет собой выражение вещественного типа. Функция Round возвращает значение длинного целого типа, которое является значением x, округленным в сторону нуля. Ограничения: Если округленное значение x не соответствует диапазону представления длинного целого типа, то происходит ошибка этапа выполнения. Прочее: См. также функции Round, Int. Процедура Truncate ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Усекает размер файла до текущей позиции в файле. Описание: Truncate(f) Примечания: Параметр f является файловой переменной любого типа. Все записи после текущей позиции в файле f удаляются и текущая позиция в файле становится концом файла (функция Eof(f) принимает значение True). При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Файл f должен быть открыт. См. также процедуры Seek, Reset, Rewrite. Процедура UnpackTime Модуль WinDos ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует четырехбайтовое значение, представляющее собой упакованный длинный целый тип представления даты и времени, возвращаемый процедурами GetTime, FindFirst и FindNext, в распакованную запись TDateTime (дата и время) Описание: UnpackTime(Time : longint; var Date : Time : longint; var DT : TDateTime) Примечания: Запись TDateTime описана в модуле WinDos следующим образом: TDateTime = record Year, Month, Day, Hour, Min, Sec, : word; end; Для полей данной записи не выполняется проверка на правильность границ. Прочее: См. также процедуры PackTime, GetFTime, SetFTime, GetTime, SetTime. Функция UpCase ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует символ в прописную букву (в врехний регистр). Описание: UpCase(Ch : char) Примечания: Параметр Ch представляет собой выражение символьного типа. Результатом символьного типа будет символ, задаваемый параметром Ch, преобразованный в прописной символ. Значения символов, не лежащие в диапазоне а...z, остаются без изменений. Процедура Val ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Преобразует строковое значение в его численное представление. Описание: Val(s : var V; var Code : integer) Примечания: Параметр s представляет собой выражение типа PChar. Параметр V - это переменная целого или вещественного типа. Параметр Code - это переменная целого типа, которая формирует все число со знаком. Параметр s должен представлять собой послед овательность символов в виде полного числа со знаком (синтаксис показан в Главе 1 в разделе "Числа"). Функция Val преобразует строку s в ее численное представление и сохраняет результат в V. Если где-либо в строке встречается недопустимый символ, то его номер сохраняется в параметре Code. В противном случае этот параметр равен нулю. Для строк с завершающим нулем позиция ошибки, возвращаемая в Code, на 1 больше фактический индекс (считая с нуля) ошибочного символа. В зависимости от состояния {$R} и типа параметра V функция Val по-разному выполняет проверку диапазона. В зависимости от состояния {$R} и типа параметра V функция Val выполняет проверку диапазона по-разному. Если состояние проверки диапазона установлено, то есть задано {$R+}, то выражения, выходящие за границу диапазона, всегда будут генерировать ошибку времени выполнения. Если состояние проверки диапазона сброшено, то есть задано {$R-}, то выражения, в ыходящие за границу диапазона, будут вызываеть эффект, зависящий от их типа. Если V имеет тип real или longint, то значение V становится неопределенным и в параметре Code возвращается ненулевое значение. Для любого другого числового типа в параметре Code возвращается нулевое значение, а V будет содержать результат вычислений с переполнением (если предположить, что строковое значение попадает в диапазон представления длинного целого). Таким образом, вы можете передавать функции Val переменную длинного целого типа (longint) и перед тем, как присваивать полученное значение, выполнять проверку диапазона. Например: {$R-} Val('65536', LongIntVar, Code); if (Code <>0) or (LOngIntVar < 0) or (LongIntVar > 65535) then ... { ошибка } else WordVar := LongIntVar; В данном примере LongIntVal будет установлено в значение 65536, a Code будет равно 0. Поскольку для переменгной типа Word значение 65536 выходит за границу диапазона, то будет сообщаться об ошибке. Ограничения: Конечные пробелы должны быть удалены. Прочее: См. также процедуру Str. Пример: var i, code : integer; begin { получить текст из командной строки } Val(ParamStr(1), i, code); { ошибка при преобразовании в целое значение? } if code <> 0 then Writeln('Ошибка в позиции :', code); else Writeln('Значение = ', i); end. Функция WhereX Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает для текущей позиции курсора координату Х. Описание: WhereX Тип результата: Байт (byte). Примечания: Возвращаемое значение отсчитывается от 1 и соответствует Cursor,X+1. Функция WhereY Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Возвращает для текущей позиции курсора координату Y. Описание: WhereY Тип результата: Байт (byte). Примечания: Возвращаемое значение отсчитывается от 1 и соответствует Cursor,Y+1. Процедура Write (текстовые файлы) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Записывает одно или более значений из одной или более переменных в текстовый файл. Описание: Write( [var f : text; ] v1 [, v2,...,vn] ) Примечания: Параметр f (если он указан) является файловой переменой, соответствующей текстовому файлу. Если он опущен, то подразумевается использование стандартной файловой переменной Output. Каждый параметр v является записываемым параметром. Кажды й записываемый параметр включает в себя выводимое выражение, значение которого должно быть записано в файл. Каждое выводимое выражение должно быть символьного, целого, вещественного, строкового, упакованого строкового или булевского типа. Записываемый параметр имеет вид: вывод_выраж [ : мин_разм [ : дес_знак ]] где "вывод_выраж" представляет собой выводимое выражение, а "мин_ разм" и "дес_знак" и являются выражениями целого типа. "мин_разм" задает минимальную ширину поля, которая должна быть больше нуля. Если "вывод_выраж" имеет значение, которое должно быть п редставлено числом символов, превышающим задаваемое параметром "мин_разм", то записывается ровно столько символов, сколько определено в параметре "мин_разм" (при необходимости используются лидирующие пробелы). В этом случае, чтобы представить значение "в ывод_выраж", записывается достаточное количество символов. Аналогично, если параметр "мин_разм" опущен, то для того, чтобы представить значение "вывод_выраж", записывается достаточное количество символов. Параметр "дес_знак" задает число десятичных знаков в представлении вещественного значения с фиксированной точкой. Оно может указываться только в том случае, если "вывод_выраж" имеет вещественный тип, а также указан параметр "мин_разм". Если параметр "мин_разм" указан, то он должен быть больше нуля или равен нулю. Что касается записи символьного значения (Char), то, если параметр "мин_разм" опущен, в файл записывается символьное выражение "вывод_выраж". В противном случае значение параметра "мин_разм" - 1 определяет запись пробелов и далее символьного значения "вывод_выраж". При записи целочисленного значения (Integer), если опущен параметр "мин_разм", то десятичное представление "вывод_выраж" записывается в файл без предшествующих пробелов. Если параметр "мин_разм" уазывается и его значение превышает длину десятичной с троки, то перед десятичной строкой записывается количество пробелов, достаточное для того, чтобы длина десятичной строки соответствовала параметру "мин_разм". При записи вещественного значения (Real), в файл записывается десятичное представление вещественного значения "вывод_выраж". Формат представления зависит от наличия или отсутствия параметра "дес_знак". Если параметр "дес_знак" опущен (или если он присутствует, но имеет отрицательное значение), то записывается десятичная строка с плавающей точкой. Если параметр "мин_разм" также опущен, то по умолчанию он подразмевается равным 17. В противном случае , если параметр "мин_разм" меньше 8, то его значение подразумевается равным 8. Десятичная строка с плавающей точкой имеет следующий формат: [!-] <цифра>.<десят_знаки>Е[+!-<показатель_степени>] Элементы выводимой строки приведены в Таблице 24.1. Элементы выводимой строки Таблица 24.1 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД [!-] Знак, соответствующий знаку "вывод-выраж" <цифра> Отдельная цифра или ноль (в том случае, когда "вывод_выраж" равно 0. <десят_знаки> Цифровая строка длиной "мин_разм"-7 (но не более 10 цифр). Е Прописной символ [Е]. [+!-] Знак, соответствующий знаку экспоненты. <показатель_степени> Десятичный показатель степени из двух цифр. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если присутствует параметр "дес_знак", то записывается десятичная строка с фиксированной точкой. Если значение данного параметра превышает 20, то оно считается равным 20. Строка с фиксированной точкой имеет следующий формат: [<пробелы>][-]<цифры>[.<десят_знаки>] Элементы строки с фиксированной точкой приведены в Таблице 24.2. Элементы строки с фиксированной точкой Таблица 24.2 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД [.<пробелы>] Пробелы (чтобы длины строки соответствовала параметру "мин_разм". [-] Знак -, если "вывод_выраж" отрицательно. <цифры> По крайней мере одна цифра. Начальные нули не допускаются. <.десят_знаки> Десятичные знаки, если параметр "дес_знак" больше нуля. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Запись значения строкового типа производится следующим образом. Если параметр "мин_разм" опущен, то в файл записывается строковое значение "вывод_выраж", а предшествующие пробелы отсутствуют. Если указан параметр "мин_разм" и его значение превышает длину "вывод_выраж", то перед десятичной строкой для того, чтобы ее длина соответствовала параметру "мин_разм", записывается достаточное количество пробелов. При записи значения упакованного строкового типа, эффект будет тем же самым, что и при записи строки, длина которой соответствует числу элементов в выражении упакованного строкового типа. При записи булевского значения Boolean выполняются такие же действия, как при записи строк Truе или False, в зависимости от значения "вывод_выраж". При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Ограничения: Файл должен быть открыт для вывода. Прочее: См. также процедуру Writeln. Процедура Write (типизованные файлы) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Записывает переменную в элемент файла. Описание: Write(f, v1 [, v2,...,vn] ) Примечания: Параметр f является файловой переменной, а каждый элемент v представляет собой переменную того же типа, что и элемент файла f. При каждой записи переменной текущая позиция в файле продвигается к следующему элементу. Если текущая позиция файла находится в конце файла (то есть когда Eof(f) имеет значение Truе), то файл расширяется. При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае. Прочее: См. также процедуру Writeln. Процедура WriteBuf Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выводитт блок символов в окно CRT. Описание: WriteBuf(Buffer: PChar; Count: Word) Примечания: Параметр Buffer указывает на первый символ в блоке, а Count содержит число выводимых символов. Если AutoTracking имеет значение True, то окно CRT для обеспечения видимости курсора после вывода блока символов прокручивается. Процедура WriteChar Модуль WinCrt ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выполняет запись одиночного символа в окно CRT. Описание: WriteChar(Ch: Char) Примечания: С помощью вызова процедуры WriteBuf(@Ch, 1) записывает в окно CRT символ Ch в текущей позиции курсора. Прочее: См. WriteBuf. Процедура Writeln ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Назначение: Выполняет процедуру Write, а затем записывает в файл метку конца строки. Описание: Writeln( [ var f : text; ] v1, [, v2,...,vn]) Примечания: Данная процедура является расширением процедуры Write для текстовых файлов. После выполнения процедуры Write процедура Writeln записывает метку конца строки (возврат каретки / перевод строки). При вызове данной процедуры без параметров (Write(f)), в файл записывается метка конца строки. (Процедура Writeln без указания списка параметров полностью соответствует процедуре Writeln(Output)). Ограничения: Файл должен быть открыт для вывода. Прочее: См. также процедуру Write. |