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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«VBA для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 105

Автор Π‘Ρ‚ΠΈΠ² Каммингс

Create Text File (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ FileSystemObject)

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись

Open Text File (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ileSystemObject )

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅

Open As Text Stream (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ File )

Π§Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²)


Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Text Stream создаСтся ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° File, Ρ€Π΅ΠΆΠΈΠΌ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° задаСтся ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° OpenAsText Stream с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π΅Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Π·Π²Π°Π½Π½Ρ‹Ρ… констант: For Reading (для чтСния), For Writing (для записи) ΠΈ ForAppending (для добавлСния). НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст Π² ΠΊΠΎΠ½Π΅Ρ† ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Set objTS = objFile.OpenAsTextStreamfForAppending)

ΠžΡ‚ΠΊΡ€Ρ‹Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Text Stream Π² подходящСм Ρ€Π΅ΠΆΠΈΠΌΠ΅ доступа, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с содСрТимым Ρ„Π°ΠΉΠ»Π°. Π’ вашСм распоряТСнии для этого Π΅ΡΡ‚ΡŒ нСсколько простых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

МоТно Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈΠ»ΠΈ строки. Если Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Ρ€Π°Π²Π½Ρ‹ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ построчноС считываниС ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ запись. Когда Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ строки Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строк, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€. Π‘Π°ΠΌΠ° ΠΆΠ΅ "строка" ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· любого числа символов ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа.

Π’ любом случаС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· тСкстового ΠΏΠΎΡ‚ΠΎΠΊΠ°, присвойтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· подходящих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Text Stream. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° подскаТСт Π²Π°ΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

' Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

strНСкоторыйВСкст = Text Stream.ReadLine

Для чтСния прСдусмотрСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.


ΠœΠ΅Ρ‚ΠΎΠ΄ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Text Stream)

ВыполняСмоС дСйствиС

Read (число_символов)

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа символов начиная с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅

ReadLine

Π§Ρ‚Π΅Π½ΠΈΠ΅ всСх символов начиная с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ символа ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку

ReadAll

Π§Ρ‚Π΅Π½ΠΈΠ΅ всСго Ρ„Π°ΠΉΠ»Π°

Skip ( число_символов)

ΠŸΡ€ΠΎΠΏΡƒΡΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа символов ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· символов, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ

SkipLine

ΠŸΡ€ΠΎΠΏΡƒΡΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки Π² Ρ„Π°ΠΉΠ»Π΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· символов, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ строкой


Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ, Π·Π°Π΄Π°ΠΉΡ‚Π΅ тСкст для записи Π² Π²ΠΈΠ΄Π΅ строки ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Write ΠΈΠ»ΠΈ WriteLine, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

' запись строки

objTextStream.Write "Алло, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ!"

' запись значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ символом

' ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку

objTextStream.WriteLine strMyTwoBits


ΠœΠ΅Ρ‚ΠΎΠ΄ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TextStream)

ВыполняСмоС дСйствиС

Write(строка)

Π—Π°ΠΏΠΈΡΡŒ Π² тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строки

WriteLine(строка)

Π—Π°ΠΏΠΈΡΡŒ Π² тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строки с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ символом ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку

WriteBlankLines(число_ строк)

Π—Π°ΠΏΠΈΡΡŒ Π² тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ числа символов ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку


Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ² Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ тСкстового ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈΠ»ΠΈ запись Π² тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ, всСгда Π·Π°ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Text Stream, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ систСмныС рСсурсы ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ смогли ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Close:

objText Stream.Close

ВСкстовыС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈ для чтСния ΠΈ записи ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΏΠΎΡ€Ρ†ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСльзя свободно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкстового ΠΏΠΎΡ‚ΠΎΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ чтСния Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с самого Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΅Π³ΠΎ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°. И хотя ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Skip ΠΈ Ski pLine, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΡ€Ρ‹Π³Π½ΡƒΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число символов ΠΈΠ»ΠΈ строк, Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΡΠΊΠ°ΠΊΠΈΠ²Π°Ρ‚ΡŒ нСльзя - Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° objText Stream. Skip (-10) ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠΊ соТалСнию, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Text Stream Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ свойств, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… прямо Π·Π°Π΄Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ чтСния. Однако ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ тСкстовый ΠΏΠΎΡ‚ΠΎΠΊ, Π° Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Skip ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ мСньшС, Ρ‡Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ 25 символов, начиная с 5-Π³ΠΎ символа Π² Ρ„Π°ΠΉΠ»Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ выполнят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

objTextStream.Close

Set objTextStream = bjFile.OpenAsTextStream(ForWriting)

objTextStream.Skip(4)

objTextStream.Read(25)

