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

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

Автор W Cat

VC_LINES = 3,

VC_COLUMNS = 4,

VC_XPIXELS = 5,

VC_YPIXELS = 6,

VC_NCOLORS = 7,

VC_PAGES = 8


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

Данная функция ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ‚Π°ΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΈ исполнСнии вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… графичСских Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… (с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…).

На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° графичСских Ρ€Π΅ΠΆΠΈΠΌΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ, тСкстовый Ρ€Π΅ΠΆΠΈΠΌ, позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь тСкст. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ, пиксСльно-графичСский Ρ€Π΅ΠΆΠΈΠΌ, позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ пиксСлы, ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚Π°Ρ…, Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ тСкст. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ систСма находится Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ссли элСмСнты Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ VC_XPIXELS ΠΈ VC_YPIXELS Ρ€Π°Π²Π½Ρ‹ 0. Π’Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊΠ°ΠΊ polygon(), draw_line() ΠΈ ellipse() Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² пиксСльно-графичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅.

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


vc = video_config() -- Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 3 с 25-ю строками тСкста:

-- vc Ρ€Π°Π²Π½ΠΎ {1, 3, 25, 80, 0, 0, 32, 8}


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

graphics_mode


wait_key


Бинтаксис:

include get.e

i = wait_key()

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠ΄ клавиши, Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Код выдаётся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ наТатия клавиши.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с get_key(), Ссли Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅:


while 1 do

k = get_key()

if k != -1 then

exit

end if

end while


Однако Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… систСмах, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Windows ΠΈΠ»ΠΈ Linux/FreeBSD, Ρ‚Π°ΠΊΠΎΠ΅ "занятоС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅" с get_key() Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы. Ѐункция ΠΆΠ΅ wait_key() позволяСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΠΊΠ° ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ наТатия Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ getc(0), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π½ΠΎΠΌΠ΅Ρ€ 0 соотвСтствуСт Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… клавиш, клавиш со стрСлками, ΠΊΠΎΠ΄Ρ‹ клавиш Π½Π° русском рСгистрС ΠΈ Ρ‚.ΠΏ. Π”Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для getc(0) дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°Ρ… RDS ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π² двуязычных ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΎΠ½ΠΎ снято.

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

get_key, getc


walk_dir


Бинтаксис:

include file.e

i1 = walk_dir(st, i2, i3)

ОписаниС:

Данная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° "пройдётся" ΠΏΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΎ Π² рядС st, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹. i2 являСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. walk_dir() ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² st. Если i3 Π½Π΅ Ρ€Π°Π²Π½ΠΎ 0 (TRUE), ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² st Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹ рСкурсивно.

Ѐункция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ примСняСтС для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΉ ΠΈ Π²Ρ…ΠΎΠ΄Ρ‹ dir() для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Она Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ 0 для продолТСния прохоТдСния послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅-ноль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ walk_dir().

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

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ позволяСт Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ walk_dir() обСспСчит процСсс автоматичСской Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ порядок, установитС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ my_dir для Π½ΠΎΠΌΠ΅Ρ€Π° своСй собствСнной ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir(), которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Ρ‹ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ Π²Π°ΠΌ порядкС. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ для уяснСния Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ тСкст исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir() Π² Ρ„Π°ΠΉΠ»Π΅ file.e.

Имя ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΏΠΎΠ΄Π°Ρ‘Ρ‚Π΅ Π² walk_dir(), Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символов Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ (* ΠΈΠ»ΠΈ ?). ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с СдинствСнным ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ (ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ), имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π°Π½ΠΎ Π² Π½Π΅Ρ‘ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

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


function look_at(sequence path_name, sequence entry)

-- данная функция воспринимаСт Π΄Π²Π° ряда ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

printf(1, "%s\\%s: %d\n",

{path_name, entry[D_NAME], entry[D_SIZE]})

return 0 -- ΠΏΡ€ΠΎΡ…ΠΎΠ΄ продолТаСтся

end function


exit_code = walk_dir("C:\\MYFILES", routine_id("look_at"), TRUE)


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

euphoria\bin\search.ex

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

dir, current_dir


where


Бинтаксис:

include file.e

a1 = where(fn)

ОписаниС:

Данная функция Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ fn. Байтовая позиция обновляСтся ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ, записи ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… Π² Ρ„Π°ΠΉΠ»Π΅. Π­Ρ‚Π° позиция Π΄Π°Ρ‘Ρ‚ мСсто Π² Ρ„Π°ΠΉΠ»Π΅, Π³Π΄Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π±Π°ΠΉΡ‚ Π±ΡƒΠ΄Π΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ ΠΈΠ»ΠΈ записан.

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

seek, open


wildcard_file


Бинтаксис:

include wildcard.e

