WinLib.txt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. ==============================================================================
  2. Библиотека (Windows)
  3. ------------------------------------------------------------------------------
  4. MODULE Out - консольный вывод
  5. PROCEDURE Open
  6. открывает консольный вывод
  7. PROCEDURE Int(x, width: INTEGER)
  8. вывод целого числа x;
  9. width - количество знакомест, используемых для вывода
  10. PROCEDURE Real(x: REAL; width: INTEGER)
  11. вывод вещественного числа x в плавающем формате;
  12. width - количество знакомест, используемых для вывода
  13. PROCEDURE Char(x: CHAR)
  14. вывод символа x
  15. PROCEDURE FixReal(x: REAL; width, p: INTEGER)
  16. вывод вещественного числа x в фиксированном формате;
  17. width - количество знакомест, используемых для вывода;
  18. p - количество знаков после десятичной точки
  19. PROCEDURE Ln
  20. переход на следующую строку
  21. PROCEDURE String(s: ARRAY OF CHAR)
  22. вывод строки s (ASCII)
  23. PROCEDURE StringW(s: ARRAY OF WCHAR)
  24. вывод строки s (UTF-16)
  25. ------------------------------------------------------------------------------
  26. MODULE In - консольный ввод
  27. VAR Done: BOOLEAN
  28. принимает значение TRUE в случае успешного выполнения
  29. операции ввода и FALSE в противном случае
  30. PROCEDURE Open
  31. открывает консольный ввод,
  32. также присваивает переменной Done значение TRUE
  33. PROCEDURE Int(VAR x: INTEGER)
  34. ввод числа типа INTEGER
  35. PROCEDURE Char(VAR x: CHAR)
  36. ввод символа
  37. PROCEDURE Real(VAR x: REAL)
  38. ввод числа типа REAL
  39. PROCEDURE String(VAR s: ARRAY OF CHAR)
  40. ввод строки
  41. PROCEDURE Ln
  42. ожидание нажатия ENTER
  43. ------------------------------------------------------------------------------
  44. MODULE Console - дополнительные процедуры консольного вывода
  45. CONST
  46. Следующие константы определяют цвет консольного вывода
  47. Black = 0 Blue = 1 Green = 2
  48. Cyan = 3 Red = 4 Magenta = 5
  49. Brown = 6 LightGray = 7 DarkGray = 8
  50. LightBlue = 9 LightGreen = 10 LightCyan = 11
  51. LightRed = 12 LightMagenta = 13 Yellow = 14
  52. White = 15
  53. PROCEDURE Cls
  54. очистка окна консоли
  55. PROCEDURE SetColor(FColor, BColor: INTEGER)
  56. установка цвета консольного вывода: FColor - цвет текста,
  57. BColor - цвет фона, возможные значения - вышеперечисленные
  58. константы
  59. PROCEDURE SetCursor(x, y: INTEGER)
  60. установка курсора консоли в позицию (x, y)
  61. PROCEDURE GetCursor(VAR x, y: INTEGER)
  62. записывает в параметры текущие координаты курсора консоли
  63. PROCEDURE GetCursorX(): INTEGER
  64. возвращает текущую x-координату курсора консоли
  65. PROCEDURE GetCursorY(): INTEGER
  66. возвращает текущую y-координату курсора консоли
  67. ------------------------------------------------------------------------------
  68. MODULE Math - математические функции
  69. CONST
  70. pi = 3.141592653589793E+00
  71. e = 2.718281828459045E+00
  72. PROCEDURE IsNan(x: REAL): BOOLEAN
  73. возвращает TRUE, если x - не число
  74. PROCEDURE IsInf(x: REAL): BOOLEAN
  75. возвращает TRUE, если x - бесконечность
  76. PROCEDURE sqrt(x: REAL): REAL
  77. квадратный корень x
  78. PROCEDURE exp(x: REAL): REAL
  79. экспонента x
  80. PROCEDURE ln(x: REAL): REAL
  81. натуральный логарифм x
  82. PROCEDURE sin(x: REAL): REAL
  83. синус x
  84. PROCEDURE cos(x: REAL): REAL
  85. косинус x
  86. PROCEDURE tan(x: REAL): REAL
  87. тангенс x
  88. PROCEDURE arcsin(x: REAL): REAL
  89. арксинус x
  90. PROCEDURE arccos(x: REAL): REAL
  91. арккосинус x
  92. PROCEDURE arctan(x: REAL): REAL
  93. арктангенс x
  94. PROCEDURE arctan2(y, x: REAL): REAL
  95. арктангенс y/x
  96. PROCEDURE power(base, exponent: REAL): REAL
  97. возведение числа base в степень exponent
  98. PROCEDURE log(base, x: REAL): REAL
  99. логарифм x по основанию base
  100. PROCEDURE sinh(x: REAL): REAL
  101. гиперболический синус x
  102. PROCEDURE cosh(x: REAL): REAL
  103. гиперболический косинус x
  104. PROCEDURE tanh(x: REAL): REAL
  105. гиперболический тангенс x
  106. PROCEDURE arsinh(x: REAL): REAL
  107. обратный гиперболический синус x
  108. PROCEDURE arcosh(x: REAL): REAL
  109. обратный гиперболический косинус x
  110. PROCEDURE artanh(x: REAL): REAL
  111. обратный гиперболический тангенс x
  112. PROCEDURE round(x: REAL): REAL
  113. округление x до ближайшего целого
  114. PROCEDURE frac(x: REAL): REAL;
  115. дробная часть числа x
  116. PROCEDURE floor(x: REAL): REAL
  117. наибольшее целое число (представление как REAL),
  118. не больше x: floor(1.2) = 1.0
  119. PROCEDURE ceil(x: REAL): REAL
  120. наименьшее целое число (представление как REAL),
  121. не меньше x: ceil(1.2) = 2.0
  122. PROCEDURE sgn(x: REAL): INTEGER
  123. если x > 0 возвращает 1
  124. если x < 0 возвращает -1
  125. если x = 0 возвращает 0
  126. PROCEDURE fact(n: INTEGER): REAL
  127. факториал n
  128. ------------------------------------------------------------------------------
  129. MODULE File - работа с файловой системой
  130. CONST
  131. OPEN_R = 0
  132. OPEN_W = 1
  133. OPEN_RW = 2
  134. SEEK_BEG = 0
  135. SEEK_CUR = 1
  136. SEEK_END = 2
  137. PROCEDURE Create(FName: ARRAY OF CHAR): INTEGER
  138. создает новый файл с именем FName (полное имя с путем),
  139. открывет файл для записи и возвращает идентификатор файла
  140. (целое число), в случае ошибки, возвращает -1
  141. PROCEDURE Open(FName: ARRAY OF CHAR; Mode: INTEGER): INTEGER
  142. открывает существующий файл с именем FName (полное имя с
  143. путем) в режиме Mode = (OPEN_R (только чтение), OPEN_W
  144. (только запись), OPEN_RW (чтение и запись)), возвращает
  145. идентификатор файла (целое число), в случае ошибки,
  146. возвращает -1
  147. PROCEDURE Read(F, Buffer, Count: INTEGER): INTEGER
  148. Читает данные из файла в память. F - числовой идентификатор
  149. файла, Buffer - адрес области памяти, Count - количество байт,
  150. которое требуется прочитать из файла; возвращает количество
  151. байт, которое было прочитано из файла
  152. PROCEDURE Write(F, Buffer, Count: INTEGER): INTEGER
  153. Записывает данные из памяти в файл. F - числовой идентификатор
  154. файла, Buffer - адрес области памяти, Count - количество байт,
  155. которое требуется записать в файл; возвращает количество байт,
  156. которое было записано в файл
  157. PROCEDURE Seek(F, Offset, Origin: INTEGER): INTEGER
  158. устанавливает позицию чтения-записи файла с идентификатором F
  159. на Offset, относительно Origin = (SEEK_BEG - начало файла,
  160. SEEK_CUR - текущая позиция, SEEK_END - конец файла),
  161. возвращает позицию относительно начала файла, например:
  162. Seek(F, 0, 2) - устанавливает позицию на конец файла и
  163. возвращает длину файла; при ошибке возвращает -1
  164. PROCEDURE Close(F: INTEGER)
  165. закрывает ранее открытый файл с идентификатором F
  166. PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
  167. удаляет файл с именем FName (полное имя с путем),
  168. возвращает TRUE, если файл успешно удален
  169. PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
  170. возвращает TRUE, если файл с именем FName (полное имя)
  171. существует
  172. PROCEDURE Load(FName: ARRAY OF CHAR; VAR Size: INTEGER): INTEGER
  173. загружает в память существующий файл с именем FName (полное имя с
  174. путем), возвращает адрес памяти, куда был загружен файл,
  175. записывает размер файла в параметр Size;
  176. при ошибке возвращает 0
  177. PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
  178. создает папку с именем DirName, все промежуточные папки
  179. должны существовать. В случае ошибки, возвращает FALSE
  180. PROCEDURE RemoveDir(DirName: ARRAY OF CHAR): BOOLEAN
  181. удаляет пустую папку с именем DirName. В случае ошибки,
  182. возвращает FALSE
  183. PROCEDURE ExistsDir(DirName: ARRAY OF CHAR): BOOLEAN
  184. возвращает TRUE, если папка с именем DirName существует
  185. ------------------------------------------------------------------------------
  186. MODULE DateTime - дата, время
  187. CONST ERR = -7.0E5
  188. PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec, MSec: INTEGER)
  189. возвращает в параметрах компоненты текущей системной даты и
  190. времени
  191. PROCEDURE NowEncode(): REAL;
  192. возвращает текущую системную дату и
  193. время (представление REAL)
  194. PROCEDURE Encode(Year, Month, Day,
  195. Hour, Min, Sec, MSec: INTEGER): REAL
  196. возвращает дату, полученную из компонентов
  197. Year, Month, Day, Hour, Min, Sec, MSec;
  198. при ошибке возвращает константу ERR = -7.0E5
  199. PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
  200. Hour, Min, Sec, MSec: INTEGER): BOOLEAN
  201. извлекает компоненты
  202. Year, Month, Day, Hour, Min, Sec, MSec из даты Date;
  203. при ошибке возвращает FALSE
  204. ------------------------------------------------------------------------------
  205. MODULE Args - параметры программы
  206. VAR argc: INTEGER
  207. количество параметров программы, включая имя
  208. исполняемого файла
  209. PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
  210. записывает в строку s n-й параметр программы,
  211. нумерация параметров от 0 до argc - 1,
  212. нулевой параметр -- имя исполняемого файла
  213. ------------------------------------------------------------------------------
  214. MODULE Utils - разное
  215. PROCEDURE Utf8To16(source: ARRAY OF CHAR;
  216. VAR dest: ARRAY OF CHAR): INTEGER;
  217. преобразует символы строки source из кодировки UTF-8 в
  218. кодировку UTF-16, результат записывает в строку dest,
  219. возвращает количество 16-битных символов, записанных в dest
  220. PROCEDURE PutSeed(seed: INTEGER)
  221. Инициализация генератора случайных чисел целым числом seed
  222. PROCEDURE Rnd(range: INTEGER): INTEGER
  223. Целые случайные числа в диапазоне 0 <= x < range
  224. ------------------------------------------------------------------------------
  225. MODULE WINAPI - привязки к некоторым API-функциям Windows