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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ 5 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… способов получСния индСкса строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части β€” ΠΎΡ‚ простых встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для слоТных сцСнариСв. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с индСксами Π² УправляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСрС. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ 1Π‘-программистам, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ спСциалистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ для Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ послСдниС Ρ€Π΅Π»ΠΈΠ·Ρ‹).

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСкс строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½

ИндСкс строки β€” это Π΅Ρ‘ порядковый Π½ΠΎΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ строк Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части, начиная с нуля. НапримСр, Ссли Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части 3 строки, ΠΈΡ… индСксы Π±ΡƒΠ΄ΡƒΡ‚ 0, 1 ΠΈ 2. Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для:

  • πŸ”Ή АдрСсного доступа ΠΊ строкС Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ().
  • πŸ”Ή УдалСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс)).
  • πŸ”Ή ЦикличСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ² строк).
  • πŸ”Ή БравнСния строк ΠΏΠΎ ΠΈΡ… полоТСнию Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСкс β€” это динамичСская Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ:

  • πŸ”„ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… строк Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ сСрСдину Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.
  • πŸ—‘οΈ Π£Π΄Π°Π»Π΅Π½ΠΈΠΈ строк (индСксы ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ строк ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ).
  • πŸ”€ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ строк Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π² управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…).
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.2 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях нумСрация строк Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частях Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ с 1, Π° Π½Π΅ с 0. Π’ 8.3 это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ измСнилось, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ошибкам ΠΏΡ€ΠΈ пСрСносС ΠΊΠΎΠ΄Π° со старых ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ порядок строк нСзависимо ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, НомСрБтроки) ΠΈ заполняйтС Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ.

2. Бпособ 1: ΠœΠ΅Ρ‚ΠΎΠ΄ ИндСкс() для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ ИндСкс(). Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π² контСкстС Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступСн ΠΊΠ°ΠΊ Π² управляСмых, Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ (Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Ρ„ΠΎΡ€ΠΌΡ‹):

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒΠ’ΠΎΠ²Π°Ρ€Ρ‹ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ИндСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки: " + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ИндСкс());

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ИндСкс():

  • βœ… Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ строки (Ρ‚ΠΎΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит курсор).
  • βœ… Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -1, Ссли Π½ΠΈ ΠΎΠ΄Π½Π° строка Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π°.
  • ❌ НС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для сСрвСрных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ (Ρ‚Π°ΠΌ Π½Π΅Ρ‚ понятия "тСкущая строка").
  • ❌ НС позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ строки ΠΏΠΎ Π΅Ρ‘ содСрТимому.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ ИндСкс() ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли табличная Ρ‡Π°ΡΡ‚ΡŒ привязана ΠΊ динамичСскому списку с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅.ИндСкс.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки ΠΏΠΎ Π΅Ρ‘ содСрТимому (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ Ρ‚ΠΎΠ²Π°Ρ€Π°), ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ способу.

πŸ“Š Какой Ρ‚ΠΈΠΏ Ρ„ΠΎΡ€ΠΌ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² 1Π‘?
УправляСмыС Ρ„ΠΎΡ€ΠΌΡ‹
ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹
Оба Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ
НС знаю, Π² Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

3. Бпособ 2: Поиск индСкса ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (ΠΌΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки())

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ индСкс строки ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Ρ‚Π΅), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки(). Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠΉ подходящСй строки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для поиска индСкса строки ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ Ρ‚ΠΎΠ²Π°Ρ€Π°:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΠ°ΠΉΡ‚ΠΈΠ˜Π½Π΄Π΅ΠΊΡΠŸΠΎΠΡ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ(Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ, Артикул)

// Находим всС строки с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠΌ

НайдСнныСБтроки = Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.НайтиБтроки(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Артикул", Артикул));

// Если строки Π½Π°ΠΉΠ΄Π΅Π½Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠΉ

Если НайдСнныСБтроки.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 0 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ИндСкс(НайдСнныСБтроки[0]);

Π˜Π½Π°Ρ‡Π΅

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ -1; // Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°

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

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

  • πŸ” ΠœΠ΅Ρ‚ΠΎΠ΄ НайтиБтроки() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ структуру с условиями поиска (ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΏΠΎΠ»Π΅ΠΉ).
  • πŸ“Œ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив строк, поэтому Ссли Π½Π°ΠΉΠ΄Π΅Π½ΠΎ нСсколько совпадСний, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ индСкс Π½ΡƒΠΆΠ΅Π½.
  • ⚑ Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, ΠΈ Π½Π° сСрвСрС (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ИндСкс()).
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° НайтиБтроки() ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€
УсловиСПоиска Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° с ΠΏΠ°Ρ€Π°ΠΌΠΈ "ИмяПоля - Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("НомСнклатура, Артикул", НомСнклатура, "АРВ-001")
ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ° НаправлСниС поиска (ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Π’ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ»ΠΈ ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Назад) ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Π’ΠΏΠ΅Ρ€Π΅Π΄
ΠŸΠ΅Ρ€Π²Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ поиск (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” пСрвая строка) Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ[0]

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ всС индСксы строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ»:

НайдСнныСБтроки = Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.НайтиБтроки(УсловиС);

Π˜Π½Π΄Π΅ΠΊΡΡ‹ = Новый Массив();

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из НайдСнныСБтроки Π¦ΠΈΠΊΠ»

Π˜Π½Π΄Π΅ΠΊΡΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ИндСкс(Π‘Ρ‚Ρ€ΠΎΠΊΠ°));

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

πŸ’‘

Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ строку ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ полю (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ Π“Π£Π˜Π”), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ НайтиБтроки() с ΠΎΠ΄Π½ΠΈΠΌ условиСм β€” это ускорит поиск Π² 2-3 Ρ€Π°Π·Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСх строк Π² Ρ†ΠΈΠΊΠ»Π΅.

4. Бпособ 3: ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ строк Π² Ρ†ΠΈΠΊΠ»Π΅ (ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄)

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска индСкса строки ΠΏΠΎ нСскольким полям:

Ѐункция ΠΠ°ΠΉΡ‚ΠΈΠ˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠŸΠΎΠ£ΡΠ»ΠΎΠ²ΠΈΡŽ(Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ, УсловиС)

// УсловиС - функция, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°/Π›ΠΎΠΆΡŒ

ИндСкс = 0;

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

Если УсловиС(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ИндСкс;

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

ИндСкс = ИндСкс + 1;

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ -1; // Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

ИндСкс = ΠΠ°ΠΉΡ‚ΠΈΠ˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠŸΠΎΠ£ΡΠ»ΠΎΠ²ΠΈΡŽ(

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹,

Ѐункция(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСнклатура = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€") И Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ > 5;

);

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • βœ… Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π»ΡŽΠ±Ρ‹Ρ… контСкстах (ΠΊΠ»ΠΈΠ΅Π½Ρ‚, сСрвСр, внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ).
  • βœ… ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ условия (Π΄Π°ΠΆΠ΅ с вычислСниями).
  • βœ… ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиск строки с максимальной суммой).

НСдостатки:

  • ❌ МСдлСннСС, Ρ‡Π΅ΠΌ НайтиБтроки(), для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†.
  • ❌ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ индСкса (Π»Π΅Π³ΠΊΠΎ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ с ИндСкс = ИндСкс + 1).
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ строк Π² Ρ†ΠΈΠΊΠ»Π΅ Для КаТдого нСльзя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ (Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки) β€” это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкС "ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°". Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» (ΠΎΡ‚ послСднСй строки ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ) ΠΈΠ»ΠΈ собирайтС индСксы Π² массив для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ удалСния.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» (ΠΎΡ‚ послСднСй строки ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ) ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ|Π‘ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ индСксы Π² массив, Π° Π½Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°|Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† (1000+ строк) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ НайтиБтроки() вмСсто ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°|Π’Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ вычислСния Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ†ΠΈΠΊΠ»Π°-->

5. Бпособ 4: Π Π°Π±ΠΎΡ‚Π° с индСксами Π½Π° сСрвСрС (для программистов)

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° сСрвСрС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) доступ ΠΊ индСксам строк ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности. Π—Π΄Π΅ΡΡŒ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клиСнтскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ИндСкс(), Π½ΠΎ Π·Π°Ρ‚ΠΎ доступны Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ инструмСнты.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹:

  1. ΠŸΡ€ΡΠΌΠΎΠΉ доступ ΠΏΠΎ индСксу: Вабличная Ρ‡Π°ΡΡ‚ΡŒ Π² 1Π‘ β€” это коллСкция, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ строкам ΠΏΠΎ индСксу Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ:
    ΠŸΠ΅Ρ€Π²Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹[0]; // ИндСкс 0
    

    ВтораяБтрока = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹[1]; // ИндСкс 1

  2. ΠœΠ΅Ρ‚ΠΎΠ΄ ИндСкс() для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° строки: Если Ρƒ вас Π΅ΡΡ‚ΡŒ ссылка Π½Π° строку, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ индСкс:
    ИндСкс = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ИндСкс(ВСкущаяБтрока);
  3. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹: На сСрвСрС ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Для ИндСкс = 0 По Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сСрвСрной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для поиска индСкса ΠΏΠΎ нСскольким полям:

