Nove funkcije za delo z nizi. Nove funkcije za delo z nizi Naštevanje znakov v nizu 1c

Obstaja nekaj mehanizmov za delo z nizi v poizvedbah 1C. Najprej je mogoče dodati vrstice. Drugič, lahko vzamete podniz iz niza. Tretjič, strune je mogoče primerjati, tudi po vzorcu. To je verjetno vse, kar je mogoče narediti s strunami.

Dodajanje nizov

Za dodajanje vrstic v poizvedbo se uporablja operacija “+”. Dodate lahko samo nize omejene dolžine.

IZBERITE "Ime: " + Ime nasprotnih strank AS Stolpec 1 FROM Nasprotne stranke KJE Povezava

Funkcija podniza

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

Analog funkcije Environment() iz objektnega modela. Funkcijo Substring() je mogoče uporabiti za podatke niza in omogoča izbiro fragmenta <Строки> , začenši s številko znaka <НачальнаяПозиция> (znaki v vrstici so oštevilčeni od 1) in dolžino <Длина> znakov. Rezultat izračuna funkcije ima vrsto niza spremenljive dolžine in dolžina se bo štela za neomejeno, če <Строка> ima neomejeno dolžino in parameter <Длина> ni konstanta ali večja od 1024.

Če je dolžina niza manjša od podane v drugem parametru, bo funkcija vrnila prazen niz.

Pozor! Uporaba funkcije SUBSTRING() za pretvorbo nizov neomejene dolžine v nize omejene dolžine ni priporočljiva. Namesto tega je bolje uporabiti cast operator EXPRESS().

Funkcija Podobna

Če se moramo prepričati, da atribut niza izpolnjuje določene kriterije, ga primerjamo:

SELECT Nasprotne stranke Stolpec 1 FROM Counterparties AS Counterparties Name = "Gazprom".

Kaj pa, če potrebujete bolj subtilno primerjavo? Ne samo enakost ali neenakost, ampak podobnost z določenim vzorcem? Prav za to je bila ustvarjena funkcija SIMILAR.

LIKE — Operator za preverjanje podobnosti niza z vzorcem. Analog LIKE v SQL.

Operator SIMILAR vam omogoča, da primerjate vrednost izraza, podanega levo od njega, z nizom vzorca, podanim desno. Vrednost izraza mora biti vrste niz. Če se vrednost izraza ujema z vzorcem, bo rezultat operatorja TRUE, sicer pa FALSE.

Naslednji znaki v nizu predloge so servisni znaki in imajo drugačen pomen od znaka niza:

  • % (odstotek): zaporedje, ki vsebuje poljubno število poljubnih znakov;
  • _ (podčrtaj): en poljuben znak;
  • […] (eden ali več znakov v oglatih oklepajih): vsak posamezen znak, naveden v oglatih oklepajih. Naštevanje lahko vsebuje obsege, na primer a-z, kar pomeni poljuben znak, vključen v obseg, vključno s konci obsega;
  • [^...] (v oglatih oklepajih znak za zanikanje, ki mu sledi en ali več znakov): kateri koli posamezen znak, razen tistih, navedenih za znakom za zanikanje.

Vsak drug simbol pomeni samega sebe in ne nosi nobene dodatne obremenitve. Če je treba enega od navedenih znakov zapisati kot samega sebe, mora biti pred njim znak<Спецсимвол>. sebe<Спецсимвол>(poljubni ustrezen simbol) je definiran v istem stavku po ključna beseda POSEBNI SIMBOL.

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 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 ali 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. Primerni 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 implementirali 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. Priporočljivo je, da stare funkcije Find() ne uporabljate 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.

Vrsto String najdemo v vseh programskih jezikih. Je primitiven in v 1C obstaja veliko funkcij za delo z njim. V tem članku si bomo podrobneje ogledali različne načine delo s tipi nizov v 1C 8.3 in 8.2 z uporabo primerov.

Linija

Za pretvorbo spremenljivke katere koli vrste v niz obstaja funkcija z istim imenom "String()". Vhodni parameter bo sama spremenljivka, katere predstavitev niza je treba pridobiti.

String(False) // vrne "Ne"
String(12345) // vrne "12.345"
Niz(TrenutniDatum()) //"21.7.2017 11:55:36"

V niz je mogoče pretvoriti ne samo primitivne tipe, ampak tudi druge, na primer elemente imenikov in dokumentov.

