1c hitta den andra förekomsten i strängen. Nya strängfunktioner

1c hitta den andra förekomsten i strängen.  Nya strängfunktioner
1c hitta den andra förekomsten i strängen. Nya strängfunktioner

Specialtecken i 1C 8.3 - set speciella karaktärer för strängdatatyper.

Låt oss överväga var och en av dem mer i detalj.

Specialtecken i 1C: VK, VTab, NPP, PS, PF, Tab

Specialtecken anropas med hjälp av den globala egenskapen "Tecken", till exempel:

Text = "Text före flik" + Symbols.Tab + "text efter flik";

Få 267 1C-videolektioner gratis:

  • VC (CR) - vagnretur. Förr i tiden på matrix- eller daisy-wheel-skrivare användes denna teckenkod som ett kommando som returnerade skrivhuvudet till början av raden.
  • NSP (NBSp) - icke-brytande utrymme (syns ofta i numeriska strängar, till exempel: 1000).
  • PS (LF) - Radmatning (LF - radmatning) - rulla trumman en rad nedåt, skrivhuvudet är på samma plats.
  • PF (FF) - formatöversättning. Arket matas ut från skrivaren, utskriften startar från ett nytt ark.
  • Tab (Tab) – ett tabbtecken. Horisontella flikar - ett sätt att placera för utskrift på närmaste kolumn, en multipel av något nummer (till exempel 8, 16, 24 ...).
  • VTab (VTab) - vertikal tabulering. Det liknar horisontellt, bara vi är placerade på linjen. Orsakar viss rullning av skrivartrumman (skrivhuvudet förblir i samma position (kolumn)!)

PS + VK är en kombination som utför två operationer: rullar trumman nedåt en rad och returnerar skrivarvagnen till början av raden, vilket motsvarar vad användaren förväntar sig att få genom att trycka på Enter.