&НаБСрвСрС

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈΠŸΠΎΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ(Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ, ЗначСнияРСквизитов)

// ЗначСнияРСквизитов - Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° с ΠΏΠ°Ρ€Π°ΠΌΠΈ "Π˜ΠΌΡΠ Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° - Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"

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

БоотвСтствуСт = Π˜ΡΡ‚ΠΈΠ½Π°;

Для КаТдого ΠŸΠ°Ρ€Π° Из ЗначСнияРСквизитов Π¦ΠΈΠΊΠ»

Если Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ[ИндСкс][ΠŸΠ°Ρ€Π°.ΠšΠ»ΡŽΡ‡] <> ΠŸΠ°Ρ€Π°.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°

БоотвСтствуСт = Π›ΠΎΠΆΡŒ;

ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ;

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

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

Если БоотвСтствуСт Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ИндСкс;

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ -1;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’Π°ΠΆΠ½Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹ сСрвСрной Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  • πŸ”§ На сСрвСрС Π½Π΅Ρ‚ понятия "тСкущая строка" β€” всС манипуляции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π½Π΅ с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ прСдставлСниСм.
  • πŸ“‘ Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ индСкса ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • πŸ”„ ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π½Π° сСрвСрС индСксы строк ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ β€” ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ это ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ/Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ.
Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ индСкс строки с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСр?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ индСкс строки ΠΈΠ· клиСнтского ΠΊΠΎΠ΄Π° Π² ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅(Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ) Экспорт

// ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄

Π‘Π΅Ρ€Π²Π΅Ρ€.ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ);

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

&НаБСрвСрС

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ)

// Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹[Π˜Π½Π΄Π΅ΠΊΡΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ];

// ... ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ индСкса Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ строка Π½Π΅ Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°).

6. Бпособ 5: Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² динамичСских списках ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ…

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для управляСмой Ρ„ΠΎΡ€ΠΌΡ‹:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜Π½Π΄Π΅ΠΊΡΠ’Π”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΌΠ‘ΠΏΠΈΡΠΊΠ΅(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹)

// Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹ - Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π’ΠΎΠ²Π°Ρ€Ρ‹")

ВСкущаяБтрока = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅;

Если ВСкущаяБтрока = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ -1;

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

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ индСкс Π² исходной Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части (Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° ΠΎΡ‚Π±ΠΎΡ€Π°)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹.ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ИндСкс(ВСкущаяБтрока);

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСскими списками:

  • πŸ” Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки, Π° Π½Π΅ Π΅Ρ‘ индСкс.
  • πŸ“‰ ИндСкс Π² динамичСском спискС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с индСксом Π² исходной Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΈΠ·-Π·Π° ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ² ΠΈ сортировок.
  • πŸ”„ ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ сортировки индСксы строк ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ.

