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

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

Автор W Cat

Когда Π²Ρ‹ Π·Π°Π΄Π°Ρ‘Ρ‚Π΅ характСристики Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой адрСс систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, содСрТащСй эту Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. АдрСс Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π·Π²Π°Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open_dll(). АргумСнт x2 Π·Π°Π΄Π°Ρ‘Ρ‚ имя Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая вас интСрСсуСт. Если define_c_proc() Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π² качСствС Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΠ½Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ -1. На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ символ '+'. Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Euphoria, Ρ‡Ρ‚ΠΎ для Π²Ρ‹Π·ΠΎΠ²Π° Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдусмотрСны ΠΏΡ€Π°Π²ΠΈΠ»Π° соглашСния cdecl. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Euphoria считаСт, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ соглашСния stdcall.

Когда Π²Ρ‹ Π·Π°Π΄Π°Ρ‘Ρ‚Π΅ характСристики ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машинного ΠΊΠΎΠ΄Π°, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ x1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ пустым рядом, "" ΠΈΠ»ΠΈ {}, Π° x2 - ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ адрСс ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машинного ΠΊΠΎΠ΄Π°. Π‘Π°ΠΉΡ‚Ρ‹ машинного ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² участкС памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ allocate(), которая ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ адрСс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π΄Π°Π»Π΅Π΅ для размСщСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машинного ΠΊΠΎΠ΄Π° ΠΈ задания Π΅Ρ‘ характСристик. На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машинного ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ соглашСния stdcall, Π½ΠΎ Ссли Π²Π°ΠΌ вмСсто этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ использованиС ΠΏΡ€Π°Π²ΠΈΠ» cdecl, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ x2 ΠΊΠ°ΠΊ ряд {'+', адрСс} вмСсто ΠΏΠΎΠ΄Π°Ρ‡ΠΈ значСния адрСса ΠΊΠ°ΠΊ Π°Ρ‚ΠΎΠΌΠ°.

АргумСнт s1 прСдставляСт собой список Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ‚ΠΈΠΏΠΎΠ² Π‘ΠΈ, содСрТащий ΠΈΡ… опрСдСлСния, находится Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ dll.e ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Ρ‹ΡˆΠ΅. Π­Ρ‚ΠΈ ΠΆΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машинного ΠΊΠΎΠ΄Π°.

Π‘ΠΈ-функция, характСристики ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π·Π°Π΄Π°Ρ‘Ρ‚Π΅ с использованиСм define_c_proc(), ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ транслятора с Euphoria Π½Π° Π‘ΠΈ. Π’ этом случаС Π²Ρ‹ смоТСтС ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Π² Π½Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ² Euphoria. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ‚ΠΈΠΏΠΎΠ² Euphoria с ΠΈΡ… опрСдСлСниями находится Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ dll.e ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Ρ‹ΡˆΠ΅.

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

АргумСнты Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любого цСлочислСнного Ρ‚ΠΈΠΏΠ° Π‘ΠΈ ΠΈ Ρ‚ΠΈΠΏΠ° указатСля (ΠΏΠΎΠΉΠ½Ρ‚Π΅Ρ€Π°) Π‘ΠΈ. Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности ΠΈΠ»ΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Ρ‚ΠΎ Π² ΠΈΡ… качСствС ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Ρ‚ΠΎΠΌΡ‹ Euphoria.

АргумСнты с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, для прСдставлСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… достаточно 4-Ρ… ΠΈΠ»ΠΈ мСньшС Π±Π°ΠΉΡ‚ΠΎΠ², всС ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ порядком, поэтому Π½Π΅Ρ‚ нСобходимости Π±Ρ‹Ρ‚ΡŒ слишком ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ, выбирая Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏ для обозначСния 4-Ρ… Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π’ настоящСС врСмя Π½Π΅ сущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π² Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ структуры Π‘ΠΈ ΠΏΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ лишь ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру

Заданная Π²Π°ΠΌΠΈ Π‘ΠΈ-функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, Π½ΠΎ эта Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Если Π²Ρ‹ заинтСрСсованы Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ использовании Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π‘ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²Π°ΠΌ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ°Ρ€Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ define_c_func() ΠΈ c_func().

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


atom user32

integer ShowWindow


-- ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ user32.dll - Π² Π½Π΅ΠΉ находится Π‘ΠΈ-функция ShowWindow.

user32 = open_dll("user32.dll")


-- Π‘ΠΈ-функция Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 2-Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° C int.

ShowWindow = define_c_proc(user32, "ShowWindow", {C_INT, C_INT})

-- Если Π±Ρ‹ ShowWindow Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ cdecl,

-- ΠΌΡ‹ записали Π±Ρ‹ здСсь "+ShowWindow"


if ShowWindow = -1 then

puts(1, "ShowWindow Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°!\n")

end if


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

c_proc, define_c_func, c_func, open_dll, platform_r.htm


define_c_var


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

WIN32, Linux, FreeBSD

Бинтаксис:

include dll.e

a1 = define_c_var(a2, s)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. АргумСнт a2 являСтся адрСсом ΠΎΠ±Ρ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ .so Linux, FreeBSD ΠΈΠ»ΠΈ .dll Windows, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ open_dll(). Ряд s Π·Π°Π΄Π°Π΅Ρ‚ имя глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a1 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ адрСса ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s Π² памяти.

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

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π‘ΠΈ, ΠΈ Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π΅Ρ‘ Ρ‚ΠΈΠΏ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ peek() ΠΈ poke(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² памяти Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

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

euphoria/demo/linux/mylib.exu

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

c_proc, define_c_func, c_func, open_dll, platform_r.htm


dir


Бинтаксис:

include file.e

x = dir(st)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ st. Если Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ -1. Под Windows ΠΈ DOS st ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символы Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ * ΠΈ ?, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.

ВыдаваСмая информация ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DIR ΠΏΠΎΠ΄ DOS. Ряд, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ряды (записи), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… описываСт ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Если Π² st Π·Π°Π΄Π°Π½ΠΎ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΏΠ°ΠΏΠΊΠΈ, Ρ„ΠΎΠ»Π΄Π΅Ρ€Π°), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ записи для "." ΠΈ "..", Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DIR ΠΏΠΎΠ΄ DOS. Если ΠΆΠ΅ Π² st Π·Π°Π΄Π°Π½ΠΎ имя Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎΠ³Π΄Π° x Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ запись, Ρ‚.Π΅. length(x) Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 1. Если Π² st содСрТатся символы Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ многочислСнныС записи.

КаТдая запись содСрТит имя, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π³ΠΎΠ΄, мСсяц, дСнь, час, ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΈ сСкунду послСднСго измСнСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… констант, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ file.e:


global constant D_NAME = 1, -- имя

D_ATTRIBUTES = 2, -- Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹

D_SIZE = 3, -- Ρ€Π°Π·ΠΌΠ΅Ρ€


D_YEAR = 4, -- Π³ΠΎΠ΄

D_MONTH = 5, -- мСсяц

D_DAY = 6, -- дСнь


D_HOUR = 7, -- час

D_MINUTE = 8, -- ΠΌΠΈΠ½ΡƒΡ‚Π°

D_SECOND = 9 -- сСкунда


Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² являСтся строковым рядом, содСрТащим символы, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ пСрСчня:


'd' -- ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

'r' -- Ρ„Π°ΠΉΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния

'h' -- скрытый Ρ„Π°ΠΉΠ»

's' -- систСмный Ρ„Π°ΠΉΠ»

'v' -- ΠΌΠ΅Ρ‚ΠΊΠ° Ρ‚ΠΎΠΌΠ°

'a' -- Ρ„Π°ΠΉΠ», ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ


Для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π² этом ΠΏΠΎΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° пустая строка, "".

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

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ, Ρ‚.Π΅. c:\, Π½Π΅ содСрТит записСй "." ΠΈΠ»ΠΈ "..".

