ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ символов Π² тСкстС β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых частых Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Π‘Π΅Π· этого Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅, Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ банальной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ коррСктности Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Казалось Π±Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅? Но Π² 1Π‘ Π΅ΡΡ‚ΡŒ свои Π½ΡŽΠ°Π½ΡΡ‹: здСсь Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ особСнности ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

МногиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ достаточно Π½Π°ΠΆΠ°Ρ‚ΡŒ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() β€” ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΆΠ΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ строками, Π° Π²ΠΎΡ‚ с полями Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями ΠΈΠ»ΠΈ HTML-тСкстами ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² придСтся ΠΏΠΎΠ²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ 5 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… способов подсчСта символов β€” ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…, с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ пояснСниями, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ распространСнным ошибкам, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подсчСт Π΄Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. НапримСр, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ число Π½Π° 30% большС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ количСства символов Π² тСкстС с пСрСносами строк. Или ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² PDF-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, сформированных Ρ‡Π΅Ρ€Π΅Π· 1Π‘:ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ. ВсС эти случаи Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Ρ‹ Π½ΠΈΠΆΠ΅ с практичСскими рСкомСндациями.

πŸ“Š Как часто Π²Π°ΠΌ приходится ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² 1Π‘?
Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ
НСсколько Ρ€Π°Π· Π² нСдСлю
Π Π΅Π΄ΠΊΠΎ, ΠΏΠΎ нСобходимости
Никогда Π½Π΅ сталкивался

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°()

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

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°("ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста для подсчСта");

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, всС элСмСнтарно. Но Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… камня, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚:

  • πŸ”Ή ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° matters. Π’ UTF-8 ΠΎΠ΄ΠΈΠ½ символ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎ 4 Π±Π°ΠΉΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, эмодзи ΠΈΠ»ΠΈ китайскиС ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹). Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() считаСт логичСскиС символы, Π° Π½Π΅ Π±Π°ΠΉΡ‚Ρ‹ β€” это Π²Π°ΠΆΠ½ΠΎ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ.
  • πŸ”Ή ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΡ‹ строк. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ \r ΠΈ \n ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы. Если Π² тСкстС ΠΌΠ½ΠΎΠ³ΠΎ Π°Π±Π·Π°Ρ†Π΅Π², Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ.
  • πŸ”Ή NULL-значСния. Если ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ НСопрСдСлСно ΠΈΠ»ΠΈ NULL, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ NULL ΠΈ пСрСносов:

Ѐункция Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ‹ΠΉΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²(ВСкст)

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

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

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

// ЗамСняСм всС Π²ΠΈΠ΄Ρ‹ пСрСносов Π½Π° ΠΎΠ΄ΠΈΠ½ символ для Сдинообразия

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, " ");

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš, " ");

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ конфигурациях с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ совмСстимости 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.2 функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ символы Π²Π½Π΅ BMP (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π΄ΠΊΠΈΠ΅ матСматичСскиС Π·Π½Π°ΠΊΠΈ). Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

2. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ символов Π² полях Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ справочников

Когда Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π½Π΅ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ строкС, Π° Π² ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ ΠΈΠ»ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ справочника), ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ мСняСтся. Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ поля:

  • πŸ“ Π‘Ρ‚Ρ€ΠΎΠΊΠ°: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ПолС) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.
  • πŸ“„ ВСкстовый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (Ρ‚ΠΈΠΏ Π₯ранилищСЗначСния): сначала ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ тСкстовоС прСдставлСниС Ρ‡Π΅Ρ€Π΅Π· ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚().
  • πŸ—ƒοΈ Вабличная Ρ‡Π°ΡΡ‚ΡŒ: ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ΡΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ строкам ΠΈ суммируйтС Π΄Π»ΠΈΠ½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для тСкстового Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»Π΅ ОписаниС Π² справочникС НомСнклатура):

Π’Π΅ΠΊΡΡ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΡ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ОписаниС.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚();

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π’Π΅ΠΊΡΡ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΡ);

Для Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, подсчСт символов Π²ΠΎ всСх строках ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅):

Π‘ΡƒΠΌΠΌΠ°Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = 0;

Для КаТдого БтрокаВабличнойЧасти Из Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹ Π¦ΠΈΠΊΠ»