Для ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π‘ΠšΠ”) индСксы строк ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π·:

  • πŸ“Š ΠžΠ±Π»Π°ΡΡ‚ΡŒΠ―Ρ‡Π΅ΠΉΠΊΠΈ.НомСрБтроки β€” Π½ΠΎΠΌΠ΅Ρ€ строки Π² области Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ”’ Π”Π°Π½Π½Ρ‹Π΅Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ.ИндСкс β€” индСкс строки Π² исходных Π΄Π°Π½Π½Ρ‹Ρ….
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ… с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ индСксы строк Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ индСксам Π² исходной Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части. Для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ сопоставлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹).

7. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами строк Π² 1Π‘ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС ΠΈΠ· Π½ΠΈΡ… ΠΈ способы ΠΈΡ… прСдотвращСния:

Ошибка ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ
ИндСкс Ρ€Π°Π²Π΅Π½ -1, хотя строка сущСствуСт Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ <> НСопрСдСлСно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ индСкса.
НСсовпадСниС индСксов Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ сСрвСрС На ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ индСкс бСрётся ΠΈΠ· Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния (с ΠΎΡ‚Π±ΠΎΡ€Π°ΠΌΠΈ), Π½Π° сСрвСрС β€” ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° сСрвСр ссылку Π½Π° строку, Π° Π½Π΅ индСкс.
Ошибка "ИндСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива" ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС удалСния). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() ΠΏΠ΅Ρ€Π΅Π΄ доступом ΠΏΠΎ индСксу.
НСкоррСктная Ρ€Π°Π±ΠΎΡ‚Π° послС сортировки Π˜Π½Π΄Π΅ΠΊΡΡ‹ строк ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ сортировкС, Π½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ порядок ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ИндСкс(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) вмСсто прямого доступа ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ индСксов ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части. НапримСр:

// ΠžΠΏΠ°ΡΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

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

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

Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс); // Π˜Π½Π΄Π΅ΠΊΡΡ‹ сдвинутся, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½!

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

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

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»):

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

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

Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс); // БСзопасно: индСксы Π½Π΅ ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²ΠΏΠ΅Ρ€Π΅Π΄

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

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

πŸ’‘

ВсСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ индСксов ΠΏΠ΅Ρ€Π΅Π΄ доступом ΠΊ строкС. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ "ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹", Ρ‡Ρ‚ΠΎ строка сущСствуСт, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π΅Ρ‘ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΠ½Π΅.

8. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ индСкса Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ строку Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° "Π—Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°", ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‘ индСкс Π² статусной строкС.

Код для управляСмой Ρ„ΠΎΡ€ΠΌΡ‹:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’ΠΎΠ²Π°Ρ€Ρ‹ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку

ВСкущаяБтрока = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅;