i = wildcard_file(st1, st2)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ 1 (истина), Ссли имя Ρ„Π°ΠΉΠ»Π° st2 совпало с вашСй Π΄ΠΎΠ³Π°Π΄ΠΊΠΎΠΉ (маской, шаблоном) st1. Π’Ρ‹Π΄Π°Ρ‘Ρ‚ 0 (лоТь) Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Данная функция ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚Ρƒ, которая имССтся Π² DOS для ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅Ρ‘. Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ '*' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ символов, допустимых Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², символ Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ '?' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ СдинствСнный любой ΠΈΠ· допустимых символов. Под Linux ΠΈ FreeBSD сравнСниС символов Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ рСгистру, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, строчныС ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ Π½Π΅ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹. Под DOS ΠΈ Windows - Π½Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, строчныС ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DOS "*ABC.*" Π΄Π°Π΅Ρ‚ шаблон для всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Ѐункция ΠΆΠ΅ wildcard_file("*ABC.*", s) Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, имя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… заканчиваСтся Π±ΡƒΠΊΠ²Π°ΠΌΠΈ "ABC" (ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅).

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


i = wildcard_file("AB*CD.?", "aB123cD.e")

-- i Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 1 ΠΏΠΎΠ΄ DOS ΠΈΠ»ΠΈ Windows, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 ΠΏΠΎΠ΄ Linux ΠΈΠ»ΠΈ FreeBSD


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


i = wildcard_file("AB*CD.?", "abcd.ex")

-- i Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 ΠΏΠΎΠ΄ всСми систСмами, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ

-- Ρ„Π°ΠΉΠ»Π° содСрТит 2 символа, Π° Π½Π΅ 1.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

bin\search.ex

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

wildcard_match, dir


wildcard_match


Бинтаксис:

include wildcard.e

i = wildcard_match(st1, st2)

ОписаниС:

Данная функция выполняСт ΠΎΠ±Ρ‰Π΅Π΅ сравнСниС строки с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ символы Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ '*' ΠΈ '?'. Ѐункция Π²Ρ‹Π΄Π°Ρ‘Ρ‚ 1 (истина), Ссли строка st2 совпадаСт с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ st1. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС выдаётся 0 (лоТь). Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ '*' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ символов. Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ '?' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой СдинствСнный символ. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ рСгистру, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, строчныС ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

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

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊ рСгистру сравнСниС, ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΎΠ±Π° ряда st1 ΠΈ st2 Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ upper() ΠΈΠ»ΠΈ lower() ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ wildcard_match().

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π² любом мСстС Π²Π½ΡƒΡ‚Ρ€ΠΈ исслСдуСмой строки, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ символ '*' ΠΊ ΠΎΠ±ΠΎΠΈΠΌ ΠΊΠΎΠ½Ρ†Π°ΠΌ ΠΎΠ±Ρ€Π°Π·Ρ†Π°:


i = wildcard_match('*' & pattern & '*', string)


Π’ настоящСС врСмя Π½Π΅Ρ‚ ΠΏΠΎΠΊΠ° способа Π·Π°Π΄Π°Ρ‚ΡŒ собствСнно символы '*' ΠΈΠ»ΠΈ '?' Π² ΠΎΠ±Ρ€Π°Π·Ρ†Π΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ выполняли свою Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ.

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


i = wildcard_match("A?B*", "AQBXXYY")

-- i Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 1 (TRUE)


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


i = wildcard_match("*xyz*", "AAAbbbxyz")

-- i Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 1 (TRUE)


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


i = wildcard_match("A*B*C", "a111b222c")

-- i Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0 (FALSE), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ/Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистры Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

bin\search.ex

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

wildcard_file, match, upper, lower, compare


wrap


Бинтаксис:

include graphics.e

wrap(i)

ОписаниС:

Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π² тСкстС пСрСнос Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΏΡ€ΠΈ достиТСнии ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ поля (i = 1) ΠΈΠ»ΠΈ отсСкаСт слишком Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки (i = 0).

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

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½ пСрСнос.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ wrap() Π² тСкстовых Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ΠΈΠ»ΠΈ Π² пиксСльно-графичСских Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки тСкста.

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


puts(1, repeat('x', 100) & "\n\n")

-- ΠΈΠΌΠ΅Π΅ΠΌ строку ΠΈΠ· 80 'x', Π° Π½ΠΈΠΆΠ΅ строку ΠΈΠ· 20 'x'

wrap(0)

puts(1, repeat('x', 100) & "\n\n")

-- ΠΈΠΌΠ΅Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку ΠΈΠ· 80 'x'.


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

puts, position


xor_bits


Бинтаксис:

x3 = xor_bits(x1, x2)

ОписаниС:

ВыполняСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ XOR (ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜) Π½Π°Π΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ Π² x1 ΠΈ x2. Π‘ΠΈΡ‚ x3 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 1, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² Π² x1 ΠΈΠ»ΠΈ x2 Ρ€Π°Π²Π΅Π½ 1, Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 0.

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

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

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

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

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

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


a = xor_bits(#0110, #1010)

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


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

and_bits, or_bits, not_bits, int_to_bits, int_to_bytes


...