Funkcije za delo z nizi v 1s. Nove funkcije za delo z nizi. Funkcija oblikovanja StrTemplate()

Vrstice v 1C 8.3 v vgrajenem jeziku 1C predstavljajo vrednosti primitivni tip Linija. Vrednote te vrste vsebujejo niz Unicode poljubne dolžine. Spremenljivke tipa niz so nabor znakov v narekovajih.

Primer 1. Ustvarimo nizovno spremenljivko z besedilom.

StringVariable = "Pozdravljen svet!";

Funkcije za delo z nizi v 1s 8.3

V tem razdelku boste našli glavne funkcije, ki vam omogočajo spreminjanje vrstic v 1c ali analizo informacij, ki jih vsebujejo.

StrLength

StrLength(<Строка>) . Vrne število znakov v nizu, posredovanem kot parameter.

Primer 2. Preštejmo število znakov v vrstici "Hello world!"

String = "Pozdravljen svet!"; ŠteviloZnakov = StrLength(String); Poročilo (število znakov);

Rezultat izvajanja te kode bo prikaz števila znakov v vrstici: 11.

AbbrL

AbbrL(<Строка>) . Obreže nepomembne znake levo od prvega pomenljiv simbol v vrsti.
Manjši liki:

  • prostor;
  • neprekinjen prostor;
  • tabeliranje;
  • vrnitev kočije;
  • podajanje vrstice;
  • prevod obrazca (strani).

Primer 3. Odstranite vse presledke na levi strani vrstice "svet!" in ji dodajte vrstico »Pozdravljeni«.

Niz = okrajšava ("svet!"); String = "Pozdravljeni" + String; Poročilo (niz);

Rezultat izvajanja te kode bo prikaz vrstice »Hello world!« na zaslonu.

Skrajšano

Okrajšava (<Строка>) . Obreže nepomembne znake desno od prvega pomembnega znaka v nizu.

Primer 4. Oblika iz vrstic "Hello" in "peace!" stavek "Pozdravljen svet!"

Vrstica = Okrajšava("Pozdravljeni ")+" "+ Okrajšava("svet!"); Poročilo (niz);

AbbrLP

AbbrLP(<Строка>) . Obreže nepomembne znake desno od prvega pomembnega znaka v nizu in prav tako odreže nepomembne znake levo od prvega pomembnega znaka v nizu. Ta funkcija se uporablja pogosteje kot prejšnji dve, saj je bolj univerzalen.

Primer 5. Odstranite nepomembne znake na levi in ​​desni v imenu nasprotne stranke.