Если ВСкущаяБтрока = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Бтатус("Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π°", БтатусБообщСния.Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚;

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

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ индСкс Π² исходной Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части

ИндСкс = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ИндСкс(ВСкущаяБтрока);

// ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (индСксы Π² 1Π‘ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ с 1)

Бтатус("Π’Ρ‹Π±Ρ€Π°Π½Π° строка β„–" + (ИндСкс + 1) + " ΠΈΠ· " + ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ());

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Если Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ строку ΠΏΠΎ индСксу (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒΠŸΠΎΠ˜Π½Π΄Π΅ΠΊΡΡƒ(ИндСкс)

Если ИндСкс >= 0 И ИндСкс < Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Π’ΠΎΠ²Π°Ρ€Ρ‹.Бписок.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π’ΠΎΠ³Π΄Π°

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Π’ΠΎΠ²Π°Ρ€Ρ‹.Бписок.ВСкущаяБтрока = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Π’ΠΎΠ²Π°Ρ€Ρ‹.Бписок[ИндСкс];

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

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’ΠΎΠ²Π°Ρ€Ρ‹ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ИндСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки: " + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ИндСкс());

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ ИндСкс() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ строки с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ порядка (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сортировки ΠΈ ΠΎΡ‚Π±ΠΎΡ€Ρ‹).

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки Π² мобильном ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘?

Π’ мобильном ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° с индСксами строк Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° управляСмым Ρ„ΠΎΡ€ΠΌΠ°ΠΌ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹:

1. Для Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ событиС ΠŸΡ€ΠΈΠ’Ρ‹Π±ΠΎΡ€Π΅ вмСсто ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ.

2. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² мобильном ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0, Π½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠ·-Π·Π° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ интСрфСйса.

3. Для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиска ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ списку) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠžΠΆΠΈΠ΄Π°Π½ΠΈΠ΅(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависания интСрфСйса.

FAQ: ЧастыС вопросы ΠΏΠΎ индСксам строк Π² 1Π‘

πŸ”Ή ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ИндСкс() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -1, Ссли строка Ρ‚ΠΎΡ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅?

Π­Ρ‚ΠΎ происходит Π² Ρ‚Ρ€Ρ‘Ρ… случаях:

  1. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ (курсор стоит Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΈΠ»ΠΈ Π²Π½Π΅ строк).
  2. Π’Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ИндСкс() Π½Π° сСрвСрС, Π³Π΄Π΅ Π½Π΅Ρ‚ понятия "тСкущая строка".
  3. Вабличная Ρ‡Π°ΡΡ‚ΡŒ привязана ΠΊ динамичСскому списку с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ, ΠΈ строка Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚Π±ΠΎΡ€Π°.

РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ИндСкс(БсылкаНаБтроку) вмСсто ИндСкс().

πŸ”Ή Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки ΠΏΠΎ Π΅Ρ‘ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ (Π“Π£Π˜Π”)?

Если Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π˜Π΄Π‘Ρ‚Ρ€ΠΎΠΊΠΈ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ˜Π½Π΄Π΅ΠΊΡΠŸΠΎΠ˜Π΄(Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ, Ид)

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

Если Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ[ИндСкс].Π˜Π΄Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Ид Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ИндСкс;

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ -1;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Для ускорСния поиска ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ соотвСтствиС (ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΌΠ΅ΠΆΠ΄Ρƒ Π“Π£Π˜Π” ΠΈ индСксами.

πŸ”Ή МоТно Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс строки Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅ Π½Π° Π‘ΠšΠ”?

Π’ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ… Π½Π° основС БистСмы ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘ΠšΠ”) индСксы строк ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π·:

  • ΠžΠ±Π»Π°ΡΡ‚ΡŒΠ―Ρ‡Π΅ΠΉΠΊΠΈ.НомСрБтроки β€” Π½ΠΎΠΌΠ΅Ρ€ строки Π² области Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°.
  • Π”Π°Π½Π½Ρ‹Π΅Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ.ИндСкс β€” индСкс строки Π² исходных Π΄Π°Π½Π½Ρ‹Ρ… (Ссли Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’ΠΎΠ²Π°Ρ€Ρ‹Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, ВыбраннаяБтрока, ПолС, Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°ΡΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°)

Π˜Π½Π΄Π΅ΠΊΡΠ’Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ… = ВыбраннаяБтрока.ИндСкс;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ИндСкс Π² исходных Π΄Π°Π½Π½Ρ‹Ρ…: " + Π˜Π½Π΄Π΅ΠΊΡΠ’Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…);

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

πŸ”Ή Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ индСксы строк ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ?

ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ»ΠΈ XML) индСксы строк Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ автоматичСски. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

  1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ).
  2. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ значСниями индСксов:
Для ИндСкс = 0 По Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ»

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹[ИндСкс].ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ = ИндСкс;

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

  1. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… восстановитС порядок строк ΠΏΠΎ этому полю.
πŸ”Ή ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС сортировки индСксы строк "ΡΠ±ΠΈΠ²Π°ΡŽΡ‚ΡΡ"?

ΠŸΡ€ΠΈ сортировкС Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ наимСнованию Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹) Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ порядок строк мСняСтся, Π½ΠΎ ΠΈΡ… индСксы Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°ΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ[ИндСкс].

РСшСниС:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ИндСкс(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) для получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса.
  • ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ сортировку, Ссли Π½ΡƒΠΆΠ΅Π½ строгий порядок строк.
  • Для управляСмых Ρ„ΠΎΡ€ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π€ΠΎΡ€ΠΌΡ‹.Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ вмСсто прямого доступа ΠΏΠΎ индСксу.