Funkcije za rad sa nizovima u 1c. Nove funkcije za rad sa nizovima. Funkcija za rad sa nizovima StrFind ()

Tip "String" postoji u svim programskim jezicima. Primitivan je i u 1C -u postoji mnogo funkcija za rad s njim. U ovom ćemo članku pobliže pogledati različite načine rada s vrstama nizova u 1C 8.3 i 8.2 koristeći primjere.

Line

Da bi se varijabla bilo koje vrste pretvorila u niz, postoji funkcija istog imena "String ()". Ulazni parametar će biti sama varijabla čiji se niz nizova treba dobiti.

String (False) // vraća "Ne"
String (12345) // vraća "12 345"
String (CurrentDate ()) // 21.07.2017. 11:55:36

Moguće je pretvoriti ne samo primitivne tipove u niz, već i druge, na primjer, elemente priručnika, dokumente.

SocrLP, SocrL, SocrP

Ulazni parametri ovih funkcija su varijable string tipa. Funkcije uklanjaju beznačajne znakove (razmake, vraćanje nosača i drugo): s lijeve i desne strane, samo s lijeve strane, odnosno samo s desne strane.

AbbrLP ("Razmaci s obje strane bit će uklonjeni") // "Razmaci s obje strane bit će uklonjeni"
Skraćeno ("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, srijeda

Ove funkcije vam omogućuju da obrežete dio niza. "Lion ()" funkcija će vratiti dio niza s njegove lijeve strane navedene dužine. Funkcija "Desno ()" je ista, ali obrezivanje se vrši s desne strane. Funkcija "Med ()" omogućuje vam da odredite broj znaka iz kojeg će se niz odabrati i njegovu dužinu.

Lion ("String varijabla", 4) // vraća "Stro"
Desno ("String varijabla", 7) // vraća "varijablu"
Sri ("String varijabla", 2, 5) // vraća "troco"

Str Length

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

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

Naći

Ova funkcija omogućuje pretraživanje dijela niza u bilo kojoj string varijabli. Povratna vrijednost bit će broj koji prikazuje položaj početka pronađenog niza. Ako se ne pronađe podudaranje, vraća se nula.

Imajte na umu da pretraživanja razlikuju velika i mala slova. Ako izvorni niz sadrži više od jednog pojavljivanja podniza za pretraživanje, funkcija će vratiti početak prvog pojavljivanja.

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

Prazna linija

Korištenjem ove funkcije možete odrediti je li niz prazan. Zanemaruju se beznačajni znakovi poput razmaka, povratne oznake i drugih.

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

VReg, NReg, Treg

Ove su funkcije vrlo korisne za usporedbu i pretvaranje string varijabli. Breg () će vratiti izvorni niz velikim slovima, HPreg () malim slovima, a TRreg () će ga oblikovati tako da će prvi znak svake pojedinačne riječi biti pisan velikim slovima, a svi sljedeći malim slovima.

Vreg ("GENERAL DIRECTOR") // povratna vrijednost - "GENERAL DIRECTOR"
NReg ("OPĆI DIREKTOR") // povratna vrijednost - "generalni direktor"
TREG ("OPĆI DIREKTOR") // povratna vrijednost - "Generalni direktor"

PageReplace

Ova funkcija je analogna zamjeni u uređivačima teksta. Omogućava vam da zamijenite jedan znak ili skup znakova drugim u string varijablama.

StrReplace ("red, white, yellow", ",", ";") // vratit će "red; White; žuto "

StrNumberStrings

Ova funkcija vam omogućuje da odredite broj redova odvojenih vraćanjem nosača u tekstualnoj varijabli.

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

Za ind = 1 by StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Petlja
<тело цикла>
Kraj ciklusa;

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 ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // vraća "String2"

StrBroj pojava

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

StrNumber of Attachments ("a; b; c; d;", ​​";") // funkcija će vratiti broj 4

Simbol i kod simbola

Ove vam funkcije omogućuju da dobijete znak prema Unicode kodu, kao i da ga odredite prema samom karakteru.

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

Česti zadaci pri radu sa nizovima

Povezivanje nizova

Za spajanje više nizova (za izvršavanje spajanja), dovoljno je koristiti operator sabiranja.

"Linija 1 ″ +" Linija 2 ″ // rezultat dodavanja dva retka bit će "Linija 1 Linija 2"

Konverzija tipova

Za pretvaranje vrste u niz, na primjer, referencu na stavku iz rječnika, broj itd., Dovoljno je koristiti funkciju "String ()". Funkcije poput "Skraćenica ()" također će pretvoriti varijable u niz, ali odmah sa skraćivanjem beznačajnih znakova.

String (1000) // vratit će "1000"

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

StrReplace (String (1000), Characters.NPP, "") // vratit će "1000"

String (Format (1000, "CHG =")) // vratit će "1000"

Navodi u nizu

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

Title = String ("LLC" Rogovi i kopita "" - to smo mi! ") // vraća" LLC "Rogovi i kopita" - to smo mi! "

Više linija, prelom redova

Da biste stvorili tekst u više redova, dovoljno je da mu dodate znakove prijeloma retka (Symbols.PS).

MultilineText = "Prvi red" + Simboli.PS + "Drugi red"

Kako ukloniti razmake

Da biste uklonili razmake desno ili lijevo, možete koristiti funkciju "Skraćenica ()" (kao i "Skraćenica ()" i "Skraćenica ()"):

StringNoSpaces = SkraćenoLP ("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, "") // vratit će "99999"

Također, programeri često koriste sljedeću konstrukciju koja vam omogućuje da uklonite ili zamijenite sve prostore tekstualne varijable drugim znakom:

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

Poređenje žica međusobno

Izrazi se mogu uporediti sa uobičajenim znakom jednakosti. Poređenje razlikuje mala i velika slova.

"Hello" = "hello" // vraća False
"Hello" = "Hello" // vraća True
"Hello" = "Zbogom" // vratit će se False

Nizovi u 1C 8.3 na ugrađenom jeziku 1C vrijednosti su primitivnog tipa Line... Vrijednosti ovog tipa sadrže Unicode niz proizvoljne dužine. Varijable string tipa su skup znakova zatvorenih pod navodnike.

Primjer 1. Kreirajmo string varijablu s tekstom.

StringVariable = "Zdravo svete!";

Funkcije za rad sa nizovima u 1c 8.3

U ovom odjeljku bit će navedene glavne funkcije koje vam omogućuju promjenu linija u 1c ili analizu informacija koje se u njima nalaze.

Str Length

StrLength (<Строка>) ... Vraća broj znakova sadržanih u nizu proslijeđenom u parametru.

Primjer 2. Prebrojimo broj znakova u nizu "Hello world!"

String = "Zdravo svete!"; Broj znakova = StrLength (String); Izvještaj (broj znakova);

Rezultat izvršavanja ovog koda bit će prikaz broja znakova u nizu: 11.

Skraćenica

Skraćenica (<Строка>) ... Skraćuje beznačajne znakove lijevo od prvog značajnog znaka u nizu.
Manji likovi:

  • prostor;
  • neprekidni prostor;
  • tabeliranje;
  • povrat kočije;
  • linijsko prevođenje;
  • prijevod obrasca (stranica).

Primjer 3. Uklonite sve razmake s lijeve strane retka "svijet!" i pridružite mu niz "Hello".

String = skraćeno ("mir!"); String = "Zdravo" + String; Izvještaj (niz);

Rezultat izvršavanja ovog koda bit će izlaz linije "Hello world!"

Skraćenica

Skraćenica (<Строка>) ... Skraćuje beznačajne znakove desno od prvog značajnog znaka u nizu.

Primjer 4. Obrazac "Hello" i "World!" izraz "Hello world!"

String = skraćeno ("Hello") + "" + skraćeno ("world!"); Izvještaj (niz);

SokrLP

SocrLP (<Строка>) ... Skraćuje beznačajne znakove desno od prvog značajnog znaka u nizu, a također i sječe beznačajne znakove lijevo od prvog značajnog znaka u nizu. Ova se funkcija koristi češće od prethodne dvije, jer je svestranija.

Primjer 5. Uklonite beznačajne znakove s lijeve i desne strane u imenu druge ugovorne strane.

Counterparty = Directories.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = ShortLP (CounterpartyObject.Name); CounterpartyObject.Write ();

lav

Lav (<Строка>, <ЧислоСимволов>) ... Prima prve znakove niza, broj znakova je naveden u parametru Broj znakova.

Primjer 6. Pustite strukturu Employee sadrže ime, prezime i patronim zaposlenika. Nabavite niz s prezimenom i inicijalima.

InitialName = Leo (Employee.Name, 1); Začetničko ime = Lav (zaposlenik, patronim, 1); FullName = Employee.Surname + "" + InitialName + "." + Patronimski inicijal + ".";

Tačno

Desno (<Строка>, <ЧислоСимволов>) ... Dobiva posljednje znakove niza, broj znakova je naveden u parametru Broj znakova. Ako navedeni broj znakova premašuje dužinu niza, tada se vraća cijeli niz.

Primjer 7. Pretpostavimo da kraj string varijable sadrži datum u formatu "yyyymmdd", nabavite niz s datumom i pretvorite ga u tip datum.

String = "Trenutni datum: 20170910"; StringDate = Desno (String, 8); Datum = Datum (StringDate);

Srijeda

Srijeda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Dobiva podniz iz niza proslijeđenog kao parametar Line, počevši od znaka čiji je broj naveden u parametru StartNumber i dužina proslijeđena parametru Broj znakova. Numeriranje znakova u retku počinje od 1. Ako je parametar StartNumber navedena je vrijednost koja je manja ili jednaka nuli, tada parametar poprima vrijednost 1. Ako je parametar Broj simbola nije navedeno, tada se biraju znakovi do kraja retka.

Primjer 8. Pretpostavimo da varijabla niza koja počinje od devete pozicije sadrži kôd regije, trebali biste je dobiti i napisati u zasebnom retku.

Line = "Regija: 99 Moskva"; Regija = srijeda (linija, 9, 2);

Search

Pronađi (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Pretražuje navedeni podniz u nizu, vraća broj pozicije prvog znaka pronađenog podniza. Razmotrite parametre ove funkcije:

  • Line... Izvorni niz;
  • SubstringSearch... Podniz koji se traži;
  • Pravac pretraživanja... Određuje smjer za traženje podniza u nizu. Može uzeti vrijednosti:
    • Smjer pretraživanja. Od početka;
    • Smer pretrage.;
  • Početni položaj... Određuje poziciju u nizu s koje pretraživanje počinje;
  • Broj unosa... Određuje broj pojavljivanja željenog podniza u izvornom nizu.

Primjer 9. U retku "Hello world!" odredite poziciju posljednjeg pojavljivanja simbola "i".

PositionNumber = StrNayti ("Zdravo svijete!", "I", DirectionSearch.End); Izvještaj (broj pozicije);

Rezultat izvršavanja ovog koda bit će prikaz broja posljednjeg pojavljivanja simbola "i": 9.

VReg

BReg (<Строка>) ... Pretvara sve znakove u navedenom nizu u 1s 8 u velika slova.

Primjer 10. Pretvorite niz "hello world!" do velikih slova.

StringBreg = BReg ("zdravo svijete!"); Izvještaj (StringVreg);

Rezultat izvršavanja ovog koda bit će prikaz retka "HELLO WORLD!"

Nreg

HPreg (<Строка>) ... Pretvara sve znakove u navedenom nizu u 1s 8 u mala slova.

Primjer 11. Pretvorite niz "HELLO WORLD!" do malih slova.

StringNreg = NReg ("HELLO WORLD!"); Izvještaj (StringVreg);

Rezultat izvršavanja ovog koda bit će izlaz linije "hello world!"

Treg

Treg (<Строка>) ... Pretvara niz na sljedeći način: prvi znak svake riječi pretvara se u velika slova, preostali znakovi riječi se pretvaraju u mala slova.

Primjer 12. Velika slova riječi u nizu "hello world!"

StringTreg = Treg ("zdravo svijete!"); Izvještaj (StringTreg);

Rezultat izvršavanja ovog koda bit će prikaz linije "Hello World!"

Simbol

Simbol (<КодСимвола>) ... Dobiva znak po svom Unicod kodu.

Primjer 13. Dodajmo lijevo i desno u red "Hello World!" simbol ★

StringWithStars = Symbol ("9733") + "Hello World!" + Symbol ("9733"); Izvještaj (StringWithStars);

Rezultat izvršavanja ovog koda bit će izlaz linije "★ Hello World! ★"

Kôd simbola

SymbolCode (<Строка>, <НомерСимвола>) ... Dobija kod Unicode znaka iz niza navedenog u prvom parametru, koji se nalazi na poziciji navedenoj u drugom parametru.

Primjer 14. Saznajte kod posljednjeg znaka u "Hello World!"

String = "Zdravo Svijete!"; CharacterCode = CharacterCode (String, StrLength (String)); Izveštaj (SymbolCode);

Rezultat izvršavanja ovog koda bit će prikaz koda simbola "!" - 33.

Prazna linija

Prazna linija (<Строка>) ... Provjerava sadrži li niz samo beznačajne znakove, odnosno je li prazan.

Primjer 15. Provjerite je li niz koji se sastoji od tri razmaka prazan.

Empty = EmptyString (""); Izvještaj (prazan);

Rezultat izvršavanja ovog koda bit će prikaz riječi "Yes" (niz izraz logičke vrijednosti Tačno).

PageReplace

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Pronalazi sve pojave podniza za pretraživanje u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

Primjer 16. U retku "Hello World!" riječ "Mir" zamijenite riječju "prijatelji".

String = StrReplace ("Hello World!", "World", "Friends"); Izvještaj (niz);

Rezultat izvršavanja ovog koda bit će prikaz linije "Hello Friends!"

StrNumberStrings

StrBroj redova (<Строка>) ... Broji broj redova u višerednom nizu. Za prelazak na novi red u 1s 8, koristite znak PS(znak unosa retka).

Primjer 17. Odredite broj redova u tekstu:
"Prva linija
Druga linija
Treći red "

Broj = StrBroj redova ("Prvi red" + Simboli.PS + "Drugi red" + Simboli.PS + "Treći red"); Izvještaj (broj);

Rezultat izvršavanja ovog koda bit će prikaz broja redaka u tekstu: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Dobija niz u višerednom nizu prema njegovom broju. Numeriranje redova počinje s 1.

Primjer 18. Dobijte zadnji redak u tekstu:
"Prva linija
Druga linija
Treći red "

Text = "Prvi red" + Simboli.PS + "Drugi red" + Simboli.PS + "Treći red"; LastString = StrGetString (Tekst, Broj redaka (Tekst)); Izvještaj (LastLine);

Rezultat izvršavanja ovog koda bit će prikaz linije "Treća linija".

StrBroj pojava

StrBroj događaja (<Строка>, <ПодстрокаПоиска>) ... Vraća broj pojavljivanja navedenog podniza u nizu. Funkcija razlikuje velika i mala slova.

Primjer 19. Odredite koliko se puta slovo "c" pojavljuje u retku "Linije u 1s 8.3 i 8.2", bez obzira na velika i mala slova.

Linija = "Linije u 1 s 8.3 i 8.2"; Broj pojava = StrBroj pojavljivanja (Vreg (niz), "S"); Izvještaj (broj pojavljivanja);

Rezultat izvršavanja ovog koda bit će prikaz broja pojavljivanja: 2.

PageStarts With

PageStarts With (<Строка>, <СтрокаПоиска>) ... Provjerava počinje li niz koji je poslan u prvom parametru s nizom u drugom parametru.

Primjer 20. Utvrdite počinje li TIN odabrane druge ugovorne strane brojem 1. Unesite varijablu Protustranka Izvođači radova.

TIN = druga ugovorna strana.INN; Počinje withUnits = StrStarts with (INN, "1"); If BeginsUnits Then // Vaš kod EndIf;

PageEnds With

Stranica se završava sa (<Строка>, <СтрокаПоиска>) ... Provjerava završava li niz u prvom parametru s nizom u drugom parametru.

Primjer 21. Utvrdite da li se TIN izabrane druge ugovorne strane završava znamenkom 2. Upišite varijablu Protustranka sprema se veza do stavke direktorija Izvođači radova.

TIN = druga ugovorna strana.INN; Završava sa dva = Str završava sa (INN, "2"); If Ends WithDouble Then // Vaš kod EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Dijeli niz na dijelove pomoću navedenih znakova za razdvajanje i upisuje rezultirajuće nizove u niz. Prvi parametar pohranjuje izvorni niz, drugi sadrži niz koji sadrži razdjelnik, treći određuje treba li upisivati ​​prazne nizove u niz (prema zadanim postavkama Tačno).

Primjer 22. Pretpostavimo da imamo niz koji sadrži brojeve odvojene s ";", uzmite niz brojeva iz niza.

String = "1; 2; 3"; Array = StrSplit (String, ";"); Za RV = 0 By Array.Quantity () - 1 niz pokušaja ciklusa [Rd] = Broj (Skraćenica (niz [Rd])); Niz izuzetaka [Sč] = 0; Kraj pokušaja Kraj petlje;

Kao rezultat izvršavanja, dobit će se niz s brojevima od 1 do 3.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Pretvara niz nizova iz prvog parametra u niz koji sadrži sve elemente niza, odvojene graničnikom navedenim u drugom parametru.

Primjer 23. Koristeći niz brojeva iz prethodnog primjera, nabavite izvorni niz.

Za Ref = 0 By Array.Quantity () - 1 ciklusni niz [Ref] = String (Niz [Ref]); Kraj ciklusa; String = StrConnect (niz, ";");

Niz je jedan od primitivnih tipova podataka u 1C: Enterprise 8. Varijable sa tipom linija sadrže tekst.

Vrijednosti varijabli tipa linija su zatvoreni u dvostrukim navodnicima. Može se dodati nekoliko varijabli ovog tipa.

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

Na kraju Per3će značiti " Riječ 1 Riječ 2 ″.

Osim toga, sistemi 1C: Enterprise 8 pružaju funkcije za rad sa nizovima. Razmotrimo glavne:

Unesite niz (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcija ima namjeru prikazati dijaloški okvir u kojem korisnik može odrediti vrijednost varijable tipa Line... Parametar <Строка> je obavezan i sadrži naziv varijable u koju će se unijeti unijeti niz. Parametar <Подсказка> opcijski je naslov dijaloškog okvira. Parametar <Длина> opcionalno, označava maksimalnu dužinu ulaznog niza. Zadana vrijednost je nula, što znači neograničena dužina. Parametar <Многострочность> opcionalno. Određuje način unosa za višeredni tekst: Tačno-unos višerednog teksta sa separatorima redova; Netačno - unos jednostavnog niza.

Niz se može unijeti i dati mu Unicode kodni kod:

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

Slovo = simbol (1103); // I

Postoji i inverzna funkcija koja vam omogućuje da saznate kôd znaka.

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

Funkcije pretvaranja kućišta:

BReg (<Строка>) - pretvara sve znakove u nizu u velika slova.

HPreg (<Строка>) - pretvara sve znakove u nizu u mala slova.

Treg (<Строка>) - pretvara sve znakove u nizu u velika slova. Odnosno, prva slova u svim riječima se pretvaraju u velika, a ostala slova u mala slova.

Funkcije za pretraživanje i zamjenu znakova u nizu:

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

Find ("String", "Oka"); // 4

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

Broj 4 pojavljivanja = StrFind ( "Odbrambene sposobnosti", "o", Smjer pretraživanja. Od početka, 1, 4); // 7

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - pronalazi sve pojave podniza za pretraživanje u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

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

Prazna linija (<Строка>) - provjerava niz za značajne znakove. Ako nema značajnih znakova ili ih uopće nema, tada se vraća vrijednost Tačno... Inače - Laži.

StrBroj događaja (<Строка>, <ПодстрокаПоиска>) - izračunava broj pojavljivanja podniza za pretraživanje u izvornom nizu.

StrBroj događaja ( "Uči, uči i ponovo uči", "učiti" , "" ) ; // 3

PageTemplate (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — zamjenjuje parametre u nizu brojevima. Niz mora sadržavati oznake zamjene oblika: "% 1 ..% N". Markeri su numerisani počevši od 1. Ako je vrijednost parametra Nedefinisano, zamjenjuje se prazan niz.

PageTemplate ( "Parametar 1 =% 1, parametar 2 =% 2", "1" , "2" ) ; // Parametar 1 = 1, Parametar 2 = 2

Funkcije konverzije nizova:

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

Desno (<Строка>, <ЧислоСимволов>) - vraća posljednje znakove niza.

Srijeda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - vraća niz dužine<ЧислоСимволов>počevši od lika<НачальныйНомер>.

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

Skraćenica (<Строка>) - odsijeca beznačajne znakove desno od posljednjeg značajnog znaka u nizu.

SocrLP (<Строка>) - odsijeca beznačajne znakove lijevo od prvog značajnog znaka u redu i desno od posljednjeg značajnog znaka u redu.

StrGetString (<Строка>, <НомерСтроки>) - dobiva niz višerednog niza po broju.

Ostale funkcije:

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

StrBroj redova (<Строка>) - vraća broj redova u višerednom nizu. Red se smatra novim ako je odvojen od prethodnog retka znakom novog reda.

Uporedi (<Строка1>, <Строка2> ) - uspoređuje dva niza, velika i mala slova. Funkcija radi na isti način kao i objekt Poređenje vrijednosti... Povrat:

  • 1 - ako je prvi red veći od drugog
  • -1 - ako je drugi red veći od prvog
  • 0 - ako su nizovi jednaki

StrCompare ("Prva linija", "Druga linija"); // jedan

Implementirano u verziji 8.3.6.1977.

Proširili smo skup funkcija za rad sa nizovima. To smo učinili 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 vezanim za raščlanjivanje teksta koji sadrži formatirane podatke. To može biti analiza nekih datoteka primljenih iz opreme ili, na primjer, analiza tehnološkog dnevnika.

Sve radnje koje obavljaju nove funkcije mogle ste izvršiti i ranije. Uz pomoć manje ili više složenih algoritama napisanih na ugrađenom jeziku. Stoga vam nove funkcije ne pružaju nikakve fundamentalno nove mogućnosti. Međutim, omogućuju vam da smanjite količinu koda, učinite kod jednostavnijim i lakšim za razumijevanje. Osim toga, omogućuju vam da ubrzate izvršavanje radnji. Budući da funkcije implementirane na platformi rade, naravno, brže od sličnog algoritma napisanog na ugrađenom jeziku.

Funkcija oblikovanja PpTemplate ()

Ova funkcija zamjenjuje parametre u niz. Potreba za takvom pretvorbom često se javlja, na primjer, pri prikazivanju poruka upozorenja. Sintaksa ove funkcije je sljedeća:

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

<Шаблон>je niz koji zamjenjuje reprezentacije parametara.

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

Da biste naznačili određeno mjesto u predlošku na kojem želite izvršiti zamjenu, morate koristiti tokene oblika% 1, ...% 10. Broj markera koji se koriste u predlošku i broj parametara koji sadrže vrijednosti moraju biti isti.

Na primjer, rezultat izvršavanja takve izjave:

bit će redak:

Greška u podacima na liniji 2 (potrebna je vrsta datuma)

Funkcija za rad sa nizovima StrCompare ()

Ova funkcija uspoređuje dva niza na mala i velika slova. Na primjer, ovako:

Istu radnju ste mogli izvršiti ranije koristeći objekt ValueComparison:

Međutim, upotreba nove funkcije izgleda jednostavnije. Osim toga, funkcija, za razliku od objekta Usporedba vrijednosti, radi i u tankom klijentu i u web klijentu.

Funkcije za rad sa nizovima RowStart With (), RREnd With ()

Ove funkcije određuju počinje li niz određenim podnizom ili završava navedenim podnizom. Algoritam ovih funkcija nije teško implementirati na ugrađenom jeziku, ali njihovo prisustvo omogućuje vam pisanje čišćeg i razumljivijeg koda. I rade brže.

Na primjer, prikladno ih je koristiti u If:

Funkcije za rad sa nizovima StrSplit (), StrConnect ()

Ove funkcije dijele niz na dijelove prema navedenom razdjelniku. Ili obrnuto, spajaju nekoliko redova u jedan, ubacujući odabrani razdjelnik između njih. Pogodni su za izradu ili analizu dnevnika, tehnoloških dnevnika. Na primjer, možete lako rastaviti zapis tehnološkog dnevnika na dijelove pogodne za daljnju analizu:

Funkcija za rad sa nizovima StrFind ()

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

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

U stvari, to duplicira mogućnosti stare funkcije. To se radi kako bi se održala kompatibilnost s modulima sastavljenim u starijim verzijama. Preporučuje se da više ne koristite staru funkciju Find ().

Ispod je primjer korištenja novih mogućnosti pretraživanja. Pretrage unatrag korisne su kada vam je potreban posljednji dio formaliziranog niza, kao što je potpuno kvalificirano ime datoteke u URL -u. A pretraživanje s određene pozicije pomaže u onim slučajevima kada trebate tražiti u poznatom fragmentu, a ne u cijelom nizu.