ΠŸΡ€ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² тСкстовыС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹ Π΅Ρ‰Π΅ большС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ пропуски Π² Ρ„Π°ΠΉΠ»Π΅. КаТдая ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ опСрация записи начинаСтся Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ прСдыдущая, ΠΈ ΠΏΡ€ΠΈ этом пСрСписываСтся любой тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… позициях Π² Ρ„Π°ΠΉΠ»Π΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ мСстС Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния, Π½Π΅ затрагивая ΠΏΡ€ΠΈ этом ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ тСкст, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ всС содСрТимоС Ρ„Π°ΠΉΠ»Π° Π² строку, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Dictionary

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

Π‘ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Dictionary ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² VBA 5, ΠΈ Π² VBA 6. Но эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ встроСны Π² VBA. Они находятся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Microsoft Scripting Runtime, использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΆΠ΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ". Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Dictionary Π² VBA-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ инструкции, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΌ ΠΏΠΎΠ΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "Бсылки Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Microsoft Scripting Runtime".

БазисныС свСдСния ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Dictionary

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для словарСй ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΡ… создании ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, описанныС Π²Ρ‹ΡˆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ". НапримСр:

Dim dictBigCats As Scri pti ng.Dictionary

Set dictBigCats = CreateObject("Scri pti ng.Dictionary")

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈΠΌΠ΅Π½Π° элСмСнтов ΠΈ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Add:

dictBigCats.Add "Π“Π΅ΠΏΠ°Ρ€Π΄", "Быстрый ΠΈ ΠΏΠΎΠ΄ΠΆΠ°Ρ€Ρ‹ΠΉ"

dictBigCats.Add "Π›Π΅Π²", "Π Ρ‹Ρ‡Π°Ρ‰ΠΈΠΉ ΠΈ Π»ΠΎΡ…ΠΌΠ°Ρ‚Ρ‹ΠΉ"

dictBigCats.Add "ΠŸΠ°Π½Ρ‚Π΅Ρ€Π°", "ЧСрная, Π° Π½Π΅ розовая"

Π›ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Dictionary Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… довольно Π²Π°ΠΆΠ½Ρ‹Ρ… дСталях ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Π΅Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Collection, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Π² Π³Π»Π°Π²Π΅ 12, ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.

* НС трСбуСтся Π·Π½Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° элСмСнтов для доступа ΠΊ Π½ΠΈΠΌ ΠΈ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌ значСниям, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ доступ ΠΊΠΎ всСм элСмСнтам сразу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° For Each . . . Next. НапримСр:

For Each airplane in dictBiplanes

MsgBox dictBiplanes(airplane)

Next

* МоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя элСмСнта, просто присвоив Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

dictVacationDestinations ("Number1") = "Fresno"

* Π’ коллСкциях приходится сначала ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ исходный элСмСнт, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ.

* МоТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС элСмСнты словаря с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° RemoveAll. Для выполнСния Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» For Each . . . Next.

Π—Π° Π½Π΅ΠΈΠΌΠ΅Π½ΠΈΠ΅ΠΌ мСста здСсь Π½Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ сортировки элСмСнтов словарСй ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° подмноТСств элСмСнтов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ критСриям. Π—Π°ΠΌΠ΅Ρ‡Ρƒ лишь, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ со словарями достаточно просто. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Bruce McKinney, Understanding the Dictionary Class, Visual Basic Programmer's Journal, July 1999, (ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Fawcette Technical Publications), доступной Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Internet ΠΏΠΎ адрСсу www.vbpj.com.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Освоив использованиС встроСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² VBA ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π₯отя ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Ρ‚ΠΈΠΏΠ° Sub ΠΈ Function, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСимущСствами.

* Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ всСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ внСсСния ошибок ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

* ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ для чтСния ΠΈ понимания.

* МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΏΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ для создания ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ понадобится всСго ΠΏΠ°Ρ€Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

* Π£ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ прСимущСств ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°, вСроятно, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠΉ, Π½ΠΎ... использованиС ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ классами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² всС ΠΆΠ΅ оказываСтся ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ. А ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. К соТалСнию, я Π½Π΅ ΠΌΠΎΠ³Ρƒ Ρ‚ΡƒΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅ΠΌΡƒ, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сущСствуСт такая мощная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° программирования. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ обсуТдаСтся Π² ΠΊΠ½ΠΈΠ³Π°Ρ…, Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… - Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ VBA.

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ (Ссли ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ Π³Π»Π°Π²Ρƒ 12), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ состоит ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… (свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎ эти Π΄Π°Π½Π½Ρ‹Π΅ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ свойства ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ - ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ такая ΡƒΠΆ слоТная Π·Π°Π΄Π°Ρ‡Π°. Но ΠΏΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ VBA ΠΌΠΎΠ³ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСсколько Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² посвящСны описанию этих ΠΏΡ€Π°Π²ΠΈΠ».