Nove funkcije za rad sa nizovima. Nove funkcije za rad s nizovima 1c zbrajanje nizova

String je jedan od primitivnih tipova podataka u sustavima 1C:Enterprise 8 Varijable s tipom crta sadrže tekst.

Upišite vrijednosti varijable crta nalaze se u dvostrukim navodnicima. Može se dodati nekoliko varijabli ove vrste.

Per1 = "Riječ 1" ;
Per2 = "Riječ 2" ;
Per3 = Per1 + " " + Per2;

Eventualno Per3 značit će " Riječ 1 Riječ 2″.

Osim toga, sustavi 1C:Enterprise 8 pružaju funkcije za rad s nizovima. Pogledajmo glavne:

Unesite niz (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcija je dizajnirana za prikaz dijaloškog okvira u kojem korisnik može odrediti vrijednost varijable tipa Crta. Parametar <Строка> je obavezan i sadrži naziv varijable u koju će se upisati upisani niz. Parametar <Подсказка> izborno - ovo je naslov dijaloškog okvira. Parametar <Длина> izborno, prikazuje maksimalnu duljinu ulaznog niza. Zadana vrijednost je nula, što znači neograničenu duljinu. Parametar <Многострочность> neobavezan. Definira višeredni način unosa teksta: True—višeredni unos teksta s razdjelnicima redaka; False - unesite jednostavan niz.

Možete unijeti niz ako znate kôd znaka u Unicodeu:

Simbol(<КодСимвола>) — šifra se unosi kao broj.

Slovo= Simbol(1103) ; // I

Postoji i inverzna funkcija koja vam omogućuje da saznate kod simbola.

SimbolKod(<Строка>, <НомерСимвола>) — vraća Unicode broj navedenog znaka kao broj.

Funkcije pretvorbe velikih i malih slova teksta:

VReg(<Строка>) — Pretvara sve znakove u nizu u velika slova.

NReg(<Строка>) — Pretvara sve znakove u nizu u mala slova.

TReg(<Строка>) — pretvara sve znakove u nizu u velika i mala slova. To jest, prva slova u svim riječima pretvaraju se u velika slova, a preostala slova u mala slova.

Funkcije za traženje i zamjenu znakova u nizu:

Pronaći(<Строка>, <ПодстрокаПоиска>) — pronalazi broj znaka pojavljivanja podniza za pretraživanje. Na primjer:

Pronađi ("String" , "oka" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — pronalazi broj znaka pojavljivanja podniza za pretraživanje, broj pojavljivanja je naznačen u odgovarajućem parametru. U ovom slučaju, pretraga počinje sa znakom čiji je broj naveden u parametru Početni položaj. Pretraživanje je moguće od početka ili od kraja niza. Na primjer:

Broj4 pojavljivanja = Str. Pronađite ( "defanzivnost", "o" ,Smjer pretraživanja. Od početka, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – pronalazi sva pojavljivanja traženog podniza u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

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

Prazna linija (<Строка>) – provjerava značajne znakove u nizu. Ako nema značajnih znakova ili uopće nema znakova, vrijednost se vraća Pravi. Inače - Laž.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Izračunava broj pojavljivanja podniza za pretraživanje u izvornom nizu.

StrNumberOccurrences ( "Uči, uči i opet uči", "studija" , "" ) ;

// 3<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — StrTemplate( zamjenjuje parametre u nizu brojem. Redak mora sadržavati oznake zamjene u obliku: “%1..%N”. Numeriranje markera počinje od 1. Ako vrijednost parametra Nedefiniran

, zamjenjuje se prazan niz. StrTemplate (, "1" , "2" ) ; "Parametar 1 = %1, parametar 2 = %2"

// Parametar 1= 1, Parametar 2 = 2

Funkcije pretvorbe niza:<Строка>, <ЧислоСимволов>) Lav(

– vraća prve znakove niza.<Строка>, <ЧислоСимволов>) Pravo(

– vraća posljednje znakove niza.<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Srijeda(<ЧислоСимволов>– vraća niz duljine<НачальныйНомер>.

, počevši od simbola<Строка>) AbbrL(

skraćuje nevažne znakove lijevo od prvog značajnog znaka u nizu.<Строка>) skraćenica(

— odsijeca beznačajne znakove desno od zadnjeg značajnog znaka u retku.<Строка>) AbbrLP(

– odsijeca beznačajne znakove lijevo od prvog značajnog znaka u retku i desno od posljednjeg značajnog znaka u retku.<Строка>, <НомерСтроки>) StrGetString(

– Dobiva višeredni niz prema broju.

Druge značajke:<Строка>) StrLength(

– vraća broj znakova u nizu.<Строка>) StrNumberRow(

– vraća broj redaka u nizu s više reda. Red se smatra novim ako je od prethodnog odvojen znakom novog retka.<Строка1>, <Строка2> ) StrUsporedi( – uspoređuje dva niza na način koji ne razlikuje velika i mala slova. Funkcija radi slično objektu Usporedba vrijednosti

  • . Povratak:
  • 1 - ako je prvi red veći od drugog
  • -1 - ako je drugi red veći od prvog

0 - ako su nizovi jednaki

StrCompare("Prvi red" , "Drugi red" ) ; // 1

Crta

Tip String nalazi se u svim programskim jezicima. Primitivan je, au 1C postoji mnogo funkcija za rad s njim. U ovom ćemo članku detaljno razmotriti različite načine rada s tipovima nizova u 1C 8.3 i 8.2 koristeći primjere.

Kako bi se varijabla bilo kojeg tipa pretvorila u niz, postoji istoimena funkcija “String()”. Ulazni parametar bit će sama varijabla čiji se prikaz niza mora dobiti.
String(False) // vraća "Ne"
String(12345) // vraća "12,345"

String(CurrentDate()) //"07/21/2017 11:55:36″

Moguće je pretvoriti ne samo primitivne tipove u niz, već i druge, na primjer, elemente direktorija i dokumenata.

Ulazni parametri ovih funkcija su varijable tipa string. Funkcije uklanjaju beznačajne znakove (razmake, prelaske itd.): s lijeve i desne strane, samo s lijeve i samo s desne strane.

Kratica(" Razmaci će biti uklonjeni s obje strane ") // "Razmaci će biti uklonjeni s obje strane"
Kratica (" Razmaci s obje strane bit će uklonjeni ") // " Razmaci s lijeve strane bit će uklonjeni "
Kratica (" Razmaci s obje strane bit će uklonjeni ") // " Razmaci s desne strane bit će uklonjeni "

Leo, desno, srednje

Ove vam funkcije omogućuju obrezivanje dijela niza. Funkcija "Left()" vratit će dio niza s njegove lijeve strane navedene duljine. Funkcija "Right()" je slična, ali obrezuje s desne strane. Funkcija “Avg()” omogućuje vam da odredite broj znaka iz kojeg će biti odabran red i njegovu duljinu.

Lev("Varijabla niza", 4) // vraća "Str"
Right("Varijabla niza", 7) // vraća "varijablu"
Medium("Varijabla niza", 2, 5) // vraća "troco"

StrLength

Funkcija određuje broj znakova koji su sadržani u varijabli niza.

StrLength("Word") // rezultat izvršenja bit će broj 5

Pronaći

Funkcija omogućuje traženje dijela niza u varijabli niza. Povratna vrijednost bit će broj koji pokazuje položaj početka pronađenog niza. Ako se ne pronađe podudaranje, vraća se nula.

Imajte na umu da pretraživanje razlikuje velika i mala slova. Ako postoji više od jednog pojavljivanja podniza za pretraživanje u izvornom nizu, funkcija će vratiti početak prvog pojavljivanja.

Find("jedan, dva, jedan, dva, tri", "dva") // funkcija će vratiti broj 6

Prazna linija

Korištenje ove funkcije omogućuje vam da odredite je li niz prazan. Sporedni znakovi kao što su razmak, povratak na početak i drugi se ne uzimaju u obzir.

EmptyString("Pupkin Vasily Ivanovich") // funkcija će vratiti vrijednost False
EmptyString(" ") // funkcija će vratiti vrijednost True

VReg, NReg, TReg

Ove su funkcije vrlo korisne pri usporedbi i pretvaranju varijabli niza. "Vreg()" će vratiti izvorni niz velikim slovima, "HPreg()" malim slovima, a "TReg()" će ga formatirati tako da je prvi znak svake pojedinačne riječi velikim slovima, a svi sljedeći znakovi velikim slovima.

VReg("GLAVNI DIREKTOR") // povratna vrijednost - "GLAVNI DIREKTOR"
NReg(“CEO DIRECTOR”) // povratna vrijednost – “CEO”
TREG(“CEO DIRECTOR”) // povratna vrijednost – “Generalni direktor”

PageReplace

Ova je funkcija analogna zamjeni u uređivačima teksta. Omogućuje zamjenu jednog znaka ili skupa znakova drugim u varijablama niza.

StrReplace("crveno, bijelo, žuto", ","", ";") // vraća "crveno; bijela; žuta boja"

StrBrojLines

Funkcija vam omogućuje da odredite broj redaka odvojenih znakom za početak u tekstualnoj varijabli.

Petlja u donjem primjeru proći će kroz tri kruga jer će funkcija LineNumberRow vratiti vrijednost 3:

Za ind = 1 po StrBroj nizova ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Ciklus
<тело цикла>
EndCycle;

StrGetString

Ova funkcija radi s višelinijskim tekstom na isti način kao i prethodna. Omogućuje vam da dobijete određeni niz iz tekstualne varijable.

StrGetString("Niz1" + Znakovi.PS + "Niz2" + Znakovi.PS + "Niz3", 2) // vrati "String2"

PageNumberOccurrences

Funkcija broji broj pojavljivanja znaka ili podniza u nizu za pretraživanje.

StrNumberAttachments("a;b;c;d; ", ";") // funkcija će vratiti broj 4

Simbol i kod simbola

Ove vam funkcije omogućuju dobivanje znaka prema njegovom kodu u Unicode kodiranju, kao i određivanje tog koda prema samom znaku.

SymbolCode("A") // funkcija će vratiti broj 1,040
CharacterCode(1040) // funkcija će vratiti "A"

Uobičajeni zadaci pri radu s nizovima

Ulančavanje nizova

Za kombiniranje nekoliko stringova (za izvođenje ulančavanja) dovoljno je upotrijebiti operator zbrajanja.

“Redak 1″ + “Redak 2” //rezultat dodavanja dva retka bit će “Redak 1 Redak 2”

Pretvorba tipa

Kako bi se vrsta pretvorila u string, na primjer, poveznica na element imenika, broj itd., dovoljno je koristiti funkciju “String()”. Funkcije poput “ScrLP()” također će pretvoriti varijable u niz, ali odmah s rezanjem beznačajnih znakova.

String(1000) // vraća "1000"

Imajte na umu da prilikom pretvaranja broja u niz program automatski dodaje razmak koji odvaja tisuću. Da biste to izbjegli, možete koristiti sljedeće konstrukcije:

StrReplace(String(1000),Characters.NPP,"") // vraća "1000"

String(Format(1000,"HG=")) // vraća "1000"

Navodnici u nizu

Vrlo često ćete se morati nositi s potrebom navođenja navodnika u varijabli niza znakova. To može biti ili tekst zahtjeva napisan u konfiguratoru ili samo varijabla. Da biste riješili ovaj problem, samo trebate postaviti dva navodnika.

Header = String("Horns and Hooves LLC - to smo mi!") // vratit će "Horns and Hooves LLC - to smo mi!"

Više redaka, prijelom reda

Kako biste stvorili višeredni tekst, samo mu dodajte prijelome redaka (Symbols.PS).

MultilineText = “Prvi redak” + Simboli.PS + “Drugi redak”

Kako ukloniti razmake

Kako biste uklonili razmake s desne ili lijeve strane, možete koristiti funkciju “ScrAP()” (kao i “ScrL()” i “ScrP()”):

StringNoSpaces = Abbreviation(" Mnogo slova ") // funkcija će vratiti vrijednost "Mnogo slova"

Ako nakon pretvaranja broja u niz trebate ukloniti neprekinute razmake, upotrijebite sljedeću konstrukciju:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // vraća "99999"

Programeri također često koriste sljedeću konstrukciju, koja vam omogućuje da uklonite ili zamijenite drugim znakom sve razmake u tekstualnoj varijabli:

StringNoSpaces = StrReplace("hello","") // vraća "hello"

Međusobno uspoređivanje nizova

Pojmove možete uspoređivati ​​s uobičajenim znakom jednakosti. Usporedba je osjetljiva na velika i mala slova.

"Hello" = "hello" // vraća False
"Hello" = "Hello" // vraća True
"Zdravo" = "Doviđenja" // vraća False

Osnovne mogućnosti programskog jezika obično uključuju rad s brojevima i nizovima. Obično su ove značajke tvrdo kodirane u kod prevoditelja (ili su implementirane "osnovne" klase programskog jezika).

U 1C, sposobnost rada sa nizovima programirana je u samoj platformi. Danas ćemo pogledati značajke rada s 1C nizovima u programima na ugrađenom 1C jeziku.

Vrijednost linije 1C

1. Počnimo s najjednostavnijim. Stvaranje varijable i dodjeljivanje konstantne vrijednosti niza izgleda ovako u 1C:

Varijabla = "Zdravo, svijete!";

Ako trebate navesti znak navodnika u konstantnoj vrijednosti niza 1C, tada ga trebate udvostručiti ""

Varijabla = "Zdravo, svijete"!;

2. Prijelom retka 1C može se odrediti na dva načina odjednom. Prvi je korištenje simbola |

Varijabla = "Pozdrav,
| svijet! ";

Drugi je korištenje nabrajanja sustava simbola. Omogućuje vam dodavanje prijeloma redaka 1C i drugih znakova koji se ne ispisuju, kao što je TAB.

Varijabla = "Zdravo" + Simboli.PS + "mir!";

3. Konfiguracije u 1C mogu se razviti ne samo za jedan jezik (ruski, engleski ili neki drugi) - već istovremeno za nekoliko jezika. U ovom slučaju, trenutno korišteni jezik odabran je na dnu prozora 1C.

Popis jezika nalazi se u konfiguracijskom prozoru u grani General/Languages ​​​​. Svaki jezik ima kratki identifikator kao što je ru ili inž.

Jasno je da kod programiranja takve konfiguracije 1C linije također mogu biti višejezične. Da biste to učinili, moguće je stvoriti takvu 1C liniju određivanjem kroz; opcije prema identifikatoru jezika:

Variable = "ru=""Zdravo, svijete! ""; en=""Zdravo, svijete! """;

Ako koristite ovako oblikovanu liniju 1C kao i obično, tada će biti ono što je u njoj napisano. Kako bi ga sustav podijelio u dvije opcije i koristio željenu, potrebno je koristiti NStr() funkciju:

//ispravno za dvojezične konfiguracije
Izvješće(NSr(varijabla));

Rekviziti s linijom tipa 1C

Atribut je polje u imeniku/dokumentu 1C. Razlikuje se od varijable u programu u 1C jeziku po tome što je za atribut točno naznačen njegov tip (broj, 1C niz itd.). Ako trebate osvježiti svoje sjećanje o tome što je rekvizit, pogledajte lekciju dalje.

Ako navedete vrstu atributa - linija 1C, tada morate dodatno navesti parametre.

1C linije dolaze u neograničenoj duljini (označeno kao duljina = 0) i ograničenoj duljini, koja označava točan broj znakova. 1C redovi neograničene duljine pohranjuju se u zasebnu SQL tablicu, tako da je njihova upotreba manje produktivna od ograničenih.

Zato korištenje 1C nizova neograničene duljine ima svoja ograničenja - nije ih moguće koristiti svugdje. Na primjer, nije dopušten kao broj dokumenta, referentni kod ili mjera.

Rad s 1C nizovima

Postoji nekoliko ugrađenih funkcija 1C platforme za rad s nizovima.

  • AbbrLP ("Nevjerojatno, ali istinito!")
    Uklanja dodatne razmake iz retka 1C. Također se može koristiti za pretvaranje bilo koje vrste u 1C niz (na primjer, brojeve).
  • Varijabla = "Vasya" + AbbrLP(" plus") + "Olya"; //bit će "Vasya plus Olya"
    Primjer zbrajanja nekoliko vrijednosti niza 1C. Rezultat će biti jedna linija 1C.
  • Varijabla = Lev("Glazba", 2); //bit će "Mu"
    Varijabla = Medium("Glazba", 2, 2); //bit će "prijetnja"
    Varijabla = Prava("Glazba", 2); //bit će "ka"
    Razne opcije za dobivanje podniza iz niza 1C.
  • Varijabla = Find("Glazba", "zy"); //bit će 3
    Potražite podniz u nizu 1C, počevši od znaka 1.
  • Varijabla = StrLength("Glazba"); //bit će 6
    Vraća broj znakova u retku 1C.
  • Izvješće ("Hello") //u prozoru s porukom na dnu prozora 1C
    Upozorenje("Zdravo") //skočni dijaloški okvir
    Status("Hello") //u retku prikaza statusa dolje lijevo
    .

Dovođenje objekata na liniju 1C

Kao što znate, najpopularniji format za razmjenu strukturiranih informacija trenutno je XML. Čak i najnovija verzija MS Office Worda i Excela sprema datoteke u ovom formatu (docx odnosno xlsx, promijenite ekstenziju u zip, otvorite u arhiveru).

1C platforma za razmjenu podataka nudi nekoliko opcija, od kojih je glavna također XML.

1. Najjednostavnija metoda je korištenje funkcije Abbreviation() ili String(). Možete koristiti funkciju REPRESENTATION() u tijelu zahtjeva. Rezultat njihove akcije je isti - oni generiraju prikaz niza bilo kojeg 1C objekta za korisnika.

Za imenik, prema zadanim postavkama ovo će biti njegov naziv. Za dokument – ​​naziv dokumenta, broj i datum.

2. Bilo koji 1C objekt (s ograničenjima) može se pretvoriti u XML i obrnuto. Proces pretvorbe naziva se serijalizacija.

StringViewXml = XMLString(Vrijednost); //dobijte XML iz 1C vrijednosti
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //dobijte 1C vrijednost iz XML niza, morate navesti tip 1C koji treba biti primljen

3. Postoji vlastiti način 1C platforme za pretvaranje bilo kojeg 1C objekta u niz. Migrirao je iz verzije 1C 7.7. Ovaj format ne razumiju drugi programi, ali drugi 1C ga razumiju, što olakšava njegovu upotrebu za razmjenu između 1C baza podataka.

Redak = ValueInRowInt(Value1C); //dobi niz 1C iz vrijednosti 1C
ValueVFile("C:\MyFile.txt", Vrijednost1C); //druga opcija, dobivamo datoteku sa spremljenim nizom iz 1C vrijednosti
Vrijednost1C = VrijednostIzStringInt(Niz); //natrag s linije 1C
Vrijednost1C = Datoteka Vrijednost("C:\MojaDatoteka.txt"); //nazad iz datoteke

Uređivanje 1C linija na obrascu

Osim rada s nizovima 1C u programu na jeziku 1C, naravno da bih želio da ih korisnik može uređivati. Za to postoji nekoliko mogućnosti:

1. Najlakši način je zatražiti unos 1C linije na zahtjev. Ova metoda se koristi pri podučavanju 1C programiranja; u životu se koristi mnogo rjeđe (ali se koristi!).

Varijabla = "";
Redak = EnterValue(varijabla, "Unesite puno ime");

2. Za prikaz pojedinosti 1C objekta (imenik/dokument) ili pojedinosti obrasca (vidi), najčešće se koristi polje za unos. Ovo je najčešći alat u 1C za rad korisnika s poljima za uređivanje.

3. Mogućnosti polja za unos mogu se proširiti (pogledajte svojstva polja za unos, desni klik na njega, više detalja):

  • Potvrdni okvir Višeredni način uređivanja
  • Potvrdni okvir za napredno uređivanje (dostupan ako je potvrđen prethodni potvrdni okvir)
  • Potvrdni okvir Način zaporke (pogledajte).

4. Ako vam sve mogućnosti polja za unos nisu dovoljne, postoji ugrađeni uređivač. Da biste ga dodali u obrazac, trebate dodati polje tekstualnog dokumenta u izbornik Form/Insert Control. U njegovim svojstvima možete odrediti način rada – svojstvo Extension.

Polje tekstualnog dokumenta ne može se izravno povezati s podacima. Potrebno je napisati funkciju u OnOpen() obrađivaču događaja obrasca (vidi):

Elementi obrasca.ImeElementaTekstDokumentPolje.PostaviTekst(StringValue); //ovdje je ValueString tekst primljen, na primjer, od atributa

A u rukovatelju spremanjem - na primjer, u gumbu Spremi - dodajte spremanje:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //Vrijednost Redak ovdje je atribut u koji spremamo vrijednost

5. U 1C verziji 8.2.11, u upravljanim obrascima, pojavila se nova opcija za predstavljanje 1C linije - polje Formatirani dokument.


Slično polju tekstualnog dokumenta, morate ga postaviti prilikom otvaranja i zapisati kada ga sami spremate pomoću programa.

  • U 1C objekt čiji obrazac kreiramo (imenik, dokument, obrada itd.) - dodajte atribut s tipom Pohrana vrijednosti
  • U funkciji OnReadOnServer() postavljamo tekst iz atributa

    //ovdje je atribut dodani atribut 1C objekta
    //ovdje FormattedDocument je naziv polja na obrascu za uređivanje
    &Na poslužitelju

    FormattedDocument = CurrentObject.Attributes.Get();
    Kraj postupka

  • U funkciji BeforeWritingOnServer() ili pomoću gumba ispisat ćemo tekst iz polja

    &Na poslužitelju
    Procedura prilikom čitanja na poslužitelju (trenutni objekt)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Kraj postupka

Implementirano u verziji 8.3.6.1977.

Proširili smo skup funkcija dizajniranih za rad s nizovima. Učinili smo to kako bismo vam dali naprednije alate za raščlanjivanje podataka niza. Nove funkcije bit će prikladne i korisne u tehnološkim zadacima analize teksta. U zadacima koji se odnose na raščlanjivanje teksta koji sadrži podatke u oblikovanom obliku. To može biti analiza nekih datoteka primljenih od opreme ili, na primjer, analiza tehnološkog dnevnika.

Prije ste mogli izvoditi sve radnje koje izvode nove funkcije. Korištenje više ili manje složenih algoritama napisanih na ugrađenom jeziku. Stoga vam nove funkcije ne daju nikakve fundamentalno nove mogućnosti. Međutim, oni vam omogućuju smanjenje količine koda i čine ga jednostavnijim i razumljivijim. Osim toga, omogućuju vam da ubrzate izvršenje radnji. Budući da funkcije implementirane u platformu rade, naravno, brže od sličnog algoritma napisanog na ugrađenom jeziku.

Funkcija oblikovanja StrTemplate()

Ova funkcija zamjenjuje parametre u niz. Potreba za takvom pretvorbom često se javlja, primjerice, prilikom prikaza poruka upozorenja. Sintaksa ove funkcije je sljedeća:

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

<Шаблон>- ovo je niz u koji trebate zamijeniti prikaze parametara.

<Значение1> , ... <Значение10>- to su parametri (maksimalno deset), čiji se prikazi moraju zamijeniti u nizu.

Da biste označili određeno mjesto u predlošku na kojem želite izvršiti zamjenu, trebate koristiti markere kao što su %1, ... %10. Broj markera uključenih u predložak i broj parametara koji sadrže vrijednosti moraju se podudarati.

Na primjer, rezultat izvršavanja takvog operatora:

bit će redak:

Pogreška podataka u retku 2 (potrebna vrsta datuma)

Funkcija za rad sa stringovima StrCompare()

Ova funkcija uspoređuje dva niza na način koji ne razlikuje velika i mala slova. Na primjer, ovako:

Mogli biste izvršiti istu radnju ranije koristeći objekt Usporedba vrijednosti:

Međutim, korištenje nove značajke izgleda lakše. Osim toga, funkcija, za razliku od objekta usporedbe vrijednosti, radi i na tankom klijentu i na web klijentu.

Funkcije za rad sa nizovima StrStartsWith(), StrEndsAt()

Ove funkcije određuju počinje li niz određenim podnizom ili završava li niz navedenim podnizom. Algoritam za ove funkcije nije teško implementirati u ugrađeni jezik, ali njihova prisutnost omogućuje pisanje čišćeg i razumljivijeg koda. I rade brže.

Na primjer, prikladni su za korištenje u If izjavi:

Funkcije za rad sa stringovima StrDivide(), StrConnect()

Ove funkcije dijele niz na dijelove pomoću određenog graničnika. Ili obrnuto, kombiniraju nekoliko redaka u jedan, umetajući odabrani razdjelnik između njih. Pogodni su za izradu ili analizu dnevnika i tehnoloških dnevnika. Na primjer, možete lako raščlaniti unos tehnološkog dnevnika na dijelove prikladne za daljnju analizu:

Funkcija za rad sa stringovima StrFind()

Umjesto stare funkcije Find(), implementirali smo novu funkciju koja ima dodatne mogućnosti:

  • Traži u različitim smjerovima (od početka, od kraja);
  • Pretraživanje s određene pozicije;
  • Potražite pojavu s određenim brojem (drugi, treći itd.).

Zapravo, duplicira mogućnosti stare funkcije. Ovo je učinjeno kako bi se održala kompatibilnost s modulima kompajliranim u starijim verzijama. Preporuča se da više ne koristite staru funkciju Find().

Dolje je primjer korištenja novih mogućnosti pretraživanja. Obrnuto pretraživanje je korisno kada vam je potreban posljednji dio formaliziranog niza, kao što je puni naziv datoteke u URL-u. A pretraživanje s određenog položaja pomaže u slučajevima kada trebate pretraživati ​​u poznatom fragmentu, a ne u cijelom retku.