Nasprotna stranka = Imeniki nasprotnih strank. Poišči po podrobnostih ("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

Lev

lev(<Строка>, <ЧислоСимволов>) . Pridobi prve znake niza, število znakov je podano v parametru Število znakov.

Primer 6. Spustite strukturo Zaposleni vsebuje ime, priimek in očetovstvo zaposlenega. Pridobite niz s priimkom in začetnicami.

NameInitial = Lev(Employee.Name, 1); Patronymic Initial = Leo (zaposleni. Patronymic, 1); FullName = Employee.LastName + " " + FirstName Initial + "."

+ Srednja začetnica + ".";

prav<Строка>, <ЧислоСимволов>) prav( Število znakov.. Pridobi zadnje znake niza, število znakov, določeno v parametru

Če podano število znakov presega dolžino niza, se vrne celoten niz. Primer 7. Naj bo na koncu nizovne spremenljivke zapisan datum v obliki »llllmmdd«, dobimo niz z datumom in ga pretvorimo v tip.

Datum Niz = " Trenutni datum

: 20170910"; StringDate = Pravice(String, 8); Datum = Datum(StringDate);

sreda<Строка>, <НачальныйНомер>, <ЧислоСимволов>) sreda ( Linija. Pridobi podniz iz niza, posredovanega kot parameter , začenši z znakom, katerega številka je navedena v parametru ZačetnoŠtevilko Število znakov. in dolžina je bila podana v parameter , začenši z znakom, katerega številka je navedena v parametruŠtevilčenje znakov v vrstici se začne od 1. Če je v parametru podana je vrednost, manjša ali enaka nič, potem ima parameter vrednost 1. Če parameterŠtevilo znakov

ni podana, potem so izbrani znaki do konca vrstice.

Primer 8. Naj spremenljivka niza, ki se začne od devetega mesta, vsebuje regionalno kodo, dobite jo in zapišite v ločeno vrstico.

String = "Regija: 99 Moskva"; Regija = Avg(String, 9, 2);

PageFind<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind(

  • Linija. Išče podani podniz v nizu in vrne številko položaja prvega znaka najdenega podniza. Poglejmo parametre te funkcije:
  • . Izvorni niz; Išči podniz
  • . Išči podniz; Smer iskanja
    • . Podaja smer iskanja podniza v nizu. Lahko sprejme vrednosti:;
    • Smer iskanja. Od začetka;
  • Iskanje. Konec smeri Začetni položaj
  • . Podaja položaj v nizu, na katerem se začne iskanje; NumberOccurrences

. Podaja številko pojavitve iskanega podniza v izvornem nizu.

Primer 9. V vrstici "Hello world!" Določite položaj zadnje pojavitve znaka "in".

PositionNumber = StrFind("Pozdravljen svet!", "in", SearchDirection.End); Poročilo (Številka položaja);

Rezultat izvajanja te kode bo prikaz številke zadnje pojavitve simbola "in": 9.

VReg<Строка>) VReg(

. Pretvori vse znake v podanem nizu v 1s8 v velike črke.

Primer 10: Pretvorite niz "hello world!" na velike črke.

StringVreg = VReg("pozdravljen svet!"); Poročilo(StringVreg);

Rezultat izvajanja te kode bo prikaz vrstice "HELLO WORLD!"

NReg<Строка>) NReg(

. Pretvori vse znake podanega niza v 1 s 8 v male črke.

StringNreg = NReg("POZDRAVLJEN SVET!"); Poročilo(StringVreg);

Rezultat izvajanja te kode bo prikaz vrstice "zdravo, svet!"

Treg

TReg(<Строка>) . Pretvori niz na naslednji način: prvi znak vsake besede se pretvori v velike črke, preostali znaki besede pa v male črke.

Primer 12: Napišite z veliko začetnico prve črke besed v vrstici »zdravo, svet!«

StringTreg = TReg("pozdravljen svet!"); Poročilo(StringTreg);

Rezultat izvajanja te kode bo prikaz vrstice "Hello World!"

Simbol

Simbol (<КодСимвола>) . Pridobi znak po kodi Unicode.

Primer 13. V vrstico »Hello World!« dodajte levo in desno. simbol ★

StringWithStars = Simbol("9733")+"Pozdravljen svet!"+Simbol("9733"); Poročilo (niz z zvezdicami);

Rezultat izvajanja te kode bo prikaz vrstice "★Hello World!★"

Koda simbola

SymbolCode(<Строка>, <НомерСимвола>) . Pridobi kodo znakov Unicode iz niza, podanega v prvem parametru, ki se nahaja na mestu, podanem v drugem parametru.

Primer 14. Poiščite kodo zadnjega znaka v vrstici "Hello World!"

String = "Pozdravljen svet!"; Koda Znaka = Koda Znaka (Niz, Dolžina Str (Niz)); Obvesti (CharacterCode);

Rezultat izvajanja te kode bo prikaz kode simbola “!” - 33.

EmptyString

EmptyString(<Строка>) . Preveri, ali je niz sestavljen samo iz nepomembnih znakov, torej ali je prazen.

Primer 15. Preverite, ali je niz, sestavljen iz treh presledkov, prazen.

Empty = EmptyString(" "); Poročilo (prazno);

Rezultat izvajanja te kode bo prikaz besede "Da" (izraz niza logične vrednosti res).

PageReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Najde vse pojavitve iskalnega podniza v izvornem nizu in ga nadomesti z nadomestnim podnizom.

Primer 16. V vrstici "Hello World!" zamenjajte besedo "Mir" z besedo "Prijatelji".

String = StrReplace("Pozdravljen svet!", "Svet", "Prijatelji"); Poročilo (niz);

Rezultat izvajanja te kode bo prikaz vrstice "Pozdravljeni prijatelji!"

StrNumberLines

StrNumberRow(<Строка>) . Omogoča štetje števila vrstic v večvrstičnem nizu. Iti na nova vrstica v 1s 8 je uporabljen simbol PS(znak nove vrstice).

Primer 17. Določite število vrstic v besedilu:
"Prva linija
Druga vrstica
Tretja vrstica"

Number = StrNumberString("Prva vrstica"+Znaki.PS +"Druga vrstica"+Simboli.PS +"Tretja vrstica"); Poročilo (številka);

Rezultat izvajanja te kode bo prikaz števila vrstic v besedilu: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Pridobi vrstico v večvrstičnem nizu po njeni številki. Številčenje vrstic se začne od 1.

Primer 18. Pridobite zadnjo vrstico v besedilu:
"Prva linija
Druga vrstica
Tretja vrstica"

Besedilo = "Prva vrstica" + "Druga vrstica" + "Tretja vrstica". LastRow = StrGetRow(Besedilo, StrNumberLines(Besedilo)); Poročilo (zadnja vrstica);

Rezultat izvajanja te kode bo prikaz vrstice »Tretja vrstica«.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Vrne število pojavitev podanega podniza v nizu. Funkcija je občutljiva na velike in male črke.

Primer 19. Ugotovite, kolikokrat se črka "c" pojavi v vrstici "Vrstice v 1s 8.3 in 8.2", ne glede na velikost črk.

Vrstica = "Vrstice v 1s 8.3 in 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Poročilo (število pojavov);

Rezultat izvajanja te kode bo prikaz števila ponovitev: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Preveri, ali se niz, posredovan v prvem parametru, začne z nizom v drugem parametru.

Primer 20. Ugotovite, ali se TIN izbrane nasprotne stranke začne s številko 1. Vnesite spremenljivko Nasprotna stranka Nasprotne stranke.

TIN = Nasprotna stranka.TIN; StartsUNits = StrStartsWith(TIN, "1"); If Začne se z enotami Then //Vaša koda EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Preveri, ali se niz, posredovan v prvem parametru, konča z nizom v drugem parametru.

Primer 21. Ugotovite, ali se TIN izbrane nasprotne stranke konča s številko 2. Vnesite spremenljivko Nasprotna stranka shranjen je sklic na element imenika Nasprotne stranke.

TIN = Nasprotna stranka.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Vaša koda EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Razdeli niz na dele z uporabo podanih ločilnih znakov in zapiše nastale nize v matriko. Prvi parameter shrani izvorni niz, drugi vsebuje niz, ki vsebuje ločilo, tretji označuje, ali je treba v matriko zapisati prazne nize (privzeto res).

Primer 22. Naj imamo niz s številkami, ločenimi s simbolom “;”, dobimo niz številk iz niza.

Niz = "1; 2; 3"; Array = StrDivide(String, ";"); Za štetje = 0 z Array.Quantity() - 1 poskus cikla Array[Count] = Number(AbbrLP(Array[Count]));

Izjema Array[Sch] = 0;

EndAttemptsEndCycle;

Kot rezultat izvedbe bo pridobljen niz s številkami od 1 do 3.<Строки>, <Разделитель>) PageConnect

StrConnect(

Za račun = 0 z Array.Quantity() - 1 cikel Array[Act] = String(Array[Act]); EndCycle; Vrstica = StrConnect(Array, "; ");

Osnovne zmožnosti programskega jezika običajno vključujejo delo s številkami in nizi. Običajno so te funkcije trdo kodirane v kodo prevajalnika (ali pa so implementirani »osnovni« razredi programskega jezika).

V 1C je sposobnost dela z nizi programirana v sami platformi. Danes si bomo ogledali značilnosti dela z nizi 1C v programih v vgrajenem jeziku 1C.

Vrednost vrstice 1C

1. Začnimo z najpreprostejšim. Ustvarjanje spremenljivke in ji dodelitev konstantne vrednosti niza izgleda v 1C takole:

Spremenljivka = "Pozdravljen, svet!";

Če morate podati znak narekovaja v konstantni vrednosti niza 1C, ga morate podvojiti ""

Spremenljivka = "Pozdravljen, svet"!;

2. Prelom vrstice 1C lahko podate na dva načina hkrati. Prvi je uporaba simbola |

Spremenljivka = "Pozdravljeni,
| svet! ";

Drugi je uporaba sistemskega oštevilčenja simbolov. Omogoča dodajanje preloma vrstice 1C in drugih nenatisljivih znakov, kot je TAB.

Spremenljivka = "Pozdravljeni" + Simboli.PS + "mir!";

3. Konfiguracije v 1C je mogoče razviti ne samo za en jezik (ruski, angleški ali drug) - ampak hkrati za več jezikov. V tem primeru je trenutno uporabljeni jezik izbran na dnu okna 1C.

Seznam jezikov se nahaja v konfiguracijskem oknu v veji Splošno/Jeziki. Vsak jezik ima kratek identifikator, kot je npr ru oz inž.

Jasno je, da so lahko pri programiranju takšne konfiguracije linije 1C tudi večjezične. Če želite to narediti, je mogoče ustvariti takšno linijo 1C z navedbo skozi; možnosti glede na jezikovni identifikator:

Spremenljivka = "ru=""Pozdravljen, svet! ""; en=""Pozdravljen, svet! """;

Če uporabite tako oblikovano črto 1C kot običajno, bo to tisto, kar je zapisano v njej. Da ga sistem razdeli na dve možnosti in uporabi želeno, morate uporabiti funkcijo НStr():

//pravilno za dvojezične konfiguracije
Poročilo(NSr(Spremenljivka));

Rekviziti z vrvico tipa 1C

Atribut je polje v imeniku/dokumentu 1C. Od spremenljivke v programu v jeziku 1C se razlikuje po tem, da je za atribut natančno označen njegov tip (število, niz 1C itd.). Če si morate osvežiti spomin na to, kaj je rekvizit, si oglejte lekcijo naprej.

Če določite vrsto atributa - vrstica 1C, morate dodatno določiti parametre.

Vrstice 1C so na voljo v neomejeni dolžini (označeno kot dolžina = 0) in omejeni dolžini, ki označuje natančno število znakov. Vrstice 1C neomejene dolžine so shranjene v ločeni tabeli SQL, zato je njihova uporaba manj produktivna kot omejena.

Zato ima uporaba nizov 1C neomejene dolžine svoje omejitve - ni jih mogoče uporabiti povsod. Na primer, ni dovoljeno kot številka dokumenta, referenčna koda ali mera.

Delo z nizi 1C

Obstaja več vgrajenih funkcij platforme 1C za delo z nizi.

  • AbbrLP ("Neverjetno, a resnično!")
    Odstrani dodatne presledke iz vrstice 1C. Uporablja se lahko tudi za pretvorbo poljubnih tipov v niz 1C (na primer številk).
  • Spremenljivka = "Vasya" + AbbrLP(" plus") + "Olya"; // tam bo "Vasya plus Olya"
    Primer seštevanja več vrednosti niza 1C. Rezultat bo ena vrstica 1C.
  • Spremenljivka = Lev("Glasba", 2); //bo "Mu"
    Spremenljivka = Medium("Glasba", 2, 2); //prišlo bo do "grožnje"
    Spremenljivka = Pravice ("Glasba", 2); //bo "ka"
    Različne možnosti za pridobitev podniza iz niza 1C.
  • Spremenljivka = Find("Glasba", "zy"); // bodo 3
    Poiščite podniz v nizu 1C, začenši z znakom 1.
  • Spremenljivka = StrLength("Glasba"); // bo 6
    Vrne število znakov v vrstici 1C.
  • Poročilo("Pozdravljeni") //v oknu za sporočila na dnu okna 1C
    Opozorilo("Pozdravljeni") //pojavno pogovorno okno
    Status("Pozdravljeni") //v vrstici prikaza stanja spodaj levo
    .

Prinašanje predmetov v linijo 1C

Kot veste, je trenutno najbolj priljubljen format za izmenjavo strukturiranih informacij XML. celo najnovejša različica MS Office Word in Excel shranite datoteke v tem formatu (docx oziroma xlsx spremenite pripono v zip, odprite v arhiverju).

Platforma 1C za izmenjavo podatkov ponuja več možnosti, med katerimi je glavna tudi XML.

1. Najenostavnejša metoda je uporaba funkcije Abbreviation() ali String(). V telesu zahteve lahko uporabite funkcijo REPRESENTATION(). Rezultat njihovega delovanja je enak - ustvarijo nizovno predstavitev katerega koli predmeta 1C za uporabnika.

Za imenik bo to privzeto ime. Za dokument - ime dokumenta, številka in datum.

2. Vsak predmet 1C (z omejitvami) je mogoče pretvoriti v XML in obratno. Postopek pretvorbe se imenuje serializacija.

StringViewXml = XMLString(Vrednost); //pridobi XML iz vrednosti 1C
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //pridobite vrednost 1C iz niza XML, določiti morate vrsto 1C, ki naj bo prejeta

3. Obstaja lasten način platforme 1C za pretvorbo katerega koli predmeta 1C v niz. Preselil se je iz različice 1C 7.7. Tega formata drugi programi ne razumejo, drugi 1C pa ga razumejo, kar olajša njegovo uporabo za izmenjavo med bazami podatkov 1C.

Vrstica = ValueInRowInt(Value1C); //dobi niz 1C iz vrednosti 1C
ValueVFile("C:\MyFile.txt", Value1C); //druga možnost, dobimo datoteko s shranjenim nizom iz vrednosti 1C
Value1C = ValueFromStringInt(String); //nazaj iz vrstice 1C
Value1C = ValueFile("C:\MyFile.txt"); //nazaj iz datoteke

Urejanje vrstic 1C na obrazcu

Poleg dela z nizi 1C v programu v jeziku 1C bi seveda želel, da jih uporabnik lahko ureja. Za to obstaja več možnosti:

1. Najlažji način je zahtevati vnos linije 1C na zahtevo. Ta metoda se uporablja pri poučevanju programiranja 1C; v življenju se uporablja veliko manj pogosto (vendar se uporablja!).

Spremenljivka = "";
Vrstica = EnterValue(Spremenljivka, "Vnesite polno ime");

2. Za prikaz podrobnosti predmeta 1C (imenik/dokument) ali podrobnosti obrazca (glej) se najpogosteje uporablja vnosno polje. To je najpogostejše orodje v 1C za uporabnika za delo s polji za urejanje.

3. Zmogljivosti vnosnega polja je mogoče razširiti (glejte lastnosti vnosnega polja, desni klik nanj, več podrobnosti):

  • Potrditveno polje Večvrstični način urejanja
  • Potrditveno polje za napredno urejanje (na voljo, če je potrjeno prejšnje potrditveno polje)
  • Potrditveno polje Način gesla (glejte).

4. Če vam vse zmožnosti vnosnega polja ne zadoščajo, je na voljo vgrajeni urejevalnik. Če ga želite dodati v obrazec, morate polje dodati v kontrolni meni Obrazec/Vstavi besedilni dokument. V njegovih lastnostih lahko določite način delovanja – lastnost Razširitev.

Polja besedilnega dokumenta ni mogoče neposredno povezati s podatki. Potrebno je napisati funkcijo v OnOpen() obdelovalcu dogodkov obrazca (glejte ):

Elementi obrazca.ElementNameTextDocumentField.SetText(StringValue); //tukaj je ValueString besedilo, prejeto na primer iz atributa

In v upravljalniku shranjevanja - na primer v gumbu Shrani - dodajte shranjevanje:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //VrednostTukajšnja vrstica je atribut, kamor shranimo vrednost

5. V različici 1C 8.2.11, v kontrolirane oblike, pojavil nova priložnost Predstavitev črte 1C – Formatirano polje dokumenta.


Podobno kot polje besedilnega dokumenta ga morate nastaviti ob odpiranju in zapisati, ko ga sami shranjujete s programom.

  • V objektu 1C, katerega obrazec ustvarjamo (imenik, dokument, obdelava itd.) - dodajte atribut s tipom Shranjevanje vrednosti
  • V funkciji OnReadOnServer() nastavimo besedilo iz atributa

    //tukaj je atribut dodan atribut predmeta 1C
    //tukaj je FormattedDocument ime polja na obrazcu za urejanje
    &Na strežniku

    FormattedDocument = CurrentObject.Attributes.Get();
    Konec postopka

  • V funkciji BeforeWritingOnServer() ali z gumbom bomo napisali besedilo iz polja

    &Na strežniku
    Postopek pri branju na strežniku (trenutni objekt)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Konec postopka

Zapiski iz filma Skozi ogledalo

18.08.2014 Nove funkcije za delo z nizi

Izvedeno v različici 8.3.6.1977.

Razširili smo nabor funkcij, zasnovanih za delo z nizi. To smo storili, da bi vam ponudili naprednejša orodja za razčlenjevanje podatkov nizov. Nove funkcije bodo priročne in uporabne pri tehnoloških nalogah analize besedil. Pri nalogah, povezanih z razčlenjevanjem besedila, ki vsebuje podatke v oblikovani obliki. To je lahko analiza nekaterih datotek, prejetih iz opreme, ali na primer analiza tehnološkega dnevnika.

Prej bi lahko izvajali vsa dejanja, ki izvajajo nove funkcije. Uporaba bolj ali manj zapletenih algoritmov, napisanih v vgrajenem jeziku. Zato vam nove funkcije ne dajejo bistveno novih zmogljivosti. Vendar vam omogočajo, da zmanjšate količino kode in naredite kodo enostavnejšo in bolj razumljivo. Poleg tega vam omogočajo, da pospešite izvajanje dejanj. Ker funkcije, implementirane v platformo, delujejo seveda hitreje kot podoben algoritem, napisan v vgrajenem jeziku.

Funkcija oblikovanja StrTemplate()

Ta funkcija nadomešča parametre v niz. Potreba po takšni pretvorbi se pogosto pojavi na primer pri prikazovanju opozorilnih sporočil. Sintaksa te funkcije je naslednja:

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

<Шаблон>- to je niz, v katerega morate nadomestiti predstavitve parametrov.

<Значение1> , ... <Значение10>- to so parametri (največ deset), katerih prikaze je treba vstaviti v niz.

Če želite označiti določeno mesto v predlogi, kjer želite izvesti zamenjavo, morate uporabiti oznake, kot so %1, ... %10. Število označevalcev, vključenih v predlogo, in število parametrov, ki vsebujejo vrednosti, se morata ujemati.

Na primer, rezultat izvajanja takega operatorja:

tam bo vrstica:

Podatkovna napaka v vrstici 2 (zahtevan je tip datuma)

Funkcija za delo z nizi StrCompare()

Ta funkcija primerja dva niza na način, ki ne razlikuje med velikimi in malimi črkami. Na primer takole:

Enako dejanje lahko izvedete prej z uporabo predmeta Primerjava vrednosti:

Vendar je uporaba nove funkcije videti lažja. In poleg tega funkcija, v nasprotju z objektom Primerjava vrednosti, deluje tako v tankem odjemalcu kot v spletnem odjemalcu.

Funkcije za delo z nizi StrStartsWith(), StrEndsAt()

Te funkcije določajo, ali se niz začne z določenim podnizom ali pa se niz konča z navedenim podnizom. Algoritma za te funkcije ni težko implementirati v vgrajenem jeziku, vendar njihova prisotnost omogoča pisanje čistejše in bolj razumljive kode. In delujejo hitreje.

Na primer, priročno jih je uporabljati v operaterju če:

Funkcije za delo z nizi StrDivide(), StrConnect()

Te funkcije razdelijo niz na dele z uporabo določenega ločila. Ali obratno, združijo več vrstic v eno in mednje vstavijo izbrano ločilo. Primerne so za ustvarjanje ali analizo dnevnikov in tehnoloških dnevnikov. Na primer, lahko preprosto razčlenite vnos tehnološkega dnevnika na dele, primerne za nadaljnjo analizo:

Funkcija za delo z nizi StrFind()

Namesto stare funkcije Najdi () smo izvajali nova funkcija, ki ima dodatne funkcije:

  • Iskanje v različnih smereh (od začetka, od konca);
  • Iskanje z določenega položaja;
  • Poiščite pojav z določeno številko (drugi, tretji itd.).

Pravzaprav podvaja zmogljivosti stare funkcije. To se naredi, da se ohrani združljivost z moduli, prevedenimi v starejših različicah. Stara funkcija Najdi () Priporočljivo je, da ne uporabite več.

Spodaj je primer uporabe novih zmožnosti iskanja. Povratno iskanje je uporabno, ko potrebujete zadnji del formaliziranega niza, na primer polno ime datoteke v URL-ju. In iskanje z določenega položaja pomaga v primerih, ko morate iskati v znanem fragmentu in ne v celotni vrstici.

Izvedeno v različici 8.3.6.1977.

Razširili smo nabor funkcij, zasnovanih za delo z nizi. To smo storili, da bi vam ponudili naprednejša orodja za razčlenjevanje podatkov nizov. Nove funkcije bodo priročne in uporabne pri tehnoloških nalogah analize besedil. Pri nalogah, povezanih z razčlenjevanjem besedila, ki vsebuje podatke v oblikovani obliki. To je lahko analiza nekaterih datotek, prejetih iz opreme, ali na primer analiza tehnološkega dnevnika.

Prej bi lahko izvajali vsa dejanja, ki izvajajo nove funkcije. Uporaba bolj ali manj zapletenih algoritmov, napisanih v vgrajenem jeziku. Zato vam nove funkcije ne dajejo bistveno novih zmogljivosti. Vendar vam omogočajo, da zmanjšate količino kode in naredite kodo enostavnejšo in bolj razumljivo. Poleg tega vam omogočajo, da pospešite izvajanje dejanj. Ker funkcije, implementirane v platformo, delujejo seveda hitreje kot podoben algoritem, napisan v vgrajenem jeziku.

Funkcija oblikovanja StrTemplate()

Ta funkcija nadomešča parametre v niz. Potreba po takšni pretvorbi se pogosto pojavi na primer pri prikazovanju opozorilnih sporočil. Sintaksa te funkcije je naslednja:

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

<Шаблон>- to je niz, v katerega morate nadomestiti predstavitve parametrov.

<Значение1> , ... <Значение10>- to so parametri (največ deset), katerih prikaze je treba vstaviti v niz.

Če želite označiti določeno mesto v predlogi, kjer želite izvesti zamenjavo, morate uporabiti oznake, kot so %1, ... %10. Število označevalcev, vključenih v predlogo, in število parametrov, ki vsebujejo vrednosti, se morata ujemati.

Na primer, rezultat izvajanja takega operatorja:

tam bo vrstica:

Podatkovna napaka v vrstici 2 (zahtevan je tip datuma)

Funkcija za delo z nizi StrCompare()

Ta funkcija primerja dva niza na način, ki ne razlikuje med velikimi in malimi črkami. Na primer takole:

Enako dejanje bi lahko izvedli prej z uporabo predmeta Primerjava vrednosti:

Vendar je uporaba nove funkcije videti lažja. In poleg tega funkcija, za razliko od objekta primerjave vrednosti, deluje tako v tankem odjemalcu kot v spletnem odjemalcu.

Funkcije za delo z nizi StrStartsWith(), StrEndsAt()

Te funkcije določajo, ali se niz začne z določenim podnizom ali pa se niz konča z navedenim podnizom. Algoritma za te funkcije ni težko implementirati v vgrajenem jeziku, vendar njihova prisotnost omogoča pisanje čistejše in bolj razumljive kode. In delujejo hitreje.

Primerni so na primer za uporabo v stavku If:

Funkcije za delo z nizi StrDivide(), StrConnect()

Te funkcije razdelijo niz na dele z uporabo določenega ločila. Ali obratno, združijo več vrstic v eno in mednje vstavijo izbrano ločilo. Primerne so za ustvarjanje ali analizo dnevnikov in tehnoloških dnevnikov. Na primer, lahko preprosto razčlenite vnos tehnološkega dnevnika na dele, primerne za nadaljnjo analizo:

Funkcija za delo z nizi StrFind()

Namesto stare funkcije Find() smo uvedli novo funkcijo, ki ima dodatne zmožnosti:

  • Iskanje v različnih smereh (od začetka, od konca);
  • Iskanje z določenega položaja;
  • Poiščite pojav z določeno številko (drugi, tretji itd.).

Pravzaprav podvaja zmogljivosti stare funkcije. To se naredi, da se ohrani združljivost z moduli, prevedenimi v starejših različicah. Priporočljivo je, da ne uporabljate več stare funkcije Find().

Spodaj je primer uporabe novih zmožnosti iskanja. Povratno iskanje je uporabno, ko potrebujete zadnji del formaliziranega niza, na primer polno ime datoteke v URL-ju. In iskanje z določenega položaja pomaga v primerih, ko morate iskati v znanem fragmentu in ne v celotni vrstici.

Kako delati