Noi funcții pentru lucrul cu șiruri. Noi funcții pentru lucrul cu șiruri 1s 8.2 numărul de serie al unui caracter dintr-un șir

Tipul String se găsește în toate limbajele de programare. Este primitiv, iar în 1C există multe funcții pentru a lucra cu el. În acest articol vom analiza în detaliu diferitele moduri de lucru cu tipurile de șiruri în 1C 8.3 și 8.2 folosind exemple.

Linia

Pentru a converti o variabilă de orice tip într-un șir, există o funcție cu același nume „String()”. Parametrul de intrare va fi variabila însăși, a cărei reprezentare în șir trebuie obținută.

String(False) // returnează „Nu”
String(12345) // returnează „12.345”
String(CurrentDate()) //"07/21/2017 11:55:36″

Este posibil să convertiți nu numai tipurile primitive într-un șir, ci și altele, de exemplu, elemente de directoare și documente.

SokrLP, SokrL, SokrP

Parametrii de intrare ai acestor funcții sunt o variabilă de tip șir. Funcțiile îndepărtează caractere nesemnificative (spații, întoarceri de căruță etc.): din stânga și din dreapta, doar din stânga și, respectiv, numai din dreapta.

Abreviere ("Spațiile vor fi eliminate pe ambele părți") // "Spațiile vor fi eliminate pe ambele părți"
Abreviere(" Spațiile de pe ambele părți vor fi eliminate ") // " Spațiile din stânga vor fi eliminate "
Abreviere ("Spațiile de pe ambele părți vor fi eliminate") // "Spațiile din dreapta vor fi eliminate"

Leu, corect, mijlociu

Aceste funcții vă permit să tăiați o parte dintr-un șir. Funcția „Left()” va returna porțiunea unui șir din partea stângă a lungimii specificate. Funcția „Dreapta()” este similară, dar decupează din dreapta. Funcția „Avg()” vă permite să specificați numărul caracterului din care va fi selectată linia și lungimea acestuia.

Lev(„variabilă șir”, 4) // returnează „Str”
Dreapta(„variabilă șir”, 7) // returnează „variabilă”
Medium(„variabilă șir”, 2, 5) // returnează „troko”

StrLength

Funcția determină numărul de caractere care sunt conținute într-o variabilă șir.

StrLength("Cuvânt") // rezultatul execuției va fi numărul 5

Găsi

Funcția face posibilă căutarea unei părți dintr-un șir într-o variabilă șir. Valoarea returnată va fi un număr care arată poziția începutului șirului găsit. Dacă nu se găsește nicio potrivire, se returnează zero.

Vă rugăm să rețineți că căutarea face distincție între majuscule și minuscule. Dacă există mai mult de o apariție a subșirului de căutare în șirul original, funcția va returna începutul primei apariții.

Găsiți ("unu, doi, unu, doi, trei", "două") // funcția va returna numărul 6

Linie goală

Utilizarea acestei funcții vă permite să determinați dacă un șir este gol. Caracterele minore, cum ar fi spațiul, întoarcerea căruciorului și altele, nu sunt luate în considerare.

EmptyString(„Pukin Vasily Ivanovich”) // va returna valoarea False
EmptyString(" ") // va returna valoarea True

VReg, NReg, TReg

Aceste funcții sunt foarte utile atunci când se compară și se convertesc variabile șir. „Vreg()” va returna șirul original cu majuscule, „HPreg()” cu litere mici, iar „TReg()” îl va formata astfel încât primul caracter al fiecărui cuvânt individual să fie scris cu majuscule, iar toate caracterele ulterioare să fie scrise cu majuscule.

VReg("DIRECTOR GENERAL") // returnează valoarea - "DIRECTOR GENERAL"
NReg(„CEO DIRECTOR”) // returnează valoarea – „CEO”
TREG(„CEO DIRECTOR”) // returnează valoarea – „Director general”

Înlocuire pagină

Această funcție este analogă cu înlocuirea în editorii de text. Vă permite să înlocuiți un caracter sau un set de caractere cu altul în variabile șir.