SokrLP, SokrL, SokrP

Vhodni parametri teh funkcij so spremenljivke vrste niz. Funkcije odstranijo nepomembne znake (presledke, vrnitve v prvi vrstico itd.): z leve in desna stran, samo na levi strani oziroma samo na desni.

Okrajšava(" Presledki bodo odstranjeni na obeh straneh ") // "Presledki bodo odstranjeni na obeh straneh"
Okrajšava (" Presledki na obeh straneh bodo odstranjeni ") // " Presledki na levi bodo odstranjeni "
Okrajšava (" Presledki na obeh straneh bodo odstranjeni ") // " Presledki na desni bodo odstranjeni "

Leo, desno, srednje

Te funkcije vam omogočajo, da obrežete del niza. Funkcija "Left()" bo vrnila del niza z njegove leve strani podane dolžine. Funkcija "Right()" je podobna, vendar obrezuje z desne. Funkcija “Avg()” vam omogoča, da določite število znakov, iz katerih bo izbrana vrstica, in njeno dolžino.

Lev("Spremenljivka niza", 4) // vrne "Str"
Right("Spremenljivka niza", 7) // vrne "spremenljivko"
Medium("Spremenljivka niza", 2, 5) // vrne "troco"

StrLength

Funkcija določa število znakov, ki jih vsebuje spremenljivka niza.

StrLength("Word") // rezultat izvedbe bo številka 5

Najdi

Funkcija omogoča iskanje dela niza v spremenljivki niza. Povratna vrednost bo številka, ki prikazuje položaj začetka najdenega niza. Če ni ujemanja, se vrne nič.

Upoštevajte, da iskanje razlikuje med velikimi in malimi črkami. Če je v izvirnem nizu več kot ena pojavitev iskalnega podniza, bo funkcija vrnila začetek prve pojavitve.

Find("en, dva, ena, dva, tri", "dva") // funkcija bo vrnila številko 6

EmptyString

Z uporabo te funkcije lahko ugotovite, ali je niz prazen. Manjši znaki, kot so presledek, povratni znak in drugi, se ne upoštevajo.

EmptyString("Pupkin Vasily Ivanovich") // funkcija bo vrnila vrednost False
EmptyString(" ") // funkcija bo vrnila vrednost True

VReg, NReg, TReg

Te funkcije so zelo uporabne pri primerjavi in ​​pretvorbi nizovnih spremenljivk. »Vreg()« bo vrnil prvotni niz z velikimi črkami, »HPreg()« z malimi črkami, »TReg()« pa ga bo oblikoval tako, da bo prvi znak vsake posamezne besede napisan z veliko začetnico, vsi naslednji znaki pa z veliko začetnico.

VReg("GENERALNI DIREKTOR") // vrnjena vrednost - "GENERALNI DIREKTOR"
NReg(“CEO DIREKTOR”) // vrnjena vrednost – “CEO”
TREG(“CEO DIRECTOR”) // vrnjena vrednost – “Generalni direktor”

PageReplace

Ta funkcija je analogna zamenjavi v urejevalniki besedil. Omogoča vam zamenjavo enega znaka ali niza znakov z drugim v spremenljivkah niza.