Π‘ΡƒΠΌΠΌΠ°Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘ΡƒΠΌΠΌΠ°Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² + Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(БтрокаВабличнойЧасти.ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅);

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ поля (строка/тСкстовый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚/табличная Ρ‡Π°ΡΡ‚ΡŒ)

Π£Ρ‡Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (UTF-8 ΠΈΠ»ΠΈ Windows-1251)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ NULL-значСния

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² строки Ρ‡Π΅Ρ€Π΅Π· ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚()

-->

Если Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘Ρ‡Π΅Ρ‚-Ρ„Π°ΠΊΡ‚ΡƒΡ€Π°), Π³Π΄Π΅ тСкст формируСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ 1Π‘:ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

ΠœΠ°ΠΊΠ΅Ρ‚ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°ΡΠ€ΠΎΡ€ΠΌΠ°();

Π’Π΅ΠΊΡΡ‚Π”Π»ΡΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π° = ΠœΠ°ΠΊΠ΅Ρ‚.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚();

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π’Π΅ΠΊΡΡ‚Π”Π»ΡΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π°);

3. Π£Ρ‡Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… символов

Часто трСбуСтся ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ символы, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, табуляции ΠΈΠ»ΠΈ слуТСбныС Π·Π½Π°ΠΊΠΈ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() ΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°():

Ѐункция ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π’ΠΈΠ΄ΠΈΠΌΡ‹Ρ…Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²(ВСкст)

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

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

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

// УдаляСм всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, табуляции ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹

Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ² = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, " ", "");

Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ² = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Π°Π±, "");

Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ² = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ΠΠ‘ΠŸ, "");

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π’Π΅ΠΊΡΡ‚Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ²);

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

Для Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ словами, Π½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ лишниС) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярныС выраТСния:

ВСкст = "   ΠŸΡ€ΠΈΠΌΠ΅Ρ€   тСкста  с   лишними   ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ   ";

РСгулярка = Новый РСгулярноСВыраТСниС("\s+");

ВСкстНормализованный = РСгулярка.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, " ");

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкстНормализованный); // 30 (вмСсто 42)

Π‘ΠΈΠΌΠ²ΠΎΠ» ОписаниС Код Π² 1Π‘ УчитываСтся Π² Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°()
ΠŸΡ€ΠΎΠ±Π΅Π» ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π» (" ") " " Π”Π°
Вабуляция Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ табуляция Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Π°Π± Π”Π°
НСразрывный ΠΏΡ€ΠΎΠ±Π΅Π» ΠŸΡ€ΠΎΠ±Π΅Π», Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ пСрСнос Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ΠΠ‘ΠŸ Π”Π°
ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строки Windows-пСрСнос (\r\n) Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π”Π° (2 символа)
Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Unix-пСрСнос (\n) Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš Π”Π°
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстами, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· Microsoft Word ΠΈΠ»ΠΈ Excel, Π² строкС ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы форматирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, U+2028 β€” Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ строк). Π˜Ρ… Ρ‚ΠΎΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΡ€ΠΈ просмотрС. Для очистки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8232), ""); // УдаляСм U+2028

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(8233), ""); // УдаляСм U+2029

4. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ символов Π² HTML ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ тСкстС

Если тСкст содСрТит HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· поля ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅Π’ΠΎΠ²Π°Ρ€Π° с ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ссылками), прямая функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() посчитаСт ΠΈ Ρ‚Π΅Π³ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

Ѐункция ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²Π‘Π΅Π·HTML(HTMLВСкст)

Если HTMLВСкст = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

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

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

// УдаляСм всС HTML-Ρ‚Π΅Π³ΠΈ

РСгулярка = Новый РСгулярноСВыраТСниС("<[^>]+>");

ВСкстБСзВСгов = РСгулярка.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(HTMLВСкст, "");

// УдаляСм лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ пСрСносы

ВСкстБСзВСгов = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкстБСзВСгов, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, " ");

ВСкстБСзВСгов = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкстБСзВСгов, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš, " ");

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкстБСзВСгов);

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

Для тСкстов с RTF-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² полях Ρ‚ΠΈΠΏΠ° Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚) ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ, Π½ΠΎ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ слоТнСС:

РСгулярка = Новый РСгулярноСВыраТСниС("\{\\\[^{}]+\}"); // УдаляСм RTF-Ρ‚Π΅Π³ΠΈ

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ нюанс: ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с HTML ΠΈΠ· 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.20+ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ 1Π‘:ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ слуТСбныС символы Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, U+FEFF β€” ΠΌΠ΅Ρ‚ΠΊΠ° порядка Π±Π°ΠΉΡ‚ΠΎΠ²). Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ подсчСтом:

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(65279), ""); // УдаляСм BOM
πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² тСкстС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ ΠΏΠΎ SMS ΠΈΠ»ΠΈ Π² Telegram, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘ΠΎΠΊΡ€Π›ΠŸ(ВСкст)) β€” ΠΎΠ½Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строк, Ρ‡Ρ‚ΠΎ сэкономит Π΄ΠΎ 10% символов Π² Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… сообщСниях.

5. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ подсчСт с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ (UTF-8)

Когда тСкст содСрТит ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ символы (ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°, ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹, эмодзи), стандартная Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ количСство Π±Π°ΠΉΡ‚, Π° Π½Π΅ символов. Для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Ѐункция ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘Π°ΠΉΡ‚Π’UTF8(ВСкст)

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

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

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

// ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ строку Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ = Новый Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅(ВСкст, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅.Π Π°Π·ΠΌΠ΅Ρ€();

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ для строки с эмодзи:

ВСкст = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚! 😊";

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²: " + Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст)); // 9

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘Π°ΠΉΡ‚ Π² UTF-8: " + ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘Π°ΠΉΡ‚Π’UTF8(ВСкст)); // 13

Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ количСства символов ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ расчСт:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π Π°Π·ΠΌΠ΅Ρ€Π’Π‘Π°ΠΉΡ‚Π°Ρ… / 1.5; // ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ для смСшанного тСкста (Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π° + ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°)
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ конфигурациях с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ 1Π‘:Π›ΠΈΠ½ΠΊ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· REST API всСгда уточняйтС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° сторонС получатСля. НСкоторыС систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Битрикс24) ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ…, Π° Π½Π΅ Π² символах.

6. Автоматизация подсчСта Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…

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

// ΠžΠ±Ρ‰ΠΈΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.РаботаБВСкстом

Ѐункция ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ = Π˜ΡΡ‚ΠΈΠ½Π°, Π£Π΄Π°Π»ΡΡ‚ΡŒHTML = Π›ΠΎΠΆΡŒ) Экспорт

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

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

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

ВСкст = ?(Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π₯ранилищСЗначСния"), Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚(), Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Если Π£Π΄Π°Π»ΡΡ‚ΡŒHTML Π’ΠΎΠ³Π΄Π°

РСгулярка = Новый РСгулярноСВыраТСниС("<[^>]+>");

ВСкст = РСгулярка.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, "");

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

Если НЕ Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π’ΠΎΠ³Π΄Π°

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, " ", "");

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Π°Π±, "");

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст);

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² любом мСстС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ:

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = РаботаБВСкстом.ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²(Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π›ΠΎΠΆΡŒ, Π˜ΡΡ‚ΠΈΠ½Π°);

Для добавлСния подсчСта Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Акт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚) создайтС вычисляСмоС ΠΏΠΎΠ»Π΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ схСму ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ рСсурс с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
    Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ОписаниС) Как Число)
  3. НастройтС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ поля Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅.
Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² динамичСском спискС?

Для подсчСта символов Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ динамичСского списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события ΠŸΡ€ΠΈΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π‘ΠΏΠΈΡΠΎΠΊΠŸΡ€ΠΈΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π”Π°Π½Π½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ)

Π”Π°Π½Π½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π”Π»ΠΈΠ½Π°ΠžΠΏΠΈΡΠ°Π½ΠΈΡ", Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π”Π°Π½Π½Ρ‹Π΅Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.ОписаниС));

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

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π”Π»ΠΈΠ½Π°ΠžΠΏΠΈΡΠ°Π½ΠΈΡ Π² настройки списка.

