forked from KolibriOS/kolibrios
312 lines
15 KiB
Plaintext
312 lines
15 KiB
Plaintext
|
==============================================================================
|
|||
|
|
|||
|
Библиотека (Windows)
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE Out - консольный вывод
|
|||
|
|
|||
|
PROCEDURE Open
|
|||
|
открывает консольный вывод
|
|||
|
|
|||
|
PROCEDURE Int(x, width: INTEGER)
|
|||
|
вывод целого числа x;
|
|||
|
width - количество знакомест, используемых для вывода
|
|||
|
|
|||
|
PROCEDURE Real(x: REAL; width: INTEGER)
|
|||
|
вывод вещественного числа x в плавающем формате;
|
|||
|
width - количество знакомест, используемых для вывода
|
|||
|
|
|||
|
PROCEDURE Char(x: CHAR)
|
|||
|
вывод символа x
|
|||
|
|
|||
|
PROCEDURE FixReal(x: REAL; width, p: INTEGER)
|
|||
|
вывод вещественного числа x в фиксированном формате;
|
|||
|
width - количество знакомест, используемых для вывода;
|
|||
|
p - количество знаков после десятичной точки
|
|||
|
|
|||
|
PROCEDURE Ln
|
|||
|
переход на следующую строку
|
|||
|
|
|||
|
PROCEDURE String(s: ARRAY OF CHAR)
|
|||
|
вывод строки s (ASCII)
|
|||
|
|
|||
|
PROCEDURE StringW(s: ARRAY OF WCHAR)
|
|||
|
вывод строки s (UTF-16)
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE In - консольный ввод
|
|||
|
|
|||
|
VAR Done: BOOLEAN
|
|||
|
принимает значение TRUE в случае успешного выполнения
|
|||
|
операции ввода и FALSE в противном случае
|
|||
|
|
|||
|
PROCEDURE Open
|
|||
|
открывает консольный ввод,
|
|||
|
также присваивает переменной Done значение TRUE
|
|||
|
|
|||
|
PROCEDURE Int(VAR x: INTEGER)
|
|||
|
ввод числа типа INTEGER
|
|||
|
|
|||
|
PROCEDURE Char(VAR x: CHAR)
|
|||
|
ввод символа
|
|||
|
|
|||
|
PROCEDURE Real(VAR x: REAL)
|
|||
|
ввод числа типа REAL
|
|||
|
|
|||
|
PROCEDURE String(VAR s: ARRAY OF CHAR)
|
|||
|
ввод строки
|
|||
|
|
|||
|
PROCEDURE Ln
|
|||
|
ожидание нажатия ENTER
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE Console - дополнительные процедуры консольного вывода
|
|||
|
|
|||
|
CONST
|
|||
|
|
|||
|
Следующие константы определяют цвет консольного вывода
|
|||
|
|
|||
|
Black = 0 Blue = 1 Green = 2
|
|||
|
Cyan = 3 Red = 4 Magenta = 5
|
|||
|
Brown = 6 LightGray = 7 DarkGray = 8
|
|||
|
LightBlue = 9 LightGreen = 10 LightCyan = 11
|
|||
|
LightRed = 12 LightMagenta = 13 Yellow = 14
|
|||
|
White = 15
|
|||
|
|
|||
|
PROCEDURE Cls
|
|||
|
очистка окна консоли
|
|||
|
|
|||
|
PROCEDURE SetColor(FColor, BColor: INTEGER)
|
|||
|
установка цвета консольного вывода: FColor - цвет текста,
|
|||
|
BColor - цвет фона, возможные значения - вышеперечисленные
|
|||
|
константы
|
|||
|
|
|||
|
PROCEDURE SetCursor(x, y: INTEGER)
|
|||
|
установка курсора консоли в позицию (x, y)
|
|||
|
|
|||
|
PROCEDURE GetCursor(VAR x, y: INTEGER)
|
|||
|
записывает в параметры текущие координаты курсора консоли
|
|||
|
|
|||
|
PROCEDURE GetCursorX(): INTEGER
|
|||
|
возвращает текущую x-координату курсора консоли
|
|||
|
|
|||
|
PROCEDURE GetCursorY(): INTEGER
|
|||
|
возвращает текущую y-координату курсора консоли
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE Math - математические функции
|
|||
|
|
|||
|
CONST
|
|||
|
|
|||
|
pi = 3.141592653589793E+00
|
|||
|
e = 2.718281828459045E+00
|
|||
|
|
|||
|
PROCEDURE IsNan(x: REAL): BOOLEAN
|
|||
|
возвращает TRUE, если x - не число
|
|||
|
|
|||
|
PROCEDURE IsInf(x: REAL): BOOLEAN
|
|||
|
возвращает TRUE, если x - бесконечность
|
|||
|
|
|||
|
PROCEDURE sqrt(x: REAL): REAL
|
|||
|
квадратный корень x
|
|||
|
|
|||
|
PROCEDURE exp(x: REAL): REAL
|
|||
|
экспонента x
|
|||
|
|
|||
|
PROCEDURE ln(x: REAL): REAL
|
|||
|
натуральный логарифм x
|
|||
|
|
|||
|
PROCEDURE sin(x: REAL): REAL
|
|||
|
синус x
|
|||
|
|
|||
|
PROCEDURE cos(x: REAL): REAL
|
|||
|
косинус x
|
|||
|
|
|||
|
PROCEDURE tan(x: REAL): REAL
|
|||
|
тангенс x
|
|||
|
|
|||
|
PROCEDURE arcsin(x: REAL): REAL
|
|||
|
арксинус x
|
|||
|
|
|||
|
PROCEDURE arccos(x: REAL): REAL
|
|||
|
арккосинус x
|
|||
|
|
|||
|
PROCEDURE arctan(x: REAL): REAL
|
|||
|
арктангенс x
|
|||
|
|
|||
|
PROCEDURE arctan2(y, x: REAL): REAL
|
|||
|
арктангенс y/x
|
|||
|
|
|||
|
PROCEDURE power(base, exponent: REAL): REAL
|
|||
|
возведение числа base в степень exponent
|
|||
|
|
|||
|
PROCEDURE log(base, x: REAL): REAL
|
|||
|
логарифм x по основанию base
|
|||
|
|
|||
|
PROCEDURE sinh(x: REAL): REAL
|
|||
|
гиперболический синус x
|
|||
|
|
|||
|
PROCEDURE cosh(x: REAL): REAL
|
|||
|
гиперболический косинус x
|
|||
|
|
|||
|
PROCEDURE tanh(x: REAL): REAL
|
|||
|
гиперболический тангенс x
|
|||
|
|
|||
|
PROCEDURE arsinh(x: REAL): REAL
|
|||
|
обратный гиперболический синус x
|
|||
|
|
|||
|
PROCEDURE arcosh(x: REAL): REAL
|
|||
|
обратный гиперболический косинус x
|
|||
|
|
|||
|
PROCEDURE artanh(x: REAL): REAL
|
|||
|
обратный гиперболический тангенс x
|
|||
|
|
|||
|
PROCEDURE round(x: REAL): REAL
|
|||
|
округление x до ближайшего целого
|
|||
|
|
|||
|
PROCEDURE frac(x: REAL): REAL;
|
|||
|
дробная часть числа x
|
|||
|
|
|||
|
PROCEDURE floor(x: REAL): REAL
|
|||
|
наибольшее целое число (представление как REAL),
|
|||
|
не больше x: floor(1.2) = 1.0
|
|||
|
|
|||
|
PROCEDURE ceil(x: REAL): REAL
|
|||
|
наименьшее целое число (представление как REAL),
|
|||
|
не меньше x: ceil(1.2) = 2.0
|
|||
|
|
|||
|
PROCEDURE sgn(x: REAL): INTEGER
|
|||
|
если x > 0 возвращает 1
|
|||
|
если x < 0 возвращает -1
|
|||
|
если x = 0 возвращает 0
|
|||
|
|
|||
|
PROCEDURE fact(n: INTEGER): REAL
|
|||
|
факториал n
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE File - работа с файловой системой
|
|||
|
|
|||
|
CONST
|
|||
|
|
|||
|
OPEN_R = 0
|
|||
|
OPEN_W = 1
|
|||
|
OPEN_RW = 2
|
|||
|
|
|||
|
SEEK_BEG = 0
|
|||
|
SEEK_CUR = 1
|
|||
|
SEEK_END = 2
|
|||
|
|
|||
|
PROCEDURE Create(FName: ARRAY OF CHAR): INTEGER
|
|||
|
создает новый файл с именем FName (полное имя с путем),
|
|||
|
открывет файл для записи и возвращает идентификатор файла
|
|||
|
(целое число), в случае ошибки, возвращает -1
|
|||
|
|
|||
|
PROCEDURE Open(FName: ARRAY OF CHAR; Mode: INTEGER): INTEGER
|
|||
|
открывает существующий файл с именем FName (полное имя с
|
|||
|
путем) в режиме Mode = (OPEN_R (только чтение), OPEN_W
|
|||
|
(только запись), OPEN_RW (чтение и запись)), возвращает
|
|||
|
идентификатор файла (целое число), в случае ошибки,
|
|||
|
возвращает -1
|
|||
|
|
|||
|
PROCEDURE Read(F, Buffer, Count: INTEGER): INTEGER
|
|||
|
Читает данные из файла в память. F - числовой идентификатор
|
|||
|
файла, Buffer - адрес области памяти, Count - количество байт,
|
|||
|
которое требуется прочитать из файла; возвращает количество
|
|||
|
байт, которое было прочитано из файла
|
|||
|
|
|||
|
PROCEDURE Write(F, Buffer, Count: INTEGER): INTEGER
|
|||
|
Записывает данные из памяти в файл. F - числовой идентификатор
|
|||
|
файла, Buffer - адрес области памяти, Count - количество байт,
|
|||
|
которое требуется записать в файл; возвращает количество байт,
|
|||
|
которое было записано в файл
|
|||
|
|
|||
|
PROCEDURE Seek(F, Offset, Origin: INTEGER): INTEGER
|
|||
|
устанавливает позицию чтения-записи файла с идентификатором F
|
|||
|
на Offset, относительно Origin = (SEEK_BEG - начало файла,
|
|||
|
SEEK_CUR - текущая позиция, SEEK_END - конец файла),
|
|||
|
возвращает позицию относительно начала файла, например:
|
|||
|
Seek(F, 0, 2) - устанавливает позицию на конец файла и
|
|||
|
возвращает длину файла; при ошибке возвращает -1
|
|||
|
|
|||
|
PROCEDURE Close(F: INTEGER)
|
|||
|
закрывает ранее открытый файл с идентификатором F
|
|||
|
|
|||
|
PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
|
|||
|
удаляет файл с именем FName (полное имя с путем),
|
|||
|
возвращает TRUE, если файл успешно удален
|
|||
|
|
|||
|
PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
|
|||
|
возвращает TRUE, если файл с именем FName (полное имя)
|
|||
|
существует
|
|||
|
|
|||
|
PROCEDURE Load(FName: ARRAY OF CHAR; VAR Size: INTEGER): INTEGER
|
|||
|
загружает в память существующий файл с именем FName (полное имя с
|
|||
|
путем), возвращает адрес памяти, куда был загружен файл,
|
|||
|
записывает размер файла в параметр Size;
|
|||
|
при ошибке возвращает 0
|
|||
|
|
|||
|
PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
|
|||
|
создает папку с именем DirName, все промежуточные папки
|
|||
|
должны существовать. В случае ошибки, возвращает FALSE
|
|||
|
|
|||
|
PROCEDURE RemoveDir(DirName: ARRAY OF CHAR): BOOLEAN
|
|||
|
удаляет пустую папку с именем DirName. В случае ошибки,
|
|||
|
возвращает FALSE
|
|||
|
|
|||
|
PROCEDURE ExistsDir(DirName: ARRAY OF CHAR): BOOLEAN
|
|||
|
возвращает TRUE, если папка с именем DirName существует
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE DateTime - дата, время
|
|||
|
|
|||
|
CONST ERR = -7.0E5
|
|||
|
|
|||
|
PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec, MSec: INTEGER)
|
|||
|
возвращает в параметрах компоненты текущей системной даты и
|
|||
|
времени
|
|||
|
|
|||
|
PROCEDURE NowEncode(): REAL;
|
|||
|
возвращает текущую системную дату и
|
|||
|
время (представление REAL)
|
|||
|
|
|||
|
PROCEDURE Encode(Year, Month, Day,
|
|||
|
Hour, Min, Sec, MSec: INTEGER): REAL
|
|||
|
возвращает дату, полученную из компонентов
|
|||
|
Year, Month, Day, Hour, Min, Sec, MSec;
|
|||
|
при ошибке возвращает константу ERR = -7.0E5
|
|||
|
|
|||
|
PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
|
|||
|
Hour, Min, Sec, MSec: INTEGER): BOOLEAN
|
|||
|
извлекает компоненты
|
|||
|
Year, Month, Day, Hour, Min, Sec, MSec из даты Date;
|
|||
|
при ошибке возвращает FALSE
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE Args - параметры программы
|
|||
|
|
|||
|
VAR argc: INTEGER
|
|||
|
количество параметров программы, включая имя
|
|||
|
исполняемого файла
|
|||
|
|
|||
|
PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
|
|||
|
записывает в строку s n-й параметр программы,
|
|||
|
нумерация параметров от 0 до argc - 1,
|
|||
|
нулевой параметр -- имя исполняемого файла
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE Utils - разное
|
|||
|
|
|||
|
PROCEDURE Utf8To16(source: ARRAY OF CHAR;
|
|||
|
VAR dest: ARRAY OF CHAR): INTEGER;
|
|||
|
преобразует символы строки source из кодировки UTF-8 в
|
|||
|
кодировку UTF-16, результат записывает в строку dest,
|
|||
|
возвращает количество 16-битных символов, записанных в dest
|
|||
|
|
|||
|
PROCEDURE PutSeed(seed: INTEGER)
|
|||
|
Инициализация генератора случайных чисел целым числом seed
|
|||
|
|
|||
|
PROCEDURE Rnd(range: INTEGER): INTEGER
|
|||
|
Целые случайные числа в диапазоне 0 <= x < range
|
|||
|
|
|||
|
------------------------------------------------------------------------------
|
|||
|
MODULE WINAPI - привязки к некоторым API-функциям Windows
|