Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Одним ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… понятий, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сталкиваСтся программист, являСтся Ρ€Π°Π±ΠΎΡ‚Π° со списочными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ справочника. ИмСнно здСсь Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части для дальнСйшСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ чтСния Π΄Π°Π½Π½Ρ‹Ρ….

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам списка часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам выполнСния ΠΈΠ»ΠΈ сущСствСнному замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. ПониманиС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылкой Π½Π° строку ΠΈ самой строкой Π² памяти критичСски Π²Π°ΠΆΠ½ΠΎ для написания эффСктивного ΠΊΠΎΠ΄Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

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

ΠžΡΠ½ΠΎΠ²Ρ‹ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

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

Π§Π°Ρ‰Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ†ΠΈΠΊΠ» Для КаТдого, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски прСдоставляСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. Π­Ρ‚Π° пСрСмСнная ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ самый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ. Однако

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ строка Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ собствСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ событиями. Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ситуация иная: здСсь Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ нСпосрСдствСнно с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, сСриализованными ΠΈΠ· Π±Π°Π·Ρ‹.

πŸ’‘

ВсСгда провСряйтС Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π’ΠΈΠΏΠ—Π½Ρ‡(), Ссли Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ вСтвится Π² зависимости ΠΎΡ‚ источника Π΄Π°Π½Π½Ρ‹Ρ… (Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°).

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ получСния строки Π² Ρ†ΠΈΠΊΠ»Π΅. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π΅ создаСм Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ссылку Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнты.

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π§ Из Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹ Π¦ΠΈΠΊΠ»

// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π§ содСрТит ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π§.НомСнклатура);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ для стандартных ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠ². Однако ΠΎΠ½ Π½Π΅ всСгда позволяСт Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ курсора Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся ΠΏΡ€ΠΈ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ

Π’ ситуациях, ΠΊΠΎΠ³Π΄Π° порядок ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π²Π°ΠΆΠ΅Π½ ΠΈΠ»ΠΈ трСбуСтся доступ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строкС ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ индСксация. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй Π² 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ числовому индСксу, начиная с нуля.

ИспользованиС индСкса Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особой остороТности. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ индСкс сущСствуСт Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС систСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния, прСрывая Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипта.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ элСмСнту ΠΏΠΎ индСксу всСгда провСряйтС условиС ИндСкс < ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(). Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ β€” самая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ скриптов ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ пустых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ прямой индСксации являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(). Он позволяСт бСзопасно ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ элСмСнт, возвращая НСопрСдСлСно, Ссли индСкс Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ устойчивым ΠΊ измСнСниям Π΄Π°Π½Π½Ρ‹Ρ….

Π˜Π½Π΄Π΅ΠΊΡΠΡƒΠΆΠ½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ = 5;

Если Π˜Π½Π΄Π΅ΠΊΡΠΡƒΠΆΠ½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ < Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π’ΠΎΠ³Π΄Π°

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(Π˜Π½Π΄Π΅ΠΊΡΠΡƒΠΆΠ½ΠΎΠΉΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ);

// Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π³Π΄Π΅ позиция элСмСнта вычисляСтся динамичСски. НапримСр, ΠΏΡ€ΠΈ поискС строки с максимальной Ρ†Π΅Π½ΠΎΠΉ ΠΈΠ»ΠΈ спСцифичСским коэффициСнтом.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π¦ΠΈΠΊΠ» Для КаТдого
ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу
ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ
Поиск Ρ‡Π΅Ρ€Π΅Π· запрос

Поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ

Часто Π·Π°Π΄Π°Ρ‡Π° состоит Π½Π΅ Π² ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ всСх строк, Π° Π² поискС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ записи, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ прСдоставляСт встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ выполняСт Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части. Если совпадСний Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ НСопрСдСлСно. Π­Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ написания Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² с Ρ„Π»Π°Π³Π°ΠΌΠΈ.

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

НуТнаяНомСнклатура = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠšΠΎΠ΄Ρƒ("000055");

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π§ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ("НомСнклатура", НуТнаяНомСнклатура);

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π§ = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

// Π›ΠΎΠ³ΠΈΠΊΠ° добавлСния Π½ΠΎΠ²ΠΎΠΉ строки

Π˜Π½Π°Ρ‡Π΅

// Π›ΠΎΠ³ΠΈΠΊΠ° измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строки

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ИспользованиС ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Однако слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Ссли поиск выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ вырасти Π΄ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ поиска