StrReplace("rdeča, bela, rumena", ","", ";") // vrne "rdeča; bela; rumen"

StrNumberLines

Funkcija vam omogoča, da določite število vrstic, ločenih z vrnitvami v prvi red v besedilni spremenljivki.

Zanka v spodnjem primeru bo šla skozi tri kroge, ker bo funkcija LineNumberRow vrnila vrednost 3:

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

StrGetString

Ta funkcija deluje z večvrstičnim besedilom na enak način kot prejšnja. Omogoča vam, da iz besedilne spremenljivke pridobite določen niz.

StrGetString("Niz1" + Znaki.PS + "Niz2" + Znaki.PS + "Niz3", 2) // vrni "String2"

PageNumberOccurrences

Funkcija prešteje število pojavitev znaka ali podniza v iskalnem nizu.

StrNumberAttachments("a;b;c;d; ", ";") // funkcija bo vrnila številko 4

Simbol in koda simbola

Te funkcije vam omogočajo, da dobite znak po njegovi kodi v kodiranju Unicode, kot tudi določite to kodo po samem znaku.

SymbolCode("A") // funkcija vrne število 1040
CharacterCode(1040) // funkcija bo vrnila "A"

Pogoste naloge pri delu z nizi

Združevanje nizov

Za združevanje več nizov (za izvedbo veriženja) zadostuje uporaba operatorja dodajanja.

“Vrstica 1″ + “Vrstica 2” //rezultat dodajanja dveh vrstic bo “Vrstica 1 Vrstica 2”

Pretvorba vrste

Za pretvorbo vrste v niz, na primer povezavo do elementa imenika, številko itd., Dovolj je, da uporabite funkcijo "String()". Funkcije, kot je »ScrLP()«, bodo prav tako pretvorile spremenljivke v niz, vendar takoj z odrezavanjem nepomembnih znakov.

String(1000) // vrne "1000"

Upoštevajte, da je program pri pretvorbi števila v niz samodejno dodal presledek med tisočicami. Da bi se temu izognili, lahko uporabite naslednje konstrukcije:

StrReplace(String(1000),Characters.NPP,"") // vrne "1000"

String(Format(1000,"HG=")) // vrne "1000"

Narekovaji v nizu

Precej pogosto se boste morali ukvarjati s potrebo po podajanju narekovajev v spremenljivki niza. To je lahko besedilo zahteve, zapisano v konfiguratorju, ali pa samo spremenljivka. Če želite rešiti to težavo, morate le postaviti dva narekovaja.

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

Več vrstic, prelom vrstice

Če želite ustvariti večvrstično besedilo, mu preprosto dodajte prelome vrstic (Symbols.PS).

MultilineText = “Prva vrstica” + Simboli.PS + “Druga vrstica”

Kako odstraniti presledke

Če želite odstraniti presledke na desni ali levi strani, lahko uporabite funkcijo »ScrAP()« (kot tudi »ScrL()« in »ScrP()«):

StringNoSpaces = Abbreviation(" Mnogo črk ") // funkcija bo vrnila vrednost "Veliko črk"

Če morate po pretvorbi števila v niz odstraniti nelomljive presledke, uporabite naslednjo konstrukcijo:

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

Programerji pogosto uporabljajo tudi naslednjo konstrukcijo, ki vam omogoča, da odstranite ali zamenjate z drugim znakom vse presledke v besedilni spremenljivki:

StringNoSpaces = StrReplace("zdravo","") // vrne "zdravo"

Primerjava nizov med seboj

Izraze lahko primerjate z običajnim znakom enačaja. Primerjava je občutljiva na velike in male črke.

"Hello" = "hello" // vrne False
"Hello" = "Hello" // vrne True
"Pozdravljeni" = "Adijo" // bo vrnil False

Vrstice v 1C 8.3 v vgrajenem jeziku 1C so vrednosti primitivnega tipa Linija. Vrednote te vrste vsebujejo niz Unicode poljubne dolžine. Spremenljivke nizovnega tipa so niz 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 univerzalna.

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<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Išče podani podniz v nizu in vrne številko položaja prvega znaka najdenega podniza. Poglejmo parametre te funkcije:

  • Linija. 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", Smer iskanja.Konec); 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 v podanem nizu v 1s8 v male črke.

Primer 11: Pretvorite niz "HELLO WORLD!" v male začetnice.

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 z 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(

. Pretvori matriko nizov iz prvega parametra v niz, ki vsebuje vse elemente matrike, ločene z ločilom, podanim v drugem parametru.

Primer 23. Z nizom števil iz prejšnjega primera dobimo izvirni niz. Za račun = 0 z Array.Quantity() - 1 cikel Array[Act] = String(Array[Act]); EndCycle; Vrstica = StrConnect(Array, "; "); String je eden od primitivni tipi podatki v sistemih 1C:Enterprise 8. Spremenljivke s tipom

linija primitivni tipi vsebujejo besedilo. Vnesite vrednosti spremenljivk sestavljajo

dvojni narekovaji
. Doda se lahko več spremenljivk te vrste.
Per1 = "Beseda 1" ;

Per2 = "Beseda 2" ; Per3 = Per1 + " " + Per2; Na koncu Per3

bo pomenilo "

Beseda 1 Beseda 2″.<Строка>, <Подсказка>, <Длина>, <Многострочность>) — Poleg tega sistemi 1C:Enterprise 8 ponujajo funkcije za delo z nizi. Oglejmo si glavne: Linija EnterString( <Строка> funkcija je zasnovana za prikaz pogovornega okna, v katerem lahko uporabnik določi vrednost spremenljivke tipa <Подсказка> . Parameter <Длина> je obvezen in vsebuje ime spremenljivke, v katero bo zapisan vneseni niz. Parameter <Многострочность> neobvezno - to je naslov pogovornega okna. Parameter

neobvezno, prikazuje največjo dolžino vhodnega niza. Privzeta vrednost je nič, kar pomeni neomejeno dolžino. Parameter

Simbol (<КодСимвола>) — izbirno. Določa večvrstični način vnosa besedila: True—večvrstični vnos besedila z ločili med vrsticami; False - vnesite preprost niz.

Niz lahko vnesete, če poznate kodo znakov v Unicode:

Obstaja tudi inverzna funkcija, ki vam omogoča, da ugotovite kodo simbola.

SymbolCode(<Строка>, <НомерСимвола>) — vrne številko Unicode podanega znaka kot številko.

Funkcije pretvorbe velikih in malih črk besedila:

VReg(<Строка>) — Pretvori vse znake v nizu v velike črke.

NReg(<Строка>) — Pretvori vse znake v nizu v male črke.

TReg(<Строка>) — pretvori vse znake v nizu v velike in male črke. To pomeni, da se prve črke v vseh besedah ​​pretvorijo v velike črke, preostale črke pa v male.

Funkcije za iskanje in zamenjavo znakov v nizu:

Najdi (<Строка>, <ПодстрокаПоиска>) — poišče številko znaka pojavitve iskanega podniza. Na primer:

Najdi ("Niz", "oka");

PageFind<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) // 4 — najde številko znaka pojavitve iskanega podniza, številka pojavitve je navedena v ustreznem parametru. V tem primeru se iskanje začne z znakom, katerega številka je navedena v parametru Začetni položaj.

Iskanje je možno od začetka ali konca niza. Na primer: Število4 pojavitev = Str Najdi ("obrambnost"

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) , "o" ,Smer iskanja. Od začetka, 1, 4);