Om du börjar lära dig 1C-programmering rekommenderar vi vår gratis kurs(Glöm inte

String är en av de primitiva datatyperna i 1C:Enterprise 8-system. Variabler med typ linje innehålla text.

Typ variabelvärden linje omges av dubbla citattecken. Flera variabler av denna typ kan vikas.

Per1 = "Ord 1" ;
Per2 = "Ord 2" ;
Per3 = Per1 + " " + Per2;

Så småningom Per 3 kommer att spela roll" Word 1 Word 2″.

Dessutom tillhandahåller 1C:Enterprise 8-system funktioner för att arbeta med strängar. Tänk på de viktigaste:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funktionen är utformad för att visa en dialogruta där användaren kan ange värdet på en variabel av typen Linje. Parameter <Строка> krävs och innehåller namnet på variabeln som den angivna strängen kommer att skrivas in i. Parameter <Подсказка> valfritt är titeln på dialogrutan. Parameter <Длина> valfritt, indikerar den maximala längden på inmatningssträngen. Standard är noll, vilket betyder obegränsad längd. Parameter <Многострочность> frivillig. Anger textinmatningsläget för flera rader: True — textinmatning med flera rader med radavgränsare; False - Ange en enkel sträng.

En sträng kan matas in och, med kännedom om teckenkoden i Unicode:

Symbol(<КодСимвола>) — Koden skrivs in som ett nummer.

Bokstav= Symbol(1103 ); //Jag

Det finns också en omvänd funktion som låter dig ta reda på koden för ett tecken.

SymbolCode(<Строка>, <НомерСимвола>) — Returnerar Unicode-numret för det angivna tecknet som ett tal.

Textkonverteringsfunktioner för skiftläge:

VReg(<Строка>) - Konverterar alla tecken i en sträng till versaler.

HReg(<Строка>) - Konverterar alla tecken i en sträng till gemener.

TReg(<Строка>) - konverterar alla tecken i strängen till skiftläge i rubriken. Det vill säga att de första bokstäverna i alla ord konverteras till versaler och de återstående bokstäverna konverteras till gemener.

Funktioner för att söka och ersätta tecken i en sträng:

Hitta(<Строка>, <ПодстрокаПоиска>) - hittar teckennumret för förekomsten av sökundersträngen. Till exempel:

Hitta ("String", "öga" ); // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — hittar teckennumret för förekomsten av sökdelsträngen, förekomstnumret anges i motsvarande parameter. I det här fallet börjar sökningen från tecknet, vars nummer anges i parametern Startposition. Sökningen är möjlig från början eller från slutet av strängen. Till exempel:

Number4 Entry= StrFind( "Defensivitet", "o" , sökriktning. Först, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Hittar alla förekomster av sökundersträngen i källsträngen och ersätter den med ersättningsdelsträngen.

StrReplace("String" , "öga" , "" ); // Sida

Tom rad(<Строка>) - kontrollerar strängen för betydande tecken. Om det inte finns några signifikanta tecken, eller inga tecken alls, returneras värdet Sann. Annars - Lögn.

StrNumberCurrences(<Строка>, <ПодстрокаПоиска>) – beräknar antalet förekomster av sökundersträngen i källsträngen.

StrNumberOccurrences ( "Studera, studera och plugga igen", "studie" , "" ) ; // 3

StrMall(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — ersätter parametrarna i strängen med nummer. Strängen måste innehålla ersättningsmarkörer av formen: "%1..%N". Numrering av markörer börjar från 1. Om parametervärdet Odefinierad, den tomma strängen ersätts.

StrPattern ( "Alternativ 1 = %1, Alternativ 2 = %2", "1" , "2" ) ; // Parameter 1= 1, Parameter 2 = 2

Strängkonverteringsfunktioner:

Ett lejon(<Строка>, <ЧислоСимволов>) returnerar de första tecknen i strängen.

Höger(<Строка>, <ЧислоСимволов>) - returnerar de sista tecknen i strängen.

onsdag (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - returnerar en längdsträng<ЧислоСимволов>, som börjar med ett tecken<НачальныйНомер>.

Abbr(<Строка>) trunkerar icke-signifikanta tecken till vänster om det första signifikanta tecknet i strängen.

abbr(<Строка>) - skär av obetydliga tecken till höger om det sista signifikanta tecknet i strängen.

Abbrl(<Строка>) - skär av icke-signifikanta tecken till vänster om det första signifikanta tecknet i strängen och till höger om det sista signifikanta tecknet i strängen.

StrGetString(<Строка>, <НомерСтроки>) – får strängen av en flerradssträng efter nummer.

Andra funktioner:

StrLängd(<Строка>) - returnerar antalet tecken i en sträng.

StrNumber of Lines(<Строка>) - returnerar antalet rader i en flerradssträng. En rad anses vara ny om den skiljs från föregående rad med ett nyradstecken.

StrCompare(<Строка1>, <Строка2> ) - jämför två strängar skiftlägesokänsligt. Funktionen fungerar som ett objekt Jämföra värden. Returnerar:

  • 1 - om den första raden är större än den andra
  • -1 - om den andra raden är större än den första
  • 0 - om strängar är lika

StrCompare("Första raden" , "Andra raden" ); // 1

String-typen finns i alla programmeringsspråk. Det är primitivt, och i 1C finns det många funktioner för att arbeta med det. I den här artikeln ska vi titta närmare på olika sätt arbeta med strängtyper i 1C 8.3 och 8.2 med exempel.

Linje

För att konvertera en variabel av vilken typ som helst till en sträng finns funktionen "String ()" med samma namn. Ingångsparametern kommer att vara variabeln själv, vars strängrepresentation ska erhållas.

String(False) // returnerar "Nej"
String(12345) // returnerar "12 345"
String(CurrentDate()) //"21.07.2017 11:55:36"

Det är möjligt att konvertera till en sträng inte bara primitiva typer, utan även andra, till exempel element i kataloger och dokument.

Förkortad LP, Förkortad L, Förkortad P

Ingångsparametrarna för dessa funktioner är en strängtypsvariabel. Funktioner tar bort obetydliga tecken (mellanslag, vagnretur, etc.): från vänster och höger sida, endast på vänster sida, respektive endast på höger sida.

abbrl("mellanslag på båda sidor kommer att tas bort") // "mellanslag på båda sidor kommer att tas bort"
abbr("mellanslag på båda sidor kommer att tas bort") // "mellanslag till vänster kommer att tas bort"
abbr(" Mellanslag på båda sidor kommer att tas bort ") // " Mellanslag till höger kommer att tas bort"

Leo, höger, mitten

Dessa funktioner låter dig klippa av en del av ett snöre. Lion()-funktionen returnerar delen av strängen på dess vänstra sida av den angivna längden. Funktionen "Right()" är liknande, men beskärning görs till höger. Funktionen "Wed()" låter dig ange teckennumret från vilket strängen ska väljas och dess längd.

Lion("Strängvariabel", 4) // returnerar "Stro"
Right("Strängvariabel", 7) // returnerar "variabel"
avg("Strängvariabel", 2, 5)// returnerar "troco"

StrLängd

Funktionen bestämmer antalet tecken som finns i en strängvariabel.

StrLength("Word") // resultatet av exekveringen blir siffran 5

Hitta

Funktionen gör det möjligt att söka efter en del av en sträng i en strängvariabel. Returvärdet kommer att vara ett tal som anger positionen för början av den hittade strängen. Om inga matchningar hittas returneras noll.

Observera att sökningen är skiftlägeskänslig. Om det finns mer än en förekomst av sökundersträngen i den ursprungliga strängen, returnerar funktionen början av den första förekomsten.

Find("ett, två, ett, två, tre", "två") // funktionen returnerar siffran 6

Tom linje

Genom att använda denna funktion kan du avgöra om en sträng är tom. Obetydliga tecken, som mellanslag, vagnretur och andra, tas inte med i beräkningen.

EmptyString("Vasily Ivanovich Pupkin") // funktionen returnerar False
EmptyString(" ") // funktionen returnerar True

VReg, NReg, TReg

Dessa funktioner är mycket användbara när du jämför och konverterar strängvariabler. "Vreg()" returnerar den ursprungliga strängen med versaler, "HReg()" med gemener och "TReg()" kommer att formatera den så att det första tecknet i varje enskilt ord är versaler och alla efterföljande tecken är gemener.

VReg("GENERAL DIRECTOR") // returvärde - "GENERAL DIRECTOR"
HReg("GENERAL DIRECTOR") // returvärde - "VD"
TReg("GENERAL DIRECTOR") // returvärde - "General Director"

StrReplace

Denna funktionär en analog till ersättningen i textredigerare. Det låter dig ersätta ett tecken eller en uppsättning tecken med en annan i strängvariabler.

StrReplace("röd, vit, gul", ",", ";") // returnerar "röd; vit; gul"

StrNumberRows

Funktionen låter dig bestämma antalet rader åtskilda av en vagnretur i en textvariabel.

Slingan i exemplet nedan kommer att gå genom tre cirklar eftersom StrNumberRows-funktionen returnerar värdet 3:

För ind \u003d 1 av StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Loop
<тело цикла>
EndCycle;

StrGetString

Denna funktion fungerar med flerradstext på samma sätt som den föregående. Det låter dig hämta en specifik sträng från en textvariabel.

StrGetString("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // returnerar "Linje2"

StrNumberCurrences

Funktionen räknar antalet förekomster av ett tecken eller delsträng i den sökta strängen.

StrNumberInstallations("a;b;c;d; ", ";") // funktionen returnerar siffran 4

Symbol och SymbolCode

Dessa funktioner låter dig få ett tecken genom dess Unicode-kod, samt bestämma denna kod genom själva tecknet.

SymbolCode("A") // funktionen returnerar talet 1 040
SymbolCode(1040) // funktionen returnerar "A"

Frekventa uppgifter när du arbetar med strängar

Strängsammansättning

För att sammanfoga flera strängar (sammanfoga) använd bara additionsoperatorn.

"Linje 1" + "Linje 2" //resultatet av att lägga till två rader blir "Linje 1 Rad 2"

Typkonvertering

För att konvertera en typ till en sträng, till exempel en referens till ett ordbokselement, ett nummer och så vidare, räcker det med att använda funktionen "String ()". Funktioner som "ShortLP()" kommer också att konvertera variabler till en sträng, men omedelbart med att klippa bort obetydliga tecken.

String(1000) // returnerar "1000"

Observera att när du konverterar ett tal till en sträng, lade programmet automatiskt till ett mellanslag som skiljer tusentalet åt. För att undvika detta kan du använda följande strukturer:

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

String(Format(1000,"CH=")) // returnerar "1000"

Citat i en sträng

Ganska ofta kommer du att behöva ta itu med behovet av att sätta citattecken i en strängvariabel. Det kan antingen vara en förfrågningstext skriven i konfiguratorn, eller bara en variabel. För att lösa detta problem behöver du bara ställa in två citattecken.

Header = String("Horns and Hooves LLC är oss!") // returnerar "Roga and Hooves LLC är oss!"

Flerlinje, radbrytning

För att skapa flerradstext lägg bara till radbrytningstecken (Symbols.PS).

MultilineText = "Första raden" + Tecken.PS + "Andra raden"

Hur man tar bort mellanslag

För att ta bort mellanslag till höger eller vänster kan du använda funktionen "Stretch()" (liksom "Scrpt()" och "ScreenP()"):

StringWithoutSpaces = ShortLP(" Många bokstäver ") // funktionen returnerar värdet "Många bokstäver"

Om du, efter att ha konverterat ett nummer till en sträng, behöver ta bort icke-brytande utrymmen, använd följande konstruktion:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // returnerar "99999"

Dessutom använder programmerare ofta följande konstruktion, som låter dig ta bort eller ersätta alla mellanslag i en textvariabel med ett annat tecken:

StringWithoutSpaces = StrReplace(" hej", " " ,"") // returnerar "hej"

Jämför strängar med varandra

Du kan jämföra termer med det vanliga likhetstecknet. Jämförelsen är skiftlägeskänslig.

"hello" = "hej" // kommer att returnera false
"Hello" = "Hej" // kommer att returnera True
"Hello" = "Adjö" // kommer att returnera False

Strängar i 1C 8.3 i det inbyggda språket 1c är värden av primitiv typ Linje. Värden av denna typ innehåller en Unicode-sträng av godtycklig längd. Variabler av strängtyp är en uppsättning tecken som omges av citattecken.

Exempel 1. Låt oss skapa en strängvariabel med text.

StringVariable = "Hej värld!";

Funktioner för att arbeta med strängar i 1:or 8.3

Det här avsnittet kommer att tillhandahålla huvudfunktionerna som låter dig ändra rader i 1:or eller analysera informationen i dem.

StrLängd

StrLängd(<Строка>) . Returnerar antalet tecken i strängen som skickas i parametern.

Exempel 2. Låt oss räkna antalet tecken i strängen "Hello world!".

String = "Hej världen!"; Antal tecken = StrLength(String); Rapport (antal tecken);

Resultatet av att köra den här koden kommer att visa antalet tecken i strängen: 11.

Förkortad

Abbr(<Строка>) . Trimar icke-signifikanta tecken till vänster om det första signifikanta tecknet i en sträng.
Obetydliga karaktärer:

  • Plats;
  • icke-brytande utrymme;
  • tabulering;
  • vagnretur;
  • linjeöversättning;
  • översättning av formuläret (sida).

Exempel 3. Ta bort alla blanksteg från vänster sida av strängen "fred!" och lägg till strängen "Hej" till den.

String = abbr("värld!"); String = "Hej"+String; Notify(String);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "Hello world!".

Förkortning

abbr(<Строка>) . Trimar icke-signifikanta tecken till höger om det första signifikanta tecknet i en sträng.

Exempel 4. Form från strängarna "Hello" och "world!" frasen "Hej världen!"

String = abbr("Hej")+" "+abbr("värld!"); Notify(String);

Förkortat LP

Abbrl(<Строка>) . Trimmer icke-signifikanta tecken till höger om det första signifikanta tecknet i strängen, trimmer även icke-signifikanta tecken till vänster om det första signifikanta tecknet i strängen. Denna funktion används oftare än de två föregående, eftersom den är mer mångsidig.

Exempel 5. Ta bort obetydliga tecken till vänster och höger i motpartens namn.

Contractor = Directories.Contractors.FindBy Details("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Förkortad LP(ContractorObject.Description); ContractorObject.Write();

ett lejon

Ett lejon(<Строка>, <ЧислоСимволов>) . Hämtar de första tecknen i en sträng, antalet tecken anges i parametern Antal tecken.

Exempel 6. Låt strukturen Anställd innehålla den anställdes namn, efternamn och patronym. Få sträng med efternamn och initialer.

InitialName = Lion(Anställd.Namn, 1); Patronymisk initial = Leo(Anställd.Patronym, 1); FullName = Employee.LastName + " " + FirstName Initial + "." + Patronymisk initial + ".";

Rättigheter

Höger(<Строка>, <ЧислоСимволов>) . Hämtar de sista tecknen i en sträng, antalet tecken anges i parametern Antal tecken. Om det angivna antalet tecken överskrider längden på strängen, returneras hela strängen.

Exempel 7. Låt ett datum skrivas i slutet av en strängvariabel i formatet "ååååmmdd", hämta en sträng med ett datum och konvertera den till typ datum.

String = " Det aktuella datumet: 20170910"; StringDate = Rights(String, 8); Date = Date(StringDate);

onsdag

onsdag (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Får en delsträng från strängen som skickas i parametern Linje, med början från tecknet vars nummer anges i parametern Initialt nummer och längden som skickas till parametern Antal tecken. Numreringen av tecken i en sträng börjar från 1. Om parametern Initialt nummer ett värde mindre än eller lika med noll anges, då får parametern värdet 1. Om parametern Antal tecken inte anges, tecken upp till slutet av strängen väljs.

Exempel 8. Låt strängvariabeln innehålla regionkoden från den nionde positionen, du ska hämta den och skriva den på en separat rad.

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

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Söker efter den angivna delsträngen i en sträng, returnerar positionsnumret för det första tecknet i den hittade delsträngen. Tänk på parametrarna för denna funktion:

  • Linje. Källsträng;
  • SubstringSearch. Den önskade delsträngen;
  • DirectionSearch. Anger riktningen för att söka efter en delsträng i en sträng. Kan ta värden:
    • Sökriktning. Från början;
    • Sökriktning. Från slutet;
  • Startposition. Anger positionen i strängen där sökningen ska startas;
  • Ingångsnummer. Anger antalet förekomster av den sökta delsträngen i källsträngen.

Exempel 9. I raden "Hej värld!" bestämma positionen för den senaste förekomsten av "och"-tecknet.

PositionNumber = StrFind("Hello World!", "och", SearchDirection.From End); Notify(PositionNumber);

Resultatet av exekveringen av denna kod kommer att vara visningen av numret för den senaste förekomsten av symbolen "och" på skärmen: 9.

VReg

VReg(<Строка>) . Konverterar alla tecken i den angivna strängen till 1s 8 till versaler.

Exempel 10. Konvertera strängen "hej världen!" till versaler.

StringVreg = Vreg("hej världen!"); Rapport(StringVreg);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "HELLO WORLD!"

HReg

HReg(<Строка>) . Konverterar alla tecken i den angivna strängen till 1s 8 till gemener.

Exempel 11. Konvertera strängen "HELLO WORLD!" till gemener.

StringNreg = NReg("HEJ VÄRLDEN!"); Rapport(StringVreg);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "hej världen!"

TReg

TReg(<Строка>) . Konverterar en sträng enligt följande: det första tecknet i varje ord konverteras till versaler, de återstående tecknen i ordet konverteras till gemener.

Exempel 12. Sätt de första bokstäverna i orden i strängen "hej världen!".

StringTreg = TReg("hej värld!"); Rapport(StringTreg);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "Hello World!"

Symbol

Symbol(<КодСимвола>) . Får ett tecken genom dess Unicode-kod.

Exempel 13. Lägg till vänster och höger på raden "Hello World!" symbol ★

StringWithStars = Character("9733")+"Hello World!"+Character("9733"); Report(StringWithStars);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "★Hello World!★"

Symbolkod

SymbolCode(<Строка>, <НомерСимвола>) . Hämtar Unicode-teckenkoden från strängen som anges i den första parametern, placerad på den position som anges i den andra parametern.

Exempel 14. Ta reda på koden för det sista tecknet i strängen "Hello World!".

String = "Hej världen!"; CharacterCode =CharacterCode(String, StrLength(String)); Notify(CharacterCode);

Resultatet av exekveringen av denna kod kommer att vara visningen av koden för symbolen "!" — 33.

Tom linje

Tom rad(<Строка>) . Kontrollerar om strängen endast består av icke-signifikanta tecken, det vill säga om den är tom.

Exempel 15. Kontrollera om strängen är tom och består av tre mellanslag.

Empty = EmptyString(" "); Rapport (tom);

Resultatet av exekveringen av denna kod kommer att vara visningen av ordet "Ja" (stränguttryck av ett booleskt värde Sann).

StrReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Hittar alla förekomster av sökundersträngen i källsträngen och ersätter den med ersättningsdelsträngen.

Exempel 16. I raden "Hello World!" ersätt ordet "världen" med ordet "vänner".

String = StrReplace("Hej världen!", "Världen", "Vänner"); Notify(String);

Resultatet av exekveringen av denna kod kommer att vara visningen av strängen "Hej vänner!"

StrNumberRows

StrNumber of Lines(<Строка>) . Låter dig räkna antalet rader i en flerradssträng. För att flytta till en ny rad i 1s 8 används symbolen PS(radmatningskaraktär).

Exempel 17. Bestäm antalet rader i texten:
"Första linjen
Andra linjen
Tredje raden"

Number = StrNumber of Lines("Första raden"+Symbols.PS +"Andra raden"+Symbols.PS +"Tredje raden"); Rapport(nummer);

Resultatet av exekveringen av denna kod blir visningen av antalet rader i texten: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Får en sträng i en flerradssträng genom dess nummer. Radnumreringen börjar från 1.

Exempel 18. Få den sista raden i texten:
"Första linjen
Andra linjen
Tredje raden"

Text = "Första raden"+Tecken.PS +"Andra raden"+Tecken.PS +"Tredje raden"; LastLine = StrGetLine(Text, StrNumber of Lines(Text)); Meddela (sista raden);

Resultatet av exekveringen av denna kod kommer att vara visningen av raden "Tredje raden".

StrNumberCurrences

StrNumberCurrences(<Строка>, <ПодстрокаПоиска>) . Returnerar antalet förekomster av den angivna delsträngen i en sträng. Funktionen är skiftlägeskänslig.

Exempel 19. Bestäm hur många gånger bokstaven "c" kommer in på raden "Linjer i 1s 8.3 och 8.2", oavsett skiftläge.

String = "Lader i 1s 8.3 och 8.2"; Antal förekomster = StrNumber of Incidents(Vreg(String), "C"); rapport (antal händelser);

Resultatet av att köra den här koden visar antalet förekomster på skärmen: 2.

Sidan börjar från

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Kontrollerar om strängen som ges i den första parametern börjar med strängen i den andra parametern.

Exempel 20. Bestäm om TIN för den valda motparten börjar med siffran 1. Låt variabeln motpart Motparter.

TIN = Contractor.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Din kod EndIf;

Sidan slutar på

StrEndsOn(<Строка>, <СтрокаПоиска>) . Kontrollerar om strängen som skickas i den första parametern slutar med strängen i den andra parametern.

Exempel 21. Bestäm om TIN för den valda motparten slutar med siffran 2. Låt variabeln motpart länken till katalogelementet lagras Motparter.

TIN = Contractor.TIN; Slutar med två = Str slutar med (TIN, "2"); If Slutar med två Då //Din kod EndIf;

Page Split

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Delar upp en sträng i delar med de angivna avgränsningstecknen och skriver de resulterande strängarna till en array. Den första parametern lagras originalsträng, i den andra en sträng som innehåller en separator, i den tredje anges om det är nödvändigt att skriva till en array tomma rader(standard Sann).

Exempel 22. Anta att vi har en sträng som innehåller siffror åtskilda av symbolen ";", hämta en array av siffror från strängen.

String = "1; 2; 3"; Array = StrSplit(String, ";"); For Count = 0 By Array.Quantity() - 1 Loop Attempt Array[Count] = Number(Ablp(Array[Count])); Undantagsmatris[W] = 0; EndTry EndCycle;

Som ett resultat av exekveringen kommer en array med nummer från 1 till 3 att erhållas.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Konverterar en array av strängar från den första parametern till en sträng som innehåller alla element i arrayen med hjälp av avgränsaren som anges i den andra parametern.

Exempel 23. Med hjälp av arrayen av siffror från föregående exempel, hämta den ursprungliga strängen.

For Count = 0 By Array.Quantity() - 1 Loop Array[Count] = String(Array[Count]); EndCycle; String = StrConnect(Array, "; ");

Implementerad i version 8.3.6.1977.

Vi har utökat uppsättningen funktioner för att arbeta med strängar. Vi gjorde detta för att ge dig mer avancerade verktyg för att analysera strängdata. Nya funktioner kommer att vara bekväma och användbara i tekniska uppgifter för textanalys. I uppgifter relaterade till analys av text som innehåller data i formaterad form. Detta kan vara analysen av vissa filer som tagits emot från utrustningen, eller till exempel analysen av en teknisk logg.

Alla de åtgärder som de nya funktionerna utför kunde du utföra tidigare. Med hjälp av mer eller mindre komplexa algoritmer skrivna i ett inbäddat språk. Därför ger nya funktioner dig inga i grunden nya möjligheter. Däremot låter de dig minska mängden kod, göra koden enklare och mer begriplig. Dessutom låter de dig påskynda utförandet av åtgärder. Eftersom funktionerna som implementeras i plattformen fungerar såklart snabbare än en liknande algoritm skriven i det inbyggda språket.

Formatfunktion StrTemplate()

Denna funktion ersätter parametrar i en sträng. Behovet av en sådan konvertering uppstår ofta till exempel vid visning av varningsmeddelanden. Syntaxen för denna funktion är följande:

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

<Шаблон>är strängen där parameterrepresentationerna ska ersättas.

<Значение1> , ... <Значение10>- det här är parametrarna (max - tio), vars representationer måste ersättas i strängen.

För att ange en specifik plats i mallen som du vill utföra ersättningen till, måste du använda markörer av formen %1, ... %10. Antalet markörer som är involverade i mallen och antalet parametrar som innehåller värden måste matcha.

Till exempel resultatet av att köra en sådan operatör:

det kommer att finnas en rad:

Datafel på rad 2 (kräver datumtyp)

Strängfunktion StrCompare()

Denna funktion jämför två strängar skiftlägesokänsligt. Till exempel, så här:

Du kan utföra samma åtgärd innan du använder ValueComparison-objektet:

Men att använda den nya funktionen ser enklare ut. Och dessutom fungerar funktionen, till skillnad från Value Compare-objektet, både i den tunna klienten och i webbklienten.

Strängfunktioner StrBeginsC(), StrEndsTo()

Dessa funktioner avgör om en sträng börjar med en specificerad delsträng eller om en sträng slutar med en specificerad delsträng. Algoritmen för dessa funktioner är inte svår att implementera i ett inbyggt språk, men deras närvaro gör att du kan skriva renare och mer begriplig kod. Och de jobbar snabbare.

Till exempel är de bekväma att använda i If-satsen:

Funktioner för att arbeta med strängar StrSplit(), StrJoin()

Dessa funktioner delar upp strängen i delar enligt den angivna avgränsaren. Eller vice versa, de kombinerar flera rader till en och infogar den valda avgränsaren mellan dem. De är bekväma för att skapa eller analysera loggar, en teknisk logg. Till exempel kan du enkelt demontera en teknisk loggpost i delar som är lämpliga för vidare analys:

Funktion för att arbeta med strängar StrFind()

Istället för den gamla Find()-funktionen implementerade vi ny funktion, som har ytterligare funktioner:

  • Sök i olika riktningar (från början, från slutet);
  • Sök från den angivna positionen;
  • Sök efter en händelse med angivet antal(andra, tredje, etc.).

I själva verket duplicerar det funktionerna i den gamla funktionen. Detta görs för att bibehålla kompatibilitet med moduler kompilerade i äldre versioner. Den gamla Find()-funktionen rekommenderas inte att användas längre.

Nedan är ett exempel med de nya sökfunktionerna. Att söka bakåt är användbart när du behöver det sista fragmentet av en formaliserad sträng, till exempel, fullständiga namn fil i URL. Och att söka från en angiven position hjälper i fall där du behöver söka i ett känt fragment, och inte i hela strängen.