StrReplace("rosu, alb, galben", ","", ";") // returneaza "rosu; alb; galben"

StrNumberLines

Funcția vă permite să determinați numărul de linii separate prin întoarceri de transport într-o variabilă text.

Bucla din exemplul de mai jos va trece prin trei runde, deoarece funcția LineNumberRow va returna valoarea 3:

Pentru ind = 1 prin StrNumărul șirurilor de caractere ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Cicl
<тело цикла>
EndCycle;

StrGetString

Această funcție funcționează cu textul cu mai multe linii în același mod ca și cea anterioară. Vă permite să obțineți un șir specific dintr-o variabilă text.

StrGetString(„Șir1” + Caractere.PS + „Șir2” + Caractere.PS + „Șir3”, 2) // returnează „String2”

PageNumberOccurrence

Funcția numără numărul de apariții ale unui caracter sau subșir în șirul de căutare.

StrNumberAttachments("a;b;c;d; ", ";") // funcția va returna numărul 4

Simbol și cod de simbol

Aceste funcții vă permit să obțineți un caracter prin codul său în codificarea Unicode, precum și să determinați acest cod prin caracterul însuși.

SymbolCode("A") // funcția va returna numărul 1.040
CharacterCode(1040) // funcția va returna „A”

Sarcini comune atunci când lucrați cu șiruri

Concatenarea șirurilor

Pentru a combina mai multe șiruri (pentru a efectua concatenarea), este suficient să folosiți operatorul de adăugare.

„Linia 1″ + „Linia 2″ //rezultatul adăugării a două linii va fi „Linia 1 Linia 2”

Conversie tip

Pentru a converti un tip într-un șir, de exemplu, o legătură către un element de director, un număr etc., este suficient să folosiți funcția „String()”. Funcții precum „ScrLP()” vor converti, de asemenea, variabilele într-un șir, dar imediat cu tăierea caracterelor nesemnificative.

String(1000) // returnează „1.000”

Vă rugăm să rețineți că atunci când convertiți un număr într-un șir, programul a adăugat automat un spațiu care separă mie. Pentru a evita acest lucru, puteți utiliza următoarele construcții:

StrReplace(String(1000),Characters.NPP,"") // returnează "1000"

String(Format(1000,"HG=")) // returnează "1000"

Citate într-un șir

Destul de des va trebui să vă confruntați cu necesitatea de a specifica ghilimele într-o variabilă șir. Acesta poate fi fie textul cererii scris în configurator, fie doar o variabilă. Pentru a rezolva această problemă, trebuie doar să setați două ghilimele.

Antet = String("Horns and Hooves LLC - asta suntem noi!") // va returna "Horns and Hooves LLC - asta suntem noi!"

Multi-linie, întrerupere de linie

Pentru a crea text cu mai multe linii, trebuie doar să adăugați rupturi de linie (Symbols.PS).

MultilineText = „Prima linie” + Simboluri.PS + „A doua linie”

Cum să eliminați spațiile

Pentru a elimina spațiile din dreapta sau din stânga, puteți folosi funcția „ScrAP()” (precum și „ScrL()” și „ScrP()”):

StringNoSpaces = Abreviere ("Multe litere") // funcția va returna valoarea "Multe litere"

Dacă, după convertirea unui număr într-un șir, trebuie să eliminați spațiile care nu se rup, utilizați următoarea construcție:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // returnează "99999"

De asemenea, programatorii folosesc adesea următoarea construcție, care vă permite să eliminați sau să înlocuiți cu un alt caracter toate spațiile dintr-o variabilă text:

StringNoSpaces = StrReplace("hello","") // returnează "hello"

Compararea șirurilor între ele

Puteți compara termenii cu semnul egal obișnuit. Comparația face distincție între majuscule și minuscule.

"Hello" = "bună ziua" // returnează False
"Hello" = "Bună ziua" // returnează True
„Hello” = „La revedere” // va returna False

Un șir este unul dintre tipurile de date primitive din sistemele 1C:Enterprise 8. Variabile cu tipul linia conţin text.

Tastați valori variabile linia sunt cuprinse între ghilimele duble. Se pot adăuga mai multe variabile de acest tip.

Per1 = „Cuvântul 1” ;
Per2 = „Cuvântul 2” ;
Per3 = Per1 + " " + Per2 ;

În cele din urmă Per3 va insemna " Cuvântul 1 Cuvântul 2″.

În plus, sistemele 1C:Enterprise 8 oferă funcții pentru lucrul cu șiruri. Să ne uităm la cele principale:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funcția este concepută pentru a afișa o casetă de dialog în care utilizatorul poate specifica valoarea unei variabile de tip Linia. Parametru <Строка> este obligatoriu și conține numele variabilei în care va fi scris șirul introdus. Parametru <Подсказка> opțional - acesta este titlul casetei de dialog. Parametru <Длина> opțional, arată lungimea maximă a șirului de intrare. Implicit la zero, ceea ce înseamnă lungime nelimitată. Parametru <Многострочность> opțional. Definește modul de introducere a textului pe mai multe linii: Adevărat—introducerea textului pe mai multe linii cu separatoare de linii; False - introduceți un șir simplu.

Puteți introduce un șir dacă cunoașteți codul caracterului în Unicode:

Simbol(<КодСимвола>) — codul este introdus ca număr.

Literă= Simbol(1103) ; // eu

Există și o funcție inversă care vă permite să aflați codul unui simbol.

CodSimbol(<Строка>, <НомерСимвола>) — returnează numărul Unicode al caracterului specificat ca număr.

Funcții de conversie a majusculei textului:

VReg(<Строка>) — Convertește toate caracterele dintr-un șir în majuscule.

NReg(<Строка>) — Convertește toate caracterele dintr-un șir în minuscule.

TReg(<Строка>) — convertește toate caracterele din șir în majuscule pentru titlu. Adică, primele litere din toate cuvintele sunt convertite în majuscule, iar literele rămase sunt convertite în minuscule.

Funcții pentru căutarea și înlocuirea caracterelor dintr-un șir:

Găsi(<Строка>, <ПодстрокаПоиска>) — găsește numărul de caracter al apariției subșirului de căutare. De exemplu:

Găsiți ("String", "oka"); // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — găsește numărul de caracter al apariției subșirului de căutare, numărul apariției este indicat în parametrul corespunzător. În acest caz, căutarea începe cu caracterul al cărui număr este specificat în parametru Poziția inițială. Căutarea este posibilă de la începutul sau de la sfârșitul șirului. De exemplu:

Number4 Apariții = Str Find ( "Defensivitate", „despre” ,Direcția de căutare. De la Start, 1, 4); // 7

StrInlocuire(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – găsește toate aparițiile subșirului de căutare în șirul sursă și îl înlocuiește cu subșirul de înlocuire.

StrReplace ("String", "oka", ""); // Pagina

Linie goală (<Строка>) – verifică șirul de caractere semnificative. Dacă nu există caractere semnificative sau nici un caracter, atunci valoarea este returnată Adevărat. In caz contrar - Minciună.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Calculează numărul de apariții ale subșirului de căutare în șirul sursă.

StrNumberOccurrences ( „Studiați, studiați și studiați din nou”, "studiu" , "" ); // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — înlocuiește parametrii într-un șir după număr. Linia trebuie să conțină marcatori de substituție de forma: „%1..%N”. Numerotarea markerului începe de la 1. Dacă valoarea parametrului Nedefinit, un șir gol este înlocuit.

StrTemplate ( „Parametrul 1 = %1, Parametrul 2 = %2”, "1" , "2" ) ; // Parametrul 1= 1, Parametrul 2 = 2

Funcții de conversie a șirurilor de caractere:

Un leu(<Строка>, <ЧислоСимволов>) – returnează primele caractere ale unui șir.

Dreapta(<Строка>, <ЧислоСимволов>) – returnează ultimele caractere ale unui șir.

Miercuri(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – returnează un șir de lungime<ЧислоСимволов>, începând de la simbol<НачальныйНомер>.

AbbrL(<Строка>) decupează caracterele nesemnificative la stânga primului caracter semnificativ din șir.

Abreviere(<Строка>) — decupează caracterele nesemnificative din dreapta ultimului caracter semnificativ din rând.

AbbrLP(<Строка>) – decupează caracterele nesemnificative din stânga primului caracter semnificativ din rând și din dreapta ultimului caracter semnificativ din rând.

StrGetString(<Строка>, <НомерСтроки>) – Obține un șir de mai multe linii după număr.

Alte caracteristici:

StrLength(<Строка>) – returnează numărul de caractere din șir.

StrNumberRow(<Строка>) – returnează numărul de linii dintr-un șir cu mai multe linii. O linie este considerată nouă dacă este separată de cea anterioară printr-un caracter newline.

StrCompare(<Строка1>, <Строка2> ) – compară două șiruri de caractere fără a ține seama de majuscule și minuscule. O funcție funcționează similar cu un obiect Compararea Valorilor. Se intoarce:

  • 1 - dacă prima linie este mai mare decât a doua
  • -1 - dacă a doua linie este mai mare decât prima
  • 0 - dacă șirurile sunt egale

StrCompare("Prima linie" , "A doua linie" ); // 1

Note din Through the Looking Glass

18/08/2014 Noi funcții pentru lucrul cu șiruri

Implementat în versiunea 8.3.6.1977.

Am extins setul de funcții concepute pentru a funcționa cu șiruri. Am făcut acest lucru pentru a vă oferi instrumente mai avansate pentru analizarea datelor șirurilor. Noile funcții vor fi convenabile și utile în sarcinile tehnologice de analiză a textului. În sarcinile legate de analizarea textului care conține date în formă formatată. Aceasta ar putea fi o analiză a unor fișiere primite de la echipament sau, de exemplu, o analiză a unui jurnal tehnologic.

Puteți efectua toate acțiunile care îndeplinesc funcții noi înainte. Folosind algoritmi mai mult sau mai puțin complecși scriși într-un limbaj încorporat. Prin urmare, noile funcții nu vă oferă capabilități fundamental noi. Cu toate acestea, vă permit să reduceți cantitatea de cod și să faceți codul mai simplu și mai ușor de înțeles. În plus, vă permit să accelerați execuția acțiunilor. Pentru că funcțiile implementate în platformă funcționează, desigur, mai rapid decât un algoritm similar scris într-un limbaj încorporat.

Funcția de formatare StrTemplate()

Această funcție înlocuiește parametrii într-un șir. Necesitatea unei astfel de conversii apare adesea, de exemplu, la afișarea mesajelor de avertizare. Sintaxa pentru această funcție este următoarea:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- acesta este șirul în care trebuie să înlocuiți reprezentările parametrilor.

<Значение1> , ... <Значение10>- sunt parametri (maximum zece), ale căror reprezentări trebuie substituite în șir.

Pentru a indica un anumit loc în șablon în care doriți să efectuați înlocuirea, trebuie să utilizați marcatori precum %1, ... %10. Numărul de markeri implicați în șablon și numărul de parametri care conțin valori trebuie să se potrivească.

De exemplu, rezultatul executării unui astfel de operator:

va fi o linie:

Eroare de date pe linia 2 (Tipul de dată este necesar)

Funcție pentru lucrul cu șiruri de caractere StrCompare()

Această funcție compară două șiruri de caractere fără a ține seama de majuscule și minuscule. De exemplu, așa:

Puteți efectua aceeași acțiune mai devreme folosind obiectul Compararea Valorilor:

Cu toate acestea, utilizarea noii caracteristici pare mai ușoară. Și pe lângă aceasta, o funcție, spre deosebire de un obiect Compararea Valorilor, funcționează atât în ​​clientul subțire, cât și în clientul web.

Funcții pentru lucrul cu șiruri de caractere StrStartsWith(), StrEndsAt()

Aceste funcții determină dacă un șir începe cu un subșir specificat sau dacă un șir se termină cu un subșir specificat. Algoritmul pentru aceste funcții nu este greu de implementat într-un limbaj încorporat, dar prezența lor vă permite să scrieți cod mai curat și mai ușor de înțeles. Și lucrează mai repede.

De exemplu, este convenabil să le folosiți în operator Dacă:

Funcții pentru lucrul cu șiruri de caractere StrDivide(), StrConnect()

Aceste funcții împart un șir în părți folosind un delimitator specificat. Sau invers, combină mai multe linii într-una singură, inserând între ele separatorul selectat. Sunt convenabile pentru crearea sau analizarea jurnalelor și a revistelor tehnologice. De exemplu, puteți analiza cu ușurință o intrare de jurnal tehnologic în părți adecvate pentru analiză ulterioară:

Funcție pentru lucrul cu șiruri de caractere StrFind()

În loc de vechea funcție Găsi() Am implementat o nouă funcție care are capacități suplimentare:

  • Caută în direcții diferite (de la început, de la sfârșit);
  • Căutați dintr-o poziție specificată;
  • Căutați o apariție cu un număr specificat (al doilea, al treilea etc.).

De fapt, dublează capacitățile vechii funcție. Acest lucru se face pentru a menține compatibilitatea cu modulele compilate în versiuni mai vechi. Funcție veche Găsi() Se recomandă să nu mai utilizați.

Mai jos este un exemplu de utilizare a noilor capabilități de căutare. Căutarea inversă este utilă atunci când aveți nevoie de ultima parte a unui șir oficial, cum ar fi numele complet al fișierului într-o adresă URL. Și căutarea dintr-o poziție specificată ajută în cazurile în care trebuie să căutați într-un fragment cunoscut, și nu în întreaga linie.

Există puține mecanisme pentru a lucra cu șiruri în interogările 1C. În primul rând, liniile pot fi adăugate. În al doilea rând, puteți lua un subșir dintr-un șir. În al treilea rând, șirurile pot fi comparate, inclusiv după model. Asta este probabil tot ce se poate face cu șiruri.

Adăugarea șirurilor

Pentru a adăuga rânduri într-o interogare, se utilizează operația „+”. Puteți adăuga doar șiruri de lungime limitată.

SELECTAȚI „Nume: ” + Contrapărți. Nume AS Coloana 1 DIN Director. Contrapărți AS Contrapărți WHERE Contrapărți. Link = &Link

Funcția subșir

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Un analog al funcției Environment() din modelul obiect. Funcția Substring() poate fi aplicată datelor șirului și vă permite să selectați un fragment <Строки> , începând cu numărul caracterului <НачальнаяПозиция> (caracterele dintr-o linie sunt numerotate începând de la 1) și lungime <Длина> personaje. Rezultatul calculului funcției are un tip de șir de lungime variabilă, iar lungimea va fi considerată nelimitată dacă <Строка> are lungime și parametri nelimitați <Длина> nu este o constantă sau mai mare decât 1024.

Dacă lungimea șirului este mai mică decât cea specificată în al doilea parametru, atunci funcția va returna un șir gol.

Atenţie! Utilizarea funcției SUBSTRING() pentru a converti șiruri de lungime nelimitată în șiruri de lungime limitată nu este recomandată. În schimb, este mai bine să utilizați operatorul de distribuție EXPRESS().

Funcție similară

Dacă trebuie să ne asigurăm că un atribut șir îndeplinește anumite criterii, îl comparăm:

SELECTARE Counterparties. Nume AS Coloana 1 FROM Directory. Counterparties AS Counterparties WHERE Contrapartide. Nume = "Gazprom"

Dar dacă ai nevoie de o comparație mai subtilă? Nu doar egalitate sau inegalitate, ci asemănarea cu un anumit tipar? Exact pentru asta a fost creată funcția SIMILAR.

LIKE — Operator pentru verificarea asemănării unui șir cu un model. Analog de LIKE în SQL.

Operatorul SIMILAR vă permite să comparați valoarea expresiei specificate în stânga acesteia cu șirul de model specificat în dreapta. Valoarea expresiei trebuie să fie de tip șir. Dacă valoarea expresiei se potrivește cu modelul, rezultatul operatorului va fi TRUE, altfel va fi FALS.

Următoarele caractere din șirul șablon sunt caractere de serviciu și au o semnificație diferită de caracterul șir:

  • % (procent): o secvență care conține orice număr de caractere arbitrare;
  • _ (subliniere): un caracter arbitrar;
  • […] (unul sau mai multe caractere între paranteze drepte): orice caracter unic enumerat între paranteze drepte. Enumerarea poate conține intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, incluzând capetele intervalului;
  • [^...] (în paranteze drepte un semn de negație urmat de unul sau mai multe caractere): orice caracter unic, altul decât cele enumerate după semnul de negație.

Orice alt simbol înseamnă el însuși și nu poartă nicio sarcină suplimentară. Dacă unul dintre caracterele enumerate trebuie să fie scris ca el însuși, atunci trebuie să fie precedat de<Спецсимвол>. Eu insumi<Спецсимвол>(orice caracter adecvat) este definit în aceeași instrucțiune după cuvântul cheie SPECIAL CHARACTER.

Implementat în versiunea 8.3.6.1977.

Am extins setul de funcții concepute pentru a funcționa cu șiruri. Am făcut acest lucru pentru a vă oferi instrumente mai avansate pentru analizarea datelor șirurilor. Noile funcții vor fi convenabile și utile în sarcinile tehnologice de analiză a textului. În sarcinile legate de analizarea textului care conține date în formă formatată. Aceasta ar putea fi o analiză a unor fișiere primite de la echipament sau, de exemplu, o analiză a unui jurnal tehnologic.

Puteți efectua toate acțiunile care îndeplinesc funcții noi înainte. Folosind algoritmi mai mult sau mai puțin complecși scriși într-un limbaj încorporat. Prin urmare, noile funcții nu vă oferă capabilități fundamental noi. Cu toate acestea, vă permit să reduceți cantitatea de cod și să faceți codul mai simplu și mai ușor de înțeles. În plus, vă permit să accelerați execuția acțiunilor. Pentru că funcțiile implementate în platformă funcționează, desigur, mai rapid decât un algoritm similar scris într-un limbaj încorporat.

Funcția de formatare StrTemplate()

Această funcție înlocuiește parametrii într-un șir. Necesitatea unei astfel de conversii apare adesea, de exemplu, la afișarea mesajelor de avertizare. Sintaxa pentru această funcție este următoarea:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>- acesta este șirul în care trebuie să înlocuiți reprezentările parametrilor.

<Значение1> , ... <Значение10>- sunt parametri (maximum zece), ale căror reprezentări trebuie substituite în șir.

Pentru a indica un anumit loc în șablon în care doriți să efectuați înlocuirea, trebuie să utilizați marcatori precum %1, ... %10. Numărul de markeri implicați în șablon și numărul de parametri care conțin valori trebuie să se potrivească.

De exemplu, rezultatul executării unui astfel de operator:

va fi o linie:

Eroare de date pe linia 2 (Tipul de dată este necesar)

Funcție pentru lucrul cu șiruri de caractere StrCompare()

Această funcție compară două șiruri de caractere fără a ține seama de majuscule și minuscule. De exemplu, așa:

Puteți efectua aceeași acțiune mai devreme folosind obiectul Comparație valori:

Cu toate acestea, utilizarea noii caracteristici pare mai ușoară. Și pe lângă aceasta, funcția, spre deosebire de obiectul Value Comparison, funcționează atât în ​​clientul subțire, cât și în clientul web.

Funcții pentru lucrul cu șiruri de caractere StrStartsWith(), StrEndsAt()

Aceste funcții determină dacă un șir începe cu un subșir specificat sau dacă un șir se termină cu un subșir specificat. Algoritmul pentru aceste funcții nu este greu de implementat într-un limbaj încorporat, dar prezența lor vă permite să scrieți cod mai curat și mai ușor de înțeles. Și lucrează mai repede.

De exemplu, ele sunt convenabile de utilizat în instrucțiunea If:

Funcții pentru lucrul cu șiruri de caractere StrDivide(), StrConnect()

Aceste funcții împart un șir în părți folosind un delimitator specificat. Sau invers, combină mai multe linii într-una singură, inserând între ele separatorul selectat. Sunt convenabile pentru crearea sau analizarea jurnalelor și a revistelor tehnologice. De exemplu, puteți analiza cu ușurință o intrare de jurnal tehnologic în părți adecvate pentru analiză ulterioară:

Funcție pentru lucrul cu șiruri de caractere StrFind()

În loc de vechea funcție Find(), am implementat o nouă funcție care are capabilități suplimentare:

  • Caută în direcții diferite (de la început, de la sfârșit);
  • Căutați dintr-o poziție specificată;
  • Căutați o apariție cu un număr specificat (al doilea, al treilea etc.).

De fapt, dublează capacitățile vechii funcție. Acest lucru se face pentru a menține compatibilitatea cu modulele compilate în versiuni mai vechi. Este recomandat să nu mai folosiți vechea funcție Find().

Mai jos este un exemplu de utilizare a noilor capabilități de căutare. Căutarea inversă este utilă atunci când aveți nevoie de ultima parte a unui șir oficial, cum ar fi numele complet al fișierului într-o adresă URL. Și căutarea dintr-o poziție specificată ajută în cazurile în care trebuie să căutați într-un fragment cunoscut, și nu în întreaga linie.