Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Euphoria. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 29

Автор W Cat

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅Ρ… событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ частого события MOVE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ пропуска события, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² mouse_events(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ сдСлаСтС, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ курсор ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ подсвСчСнный символ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


mouse_events(LEFT_DOWN + LEFT_UP + RIGHT_DOWN)

-- ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ get_mouse() ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ

-- ΠΈ отпускании Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

-- ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ события Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

get_mouse, mouse_pointer


mouse_pointer


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include mouse.e

mouse_pointer(i)

ОписаниС:

Если i Ρ€Π°Π²Π½ΠΎ 0, Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ курсор ΠΌΡ‹ΡˆΠΈ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ курсора Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ числа Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² get_mouse() ΠΈΠ»ΠΈ mouse_events() Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ курсор (ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·).

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ курсора ΠΌΡ‹ΡˆΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ, Ссли Π½Π° экран выводится новая информация.

ПослС Π²Ρ‹Π·ΠΎΠ²Π° text_rows() Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²Ρ‹Π·ΠΎΠ² mouse_pointer(1), Ρ‡Ρ‚ΠΎΠ±Ρ‹ курсор ΠΌΡ‹ΡˆΠΈ стал снова Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

get_mouse, mouse_events


not_bits


Бинтаксис:

x2 = not_bits(x1)

ОписаниС:

ВыполняСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ NOT Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ Π² x1. Π‘ΠΈΡ‚ Π² x2 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 1, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΈΡ‚ Π² x1 Ρ€Π°Π²Π΅Π½ 0, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 0, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΈΡ‚ Π² x1 Ρ€Π°Π²Π΅Π½ 1.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

АргумСнтом для Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ряд. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° рядах.

АргумСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ прСдставимым ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ число, со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ atom, Π° Π½Π΅ ΠΊΠ°ΠΊ integer. Π’ΠΈΠΏ integer Euphoria ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 31-ΠΌ Π±ΠΈΡ‚ΠΎΠΌ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ числа со Π·Π½Π°ΠΊΠΎΠΌ. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ссли ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ Ρ€Π°Π²Π΅Π½ 1.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


a = not_bits(#000000F7)

-- a Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ -248 (Ρ‚.Π΅. FFFFFF08 интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число)


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

and_bits, or_bits, xor_bits, int_to_bits


object


Бинтаксис:

i = object(x)

ОписаниС:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, являСтся Π»ΠΈ x ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π­Ρ‚ΠΎ всСгда Π±ΡƒΠ΄Π΅Ρ‚ истиной, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ object() всСгда Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 1.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

ВсС ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ. Ѐункция object() Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для комплСктности. Она всСгда Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 1.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


? object({1,2,3}) -- всСгда ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 1


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

integer, atom, sequence


open


Бинтаксис:

fn = open(st1, st2)

ОписаниС:

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ устройство, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π½Π΅ ΡΠΎΡΡ‚ΠΎΡΠ»ΠΎΡΡŒ, выдаётся -1. Ряд st1 содСрТит ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ устройству. Ряд st2 Π·Π°Π΄Π°Ρ‘Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹:

"r" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» для чтСния

"rb" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для чтСния

"w" - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» для записи

"wb" - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для записи

"u" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» для обновлСния (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись)

"ub" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для обновлСния

"a" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» для добавлСния

"ab" - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для добавлСния

Π€Π°ΠΉΠ»Ρ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ для чтСния ΠΈΠ»ΠΈ обновлСния, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π€Π°ΠΉΠ»Ρ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ для записи ΠΈΠ»ΠΈ добавлСния, Π±ΡƒΠ΄ΡƒΡ‚ созданы, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π€Π°ΠΉΠ», ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ для записи, Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π½Π° 0-ΠΎΠΉ (самый ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ) Π±Π°ΠΉΡ‚. Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ», ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ для добавлСния, начнётся Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π’Ρ‹Π²ΠΎΠ΄ Π² тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ символы Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ, автоматичСски добавляСмыС ΠΏΠ΅Ρ€Π΅Π΄ символами ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. На Π²Ρ…ΠΎΠ΄Π΅ эти символы Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Π‘ΠΈΠΌΠ²ΠΎΠ» control-Z (ASCII 26) являСтся сигналом Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ окончания Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях DOS Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ control-Z ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сбой стандартного Π²Π²ΠΎΠ΄Π°, устраняСмый Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π° DOS.

Π’Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ модифицируСтся. Π›ΡŽΠ±Π°Ρ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ 0 Π΄ΠΎ 255 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ считана ΠΈΠ»ΠΈ записана.

НСкоторыС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ DOS ΠΈΠ»ΠΈ Windows :

"CON" - консоль (экран)

"AUX" - Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚

"COM1" - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ 1

"COM2" - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ 2

"PRN" - ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ

"NUL" - Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ устройство, ΠΏΠΎΠ³Π»ΠΎΡ‰Π°ΡŽΡ‰Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄

Π’ настоящСС врСмя доступна Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 2 Gb. Π—Π° этой Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π”Π°Π½Π½Ρ‹ΠΉ Π»ΠΈΠΌΠΈΡ‚ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСсмотрСн.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

DOS32: ΠŸΡ€ΠΈ исполнСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ Windows 95 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ ОБ этого сСмСйства Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ любой ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ своё имя (Ρ‚.Π΅. Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 8.3 DOS) ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² Π΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой Ρ€Π΅ΠΆΠΈΠΌ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ Ρ‚.Π΄.). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ "w" ΠΈΠ»ΠΈ "a" Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт), это имя Π±ΡƒΠ΄Π΅Ρ‚ усСчСно Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 8.3. ΠœΡ‹ надССмся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях Euphoria.