// 7

EmptyString(<Строка>) – najde vse pojavitve iskalnega podniza v izvornem nizu in ga nadomesti z nadomestnim podnizom. res StrReplace ("String" , "oka" , "" ) ; // Stran.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – preveri, ali so v nizu pomembni znaki. Če ni pomembnih znakov ali jih sploh ni, je vrnjena vrednost

. drugače - laž– Izračuna število pojavitev iskalnega podniza v izvornem nizu.

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — StrNumberOccurrences ( "učiti se, študirati in še enkrat študirati", "študija" , "" ); // 3

zamenja parametre v niz s številko. Vrstica mora vsebovati nadomestne oznake v obliki: “%1..%N”. Številčenje markerjev se začne od 1. Če je vrednost parametra Nedefinirano, "1" , "2" ) ; , se zamenja prazen niz.

StrTemplate (

lev(<Строка>, <ЧислоСимволов>) "Parameter 1 = %1, parameter 2 = %2"

prav<Строка>, <ЧислоСимволов>) // Parameter 1= 1, Parameter 2 = 2

sreda<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Funkcije pretvorbe nizov:<ЧислоСимволов>– vrne prve znake niza.<НачальныйНомер>.

AbbrL(<Строка>) – vrne zadnje znake niza.

Okrajšava (<Строка>) – vrne niz dolžine

AbbrLP(<Строка>) , začenši s simbolom

StrGetString(<Строка>, <НомерСтроки>) obrezuje nepomembne znake levo od prvega pomembnega znaka v nizu.

— odreže nepomembne znake desno od zadnjega pomembnega znaka v vrstici.

StrLength(<Строка>) – odreže nepomembne znake levo od prvega pomembnega znaka v vrstici in desno od zadnjega pomembnega znaka v vrstici.

StrNumberRow(<Строка>) – Pridobi večvrstični niz po številu.

Druge lastnosti:<Строка1>, <Строка2> ) – vrne število znakov v nizu. Primerjava vrednosti. Vrne:

  • 1 - če je prva vrstica večja od druge
  • -1 - če je druga vrstica večja od prve
  • 0 - če sta niza enaka

StrCompare("Prva vrstica" , "Druga vrstica" ) ;

Kako delati