7. РаспространСнныС ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ подсчСтС символов. Π’ΠΎΡ‚ TOP-5 ошибок ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ:

  • 🚫 Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ NULL. ВсСгда провСряйтС Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π° НСопрСдСлСно, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния.
  • 🚫 ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Если тСкст мСняСтся динамичСски (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π²ΠΎΠ΄Π°), Π½Π΅ ΠΊΡΡˆΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() β€” пСрСсчитывайтС ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.
  • 🚫 НСучСт пСрСносов. Π’ тСкстах с Π°Π±Π·Π°Ρ†Π°ΠΌΠΈ \r\n считаСтся ΠΊΠ°ΠΊ 2 символа. Для Сдинообразия замСняйтС ΠΈΡ… Π½Π° \n.
  • 🚫 ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ. Π’ Π±Π°Π·Π°Ρ… с Windows-1251 кирилличСскиС символы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 1 Π±Π°ΠΉΡ‚, Π° Π² UTF-8 β€” 2 Π±Π°ΠΉΡ‚Π°. УточняйтС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π±Π°Π·Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π‘Ρ‚Ρ€ΠΎΠΊΠ‘Π°Π·Ρ‹Π”Π°Π½Π½Ρ‹Ρ…().
  • 🚫 HTML/RTF Π±Π΅Π· очистки. Π—Π°Π±Ρ‹Π² ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π°Π²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° 20-50%.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… случаСв:

Ѐункция Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

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

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

// ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΊ строковому Ρ‚ΠΈΠΏΡƒ

ВСкст = ?(Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π₯ранилищСЗначСния"), Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚(),

?(Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = Π’ΠΈΠΏ("Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅"), Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(),

Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)));

// ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΎΡ‚ HTML/RTF

РСгуляркаHTML = Новый РСгулярноСВыраТСниС("<[^>]+>");

ВСкст = РСгуляркаHTML.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, "");

// НормализуСм пСрСносы ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, "\n");

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš, "\n");

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Π°Π±, " ");

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст);

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

πŸ’‘

ВсСгда тСстируйтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ подсчСта Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаях: пустая строка, NULL, тСкст с эмодзи, HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ символы. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

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

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² ячСйкС Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚() для ячСйки, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°():

ВСкстЯчСйки = Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠžΠ±Π»Π°ΡΡ‚ΡŒ(1,1).ВСкст;

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкстЯчСйки);

Для подсчСта Π²ΠΎ всСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ΡΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ всСм ячСйкам.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число большС, Ρ‡Π΅ΠΌ Π²ΠΈΠ΄Π½ΠΎ Π² тСкстС?

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

Для Π‘Ρ‡ = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст) Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‡ + ": " + Π‘Ρ€Π΅Π΄(ВСкст, Π‘Ρ‡, 1) + " (Код: " + КодБимвола(Π‘Ρ€Π΅Π΄(ВСкст, Π‘Ρ‡, 1)) + ")");

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

Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ "лишниС" символы.

Как ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π² ΠΏΠΎΠ»Π΅ ΠΏΠΎ количСству символов?

НастройтС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ для поля Π²Π²ΠΎΠ΄Π°:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΠΎΠ»Π΅ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)

Если Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) > 500 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² 500 символов!");

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π›Π΅Π²(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, 500);

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

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

Для справочников ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ событиС ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ.

МоТно Π»ΠΈ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² PDF, сформированном ΠΈΠ· 1Π‘?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” нСльзя. PDF β€” это Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΈ количСство символов Π² Π½Π΅ΠΌ Π½Π΅ хранится Π² явном Π²ΠΈΠ΄Π΅. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

  1. ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π΄ΠΎ формирования PDF (Π² исходном тСкстС).
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, iTextSharp) для парсинга PDF Ρ‡Π΅Ρ€Π΅Π· COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  3. Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PDF Π² тСкст Ρ‡Π΅Ρ€Π΅Π· Adobe Acrobat ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ самый Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы Π² запросС 1Π‘?

Π’ языкС запросов Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для подсчСта символов, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

ВЫБРАВЬ

Π”Π›Π˜ΠΠ(Π—Π°ΠΊΠ°Π·.ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ) КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²

Π˜Π—

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π° КАК Π—Π°ΠΊΠ°Π·

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π”Π›Π˜ΠΠ() Π² запросС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚Ρ‹, Π° Π½Π΅ символы! Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с UTF-8 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² запроса Π² 1Π‘-ΠΊΠΎΠ΄Π΅.