WIN32, Linux and FreeBSD: Π Π°Π±ΠΎΡ‚Π° с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ обСспСчиваСтся ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ, записи ΠΈ создании.

DOS32: Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΈΠΌΡ‘Π½ устройств Π² качСствС ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ добавляСтС ΠΊ Π½ΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ, Ρ‚.Π΅. CON.TXT, CON.DAT, CON.JPG ΠΈ Ρ‚.Π΄. - всС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° относятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ устройству CON, Π½ΠΎ Π½Π΅ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, сущСствованиС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


integer file_num, file_num95

sequence first_line

constant ERROR = 2


file_num = open("myfile", "r")

if file_num = -1 then

puts(ERROR, "Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ myfile\n")

else

first_line = gets(file_num)

end if


file_num = open("PRN", "w") -- ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€ для Π²Ρ‹Π²ΠΎΠ΄Π°


-- ΠΏΠΎΠ΄ Windows 95:

file_num95 = open("bigdirectoryname\\verylongfilename.abcdefg",

"r")

if file_num95 != -1 then

puts(1, "это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!\n")

end if


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

close, lock_file


open_dll


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

WIN32, Linux, FreeBSD

Бинтаксис:

include dll.e

a = open_dll(st)

ОписаниС:

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСского связывания Windows(.dll) ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Linux ΠΈΠ»ΠΈ FreeBSD(.so). Π’Ρ‹Π΄Π°Ρ‘Ρ‚ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс ΠΈΠ»ΠΈ 0, Ссли Ρ„Π°ΠΉΠ» .dll Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. Π’ рядС st Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°. Windows Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ систСмный ΠΏΡƒΡ‚ΡŒ поиска для доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ .dll.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ адрСса, Π²Ρ‹Π΄Π°Π½Π½ΠΎΠ΅ open_dll(), слуТит Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ define_c_proc(), define_c_func() ΠΈ define_c_var().

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» .dll ΠΈΠ»ΠΈ .so нСсколько Ρ€Π°Π·. Для этого Π½Π΅ потрСбуСтся лишнСй памяти ΠΈ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ адрСса ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ.

Euphoria Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ .dll автоматичСски Π² ΠΊΠΎΠ½Ρ†Π΅ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


atom user32

user32 = open_dll("user32.dll")

if user32 = 0 then

puts(1, "НС ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ user32.dll!\n")

end if


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

define_c_func, define_c_proc, define_c_var, c_func, c_proc, platform.doc


or_bits


Бинтаксис:

x3 = or_bits(x1, x2)

ОписаниС:

ВыполняСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ OR Π½Π°Π΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ Π² x1 ΠΈ x2. Π‘ΠΈΡ‚ Π² x3 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 1, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Π² x1, ΠΈΠ»ΠΈ Π² x2 Ρ€Π°Π²Π΅Π½ 1.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

АргумСнтами Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Ρ‚ΠΎΠΌΡ‹ ΠΈΠ»ΠΈ ряды. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° рядах.

АргумСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставимы ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ числа, со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

Если Π²Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ atom, Π° Π½Π΅ ΠΊΠ°ΠΊ integer. Π’ΠΈΠΏ integer Π² Euphoria ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 31-ΠΌ Π±ΠΈΡ‚ΠΎΠΌ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ числа со Π·Π½Π°ΠΊΠΎΠΌ. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ Ρ€Π°Π²Π΅Π½ 1.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:


a = or_bits(#0F0F0000, #12345678)

-- a Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ #1F3F5678


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:


a = or_bits(#FF, {#123456, #876543, #2211})

-- a Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ {#1234FF, #8765FF, #22FF}


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

and_bits, xor_bits, not_bits, int_to_bits


...

ΠΎΡ‚ P Π΄ΠΎ R


palette


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include graphics.e

x = palette(i, s)

ОписаниС:

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ для Ρ†Π²Π΅Ρ‚Π° Π½ΠΎΠΌΠ΅Ρ€ i Π½Π° s, Π³Π΄Π΅ s являСтся рядом интСнсивностСй ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°: {красный, Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ, синий}. КаТдая ΠΈΠ· ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… s ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΎΡ‚ 0 Π΄ΠΎ 63. Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ измСнСния Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 3-Ρ… элСмСнтный ряд, содСрТащий Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΎΠ² исходного Ρ†Π²Π΅Ρ‚Π° i, Π° всС пиксСлы Π½Π° экранС, имСвшиС Ρ†Π²Π΅Ρ‚ i, ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ. Если опСрация Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ, выдаётся Π°Ρ‚ΠΎΠΌ -1.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


x = palette(0, {15, 40, 10})

-- Ρ†Π²Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 0 (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ) ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ Π½Π° ΠΎΡ‚Ρ‚Π΅Π½ΠΎΠΊ