Данная функция часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ просто для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, сущСствуСт Π»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ WIN32 Π² st ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² любом мСстС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ.

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Linux/FreeBSD Π² настоящСС врСмя доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ 'd'.

DOS32: Имя Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² элСмСнтС D_NAME, Π±ΡƒΠ΄Π΅Ρ‚ стандартным DOS-ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 8.3 (посСтитС Web-страницу Архива Ρ„Π°ΠΉΠ»ΠΎΠ², Ссли вас интСрСсуСт Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅).

WIN32: Имя Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² элСмСнтС D_NAME, Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

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


d = dir(current_dir())


-- ряд d ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π²Π½Ρ‹ΠΌ:

{

{".", "d", 0 1994, 1, 18, 9, 30, 02},

{"..", "d", 0 1994, 1, 18, 9, 20, 14},

{"fred", "ra", 2350, 1994, 1, 22, 17, 22, 40},

{"sub", "d", 0, 1993, 9, 20, 8, 50, 12}

}


-- Ρ‚ΠΎΠ³Π΄Π° d[3][D_NAME] Π±Ρ‹Π»ΠΎ Π±Ρ‹ "fred"


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

bin\search.ex

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

wildcard_file, current_dir, open


display_image


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

DOS32

Бинтаксис:

include image.e

display_image(s1, s2)

ОписаниС:

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ s1 Π½Π° пиксСльном экранС 2-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ряд пиксСлов, описаниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТится Π² s2. АргумСнт s1 - двухэлСмСнтный ряд Π²ΠΈΠ΄Π° {x, y}. АргумСнт s2 содСрТит ряды, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставляСт Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ строчку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ² пиксСлов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° экранС. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ пиксСл ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ряда располоТСн Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ s1. Π­Ρ‚ΠΎ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ пиксСл. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ пиксСлы располоТСны ΠΏΡ€Π°Π²Π΅Π΅ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ этого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ.

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

Ряд s2 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° save_image() ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° read_bitmap(), ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сСкундой Ρ€Π°Π½Π΅Π΅ Π²Ρ‹ рисовали Π² своСм Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

Ряды (строчки) изобраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

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


display_image({20,30}, {{7,5,9,4,8},

{2,4,1,2},

{1,0,1,0,4,6,1},

{5,5,5,5,5,5}})

-- ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран нСбольшоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, состоящСС

-- ΠΈΠ· 4-Ρ… Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… рядов пиксСлов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ пиксСл (Ρ†Π²Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 7)

-- Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ {20,30}. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ряд состоит ΠΈΠ· 5 пиксСлов.

-- ПослСдний (Π½ΠΈΠΆΠ½ΠΈΠΉ) ряд состоит ΠΈΠ· 6 пиксСлов Ρ†Π²Π΅Ρ‚Π° Π½ΠΎΠΌΠ΅Ρ€ 5

-- ΠΈ заканчиваСтся Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ {25,33}.


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

demo\dos32\bitmap.ex

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

save_image, read_bitmap, display_text_image


display_text_image


Бинтаксис:

include image.e

display_text_image(s1, s2)

ОписаниС:

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран 2-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ряд символов c Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, начиная с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ экранной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. АргумСнт s1 являСтся двухэлСмСнтным рядом, содСрТащим ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ экранной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ - строка s1[1], ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° s1[2]. АргумСнт s2 состоит ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… рядов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся строкой Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ символ выводится Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ s1. Π”Ρ€ΡƒΠ³ΠΈΠ΅ символы ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π΅Π΅ ΠΈ Π½ΠΈΠΆΠ΅ этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Атрибут слСдуСт Π·Π° символом ΠΈ своим ΠΊΠΎΠ΄ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ символа ΠΈ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½. Под DOS32 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ прСдставляСт собой сумму Π½ΠΎΠΌΠ΅Ρ€Π° Ρ†Π²Π΅Ρ‚Π° ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° 16 Π½ΠΎΠΌΠ΅Ρ€Π° Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.