Если табличная Ρ‡Π°ΡΡ‚ΡŒ содСрТит тысячи строк ΠΈ поиск выполняСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ индСкса ΠΈΠ»ΠΈ использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° БоотвСтствиС для ускорСния доступа.

Π Π°Π±ΠΎΡ‚Π° с курсором ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкой

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ 1Π‘ понятиС "тСкущая строка" ΠΈΠΌΠ΅Π΅Ρ‚ физичСский смысл, связанный с ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ курсора Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π° экранС. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ этой строки Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обращСния ΠΊ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части доступСн Ρ‡Π΅Ρ€Π΅Π· элСмСнты Ρ„ΠΎΡ€ΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит курсор ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ выдСлСния.

Битуация услоТняСтся, Ссли трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку, Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² спискС. Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк.

  • πŸ“ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Π’Π§.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ для получСния Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ строки.
  • πŸ“ Для мноТСствСнного выдСлСния примСняйтС Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.
  • πŸ“ ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях понятиС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ курсора отсутствуСт.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ контСкст выполнСния ΠΊΠΎΠ΄Π°. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ доступ ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ сСрвСрном Π²Ρ‹Π·ΠΎΠ²Π΅ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ· сСрвСрного контСкста (Π·Π° ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ &НаБСрвСрС ΠΊΠΎΠ΄ΠΎΠΌ) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° сСрвСрС Π½Π΅Ρ‚ понятия фокуса Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… строк ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ для чтСния, Π° для создания Π½ΠΎΠ²ΠΎΠΉ записи Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ. Π’ 1Π‘ сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части со всСми Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌΠΈ.

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() Π² сочСтании с присваиваниСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ явным ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ структуры. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ простоС присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ создаСт копию, Π° лишь создаСт Π½ΠΎΠ²ΡƒΡŽ ссылку Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти.

Если ваша Ρ†Π΅Π»ΡŒ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ копию строки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ() с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ созданиСм Π½ΠΎΠ²ΠΎΠΉ строки.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ИспользованиС памяти
Π‘Ρ‚Ρ€ΠΎΠΊΠ°2 = Π‘Ρ‚Ρ€ΠΎΠΊΠ°1 Бсылка Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ МинимальноС
НоваяБтрока = Π’Π§.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() ΠŸΡƒΡΡ‚Π°Ρ новая строка Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ΄ структуру
Копия = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°1) НСзависимая копия Π΄Π°Π½Π½Ρ‹Ρ… ПолноС Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ массовом ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ строк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ, ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ выдСлСния памяти становится Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΉ, Ссли Π² Π½ΠΈΡ… Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ нСобходимости.

β˜‘οΈ Алгоритм бСзопасного копирования строки

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки

НаиболСС распространСнной ошибкой ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями являСтся модификация ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π½Π΅ΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строк Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Для КаТдого ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому повСдСнию Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ пропуску элСмСнтов.

Если трСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, бСзопаснСС всСго ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ индСксы удаляСмых строк Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ список, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (ΠΎΡ‚ большСго индСкса ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ). Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сдвиг индСксов ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ элСмСнтов.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ записи ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° всС Π΅Π³ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ части Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ слишком Π΄ΠΎΠ»Π³ΠΎ, замСдляя Ρ€Π°Π±ΠΎΡ‚Ρƒ всСй систСмы.

// ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’Π§ Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0 Π’ΠΎΠ³Π΄Π°

Π’Π§.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°); // ΠžΠ¨Π˜Π‘ΠšΠ!

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС

Для ИндСкс = Π’Π§.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Если Π’Π§[ИндСкс].ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0 Π’ΠΎΠ³Π΄Π°

Π’Π§.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

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

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ измСняйтС состав ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅) Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° этой ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎ индСксам для удалСния.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°?

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

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΈΠ· внСшнСго ΠΎΡ‚Ρ‡Π΅Ρ‚Π°?

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ внСшнСго ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ”Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ источнику Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· конструктор запросов, ΡƒΠΊΠ°Π·Π°Π² имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

МоТно Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Ρ‡Π΅Ρ€Π΅Π· запрос?

Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.Π’ΠΎΠ²Π°Ρ€Ρ‹). Однако Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ΠΎΠΌ записСй, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 1Π‘, поэтому Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ, Ссли Π½Π°ΠΉΠ΄Π΅Π½ΠΎ нСсколько совпадСний?

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ ссылку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡƒΡŽ строку, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ совпадСния ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Для получСния всСх совпадСний Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° с условиСм.