Meny
Är gratis
registrering
Hem  /  Multimedia/ Funktioner för att arbeta med linje 1:or. Nya funktioner för att arbeta med strängar

Funktioner för att arbeta med linje 1c. Nya funktioner för att arbeta med strängar

Hej alla
Idag bad de mig att inte visa prefixet för dokumentet vid utskrift av implementeringsdokumentet, problemet löstes enligt följande.

StrReplace (Nummer, Lejon (Nummer, 3), "");

När jag tittade in i syntaxassistenten gillade jag den så mycket att jag ville skriva om arbetar med strängar i 1C: Enterprise.

En sträng i 1C hänvisar till en primitiv datatyp.

Om du tittar på 1C-hjälpen kommer vi att se följande beskrivning av String-typen
Värden av denna typ innehåller en Unicode-sträng med godtycklig längd.
Om med dina egna ord om strängar kommer det att lösa sig. En sträng är en konstant, bestående av olika tecken, alltid omgiven av citattecken.

Ange en sträng
Call = "Hej passagerare";

Flerradiga strängar i typiska konfigurationer skapas oftast med den vertikala "|"-avgränsaren:
String = "Flerlinje
| sträng
| skriva
| text ";

Citattecken inuti strängen anges med dubbla citattecken.
String = "" Text inom citattecken "";

Det finns många operationer på strängar (sök på insidan av en sträng, bestämma den första, etc.), det är bättre att titta på Syntax Assistant.
Syntax Assistant - Allmän beskrivning av det inbyggda språket-> inbyggda funktioner-> funktioner för att arbeta med strängar.

Strängfunktioner

Här, i en kort form, kommer jag att ge funktionerna för att arbeta med strängar:

BReg (<Строка>) - Funktionen konverterar alla tecken i strängen till versaler.

SymbolCode (<Строка>, <НомерСимвола>) - Funktionen tar emot koden för tecknet som finns i den passerade strängen på positionen med det angivna numret.

Ett lejon(<Строка>, <ЧислоСимволов>) - Funktionen väljer de första tecknen från vänster om strängen.

Hitta(<Строка>, <ПодстрокаПоиска>) - Funktionen hittar förekomsten av söksträngen som en delsträng i den ursprungliga strängen.

HPreg (<Строка>) - Funktionen konverterar alla tecken i strängen till gemener.

Höger (<Строка>, <ЧислоСимволов>) - Den här funktionen skiljer sig från vänsterfunktionerna genom att den väljer de sista tecknen i strängen till höger.

Tom rad(<Строка>) - Funktionen kontrollerar strängen för betydande tecken.

Symbol(<КодСимвола>) - Funktionen konverterar teckenkoden till en sträng som innehåller tecknet.

AbbrL (<Строка>) - Funktionen skär bort obetydliga tecken till vänster om det första signifikanta tecknet i strängen.

SocrLP (<Строка>) - Funktionen tar bort obetydliga tecken till vänster om det första signifikanta tecknet på raden och mellanslag till höger om det sista signifikanta tecknet i raden.

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

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

Stränglängd (<Строка>) - Funktionen får antalet tecken i en sträng.

PRersätt (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - Funktionen hittar alla förekomster av sökundersträngen i den ursprungliga strängen och ersätter den med ersättningsundersträngen.

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

StrAntal förekomster (<Строка>, <ПодстрокаПоиска>) - Funktionen beräknar antalet förekomster av sökundersträngen i den ursprungliga strängen.

StrNumber of Lines (<Строка>) - Funktionen räknar antalet rader i en flerradssträng. I en flerradssträng är raderna åtskilda av radmatningstecken.

Treg (<Строка>) - Funktionen konverterar strängen till titelns skiftläge. Detta innebär att för varje ord konverteras det första tecknet till ett skiftläge i rubriken, eller till versaler om inget skiftläge i titeln är definierat för tecknet. Resten av tecknen konverteras till gemener.

Typkonverteringar
För explicit konvertering av datatyper finns funktioner med samma namn med den datatyp som konverteringen sker till: String (<Значение>)

StringOfNumbers = String (Number);

Alla dessa funktioner beskrivs i detalj i Syntax Assistant, hur Syntax Assistant kan hjälpa en nybörjarprogrammerare, beskrev jag i artikeln.

Exempel för att arbeta med strängar

Konvertera ett tal till en sträng och tillbaka.

För att få en strängrepresentation av året, använd funktionen Format.

Year = Format (CurrentDate (), "DF = yyyy") // Year = "2012"

För att konvertera ett tal till en sträng utan att infoga ett gruppseparatortecken (icke-avbrytande mellanslag), måste du använda funktionen Format med parametern ChG = 0:

Number = 2012 String = Format (Nummer, "CHG = 0"); // String = "2012"

Sträng Inga mellanslag.

Anteckningar från Looking Glass

2014-08-18 Nya funktioner för att arbeta med strängar

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. De nya funktionerna kommer att vara bekväma och användbara i tekniska uppgifter för textanalys. I uppgifter relaterade till att tolka text som innehåller formaterad data. Detta kan vara analysen av vissa filer som tas emot från utrustningen, eller till exempel analysen av en teknisk logg.

Alla åtgärder som utför nya funktioner 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 de nya funktionerna inga i grunden nya möjligheter. Däremot kan de minska mängden kod, göra koden enklare och lättare att förstå. Och förutom det låter de dig påskynda utförandet av åtgärder. Eftersom funktionerna som implementeras i plattformen fungerar, naturligtvis, snabbare än en liknande algoritm skriven på ett inbäddat språk.

Formateringsfunktion StrPattern ()

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:

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

<Шаблон>är en sträng för att ersätta parameterrepresentationer.

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

För att ange en specifik plats i mallen där du vill utföra substitution, måste du använda tokens av formen% 1, ...% 10. Antalet markörer som används i mallen och antalet parametrar som innehåller värden måste vara detsamma.

Till exempel resultatet av att köra ett sådant uttalande:

det kommer att finnas en rad:

Datafel på rad 2 (datumtyp krävs)

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

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

Du kunde ha utfört samma åtgärd innan du använde objektet Jämförelse av värden:

Men att använda den nya funktionen ser enklare ut. Och förutom detta, en funktion, till skillnad från ett objekt Jämförelse av värden, fungerar i både den tunna klienten och webbklienten.

Funktioner för att arbeta med strängar RowStart With (), RREend With ()

Dessa funktioner avgör om en sträng börjar med en specificerad delsträng eller slutar med en specificerad delsträng. Algoritmen för dessa funktioner är inte svår att implementera i det inbäddade språket, men deras närvaro låter dig skriva renare och mer begriplig kod. Och de jobbar snabbare.

Till exempel är det bekvämt att använda dem i operatören Om:

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

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, tekniska loggar. Till exempel kan du enkelt demontera ett register över en teknisk logg 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 funktionen Hitta() vi har implementerat en ny funktion som har ytterligare funktioner:

  • Sök i olika riktningar (från början, från slutet);
  • Sök från en angiven position;
  • Sök efter en förekomst med det angivna numret (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. Gammal funktion Hitta() det rekommenderas att inte använda det igen.

Nedan är ett exempel med de nya sökfunktionerna. Bakåtsökningar är användbara när du behöver den sista biten av en formaliserad sträng, till exempel det fullständiga filnamnet i en URL. Och att söka från en angiven position hjälper i de fall du behöver söka i ett känt fragment, och inte i hela strängen.

Det finns få mekanismer för att arbeta med strängar i 1C-frågor. Först kan raderna läggas till. För det andra kan du ta en delsträng från en sträng. För det tredje kan strängar jämföras, inklusive efter mönster. Det är förmodligen allt du kan göra med strängar.

Sammanfogning av strängar

För att lägga till strängar i en fråga används operationen "+". Endast linjer med begränsad längd kan vikas.

VÄLJ "Namn:" + Motparter. Namn AS Kolumn1 FRÅN Katalog. Motparter AS Motparter WHERE Motparter. Länk = & Länk

Delsträngsfunktion

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

Analog av funktionen Environment () från objektmodellen. Funktionen Substring () kan tillämpas på data av en strängtyp och låter dig välja ett fragment <Строки> börjar med teckennumret <НачальнаяПозиция> (tecken i strängen är numrerade från 1) och längd <Длина> tecken. Resultatet av att utvärdera funktionen har en strängtyp med variabel längd, och längden kommer att anses vara obegränsad om <Строка> har obegränsad längd och parameter <Длина> är inte konstant eller överstiger 1024.

Om längden på strängen är mindre än den som anges i den andra parametern, kommer funktionen att returnera en tom sträng.

Uppmärksamhet! Att använda funktionen SUBSTRING () för att konvertera strängar med obegränsad längd till strängar med begränsad längd rekommenderas inte. Det är bättre att använda en gjutning som EXPRESS () istället.

Funktion som

Om vi ​​behöver försäkra oss om att ett strängattribut uppfyller vissa kriterier jämför vi det:

VÄLJ Motparter Namn AS Kolumn 1 FRÅN Katalog Motparter AS Motparter WHERE Motparter Namn = "Gazprom"

Men vad händer om du vill ha en knepigare jämförelse? Inte bara jämlikhet eller ojämlikhet, utan som ett visst mönster? Det är precis vad funktionen LIKE är skapad för.

LIKE - Operator för att kontrollera en sträng som ett mönster. Analog av LIKE i SQL.

LIKE-operatorn låter dig jämföra värdet på uttrycket som anges till vänster om det med mallsträngen som anges till höger. Uttrycksvärdet måste vara av typen string. Om uttrycksvärdet matchar mönstret kommer operatorn att resultera i TRUE, annars - FALSE.

Följande tecken i mallsträngen är servicetecken och har en annan betydelse än strängtecknet:

  • % (procent): en sekvens som innehåller valfritt antal godtyckliga tecken;
  • _ (understreck): ett godtyckligt tecken;
  • […] (Ett eller flera tecken inom hakparenteser): vilket enstaka tecken som helst inom hakparenteser. Uppräkningen kan innehålla intervall, till exempel a-z, vilket betyder ett godtyckligt tecken som ingår i intervallet, inklusive ändarna av intervallet;
  • [^...] (Inom hakparenteser ett negationstecken följt av ett eller flera tecken): vilket enstaka tecken som helst förutom de som anges efter negationstecken.

Varje annan symbol betyder sig själv och har ingen ytterligare betydelse. Om det är nödvändigt att skriva ett av de listade tecknen som sig själv, måste det föregås av<Спецсимвол>... Jag själv<Спецсимвол>(vilket lämpligt tecken som helst) definieras i samma sats efter nyckelordet SPECIAL CHARACTER.

Strängar i 1C 8.3 i det inbyggda språket 1c representerar värden av en primitiv typ Linje... Värden av denna typ innehåller en Unicode-sträng med 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 1c 8.3

I det här avsnittet kommer huvudfunktionerna att ges som gör att du kan ändra raderna i 1c eller analysera informationen i dem.

Str Längd

Stränglä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ärld!"; Antal tecken = StrLength (String); Rapport (antal tecken);

Resultatet av att exekvera denna kod blir visningen av antalet tecken i strängen: 11.

Förkortning

AbbrL (<Строка>) ... Trunkerar obetydliga tecken till vänster om det första signifikanta tecknet i strängen.
Mindre 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 raden "värld!" och fäst strängen "Hej" till den.

String = förkortat ("fred!"); String = "Hej" + String; Rapport (sträng);

Resultatet av exekveringen av den här koden kommer att vara resultatet av raden "Hello world!"

Förkortning

Förkortning (<Строка>) ... Trunkerar obetydliga tecken till höger om det första signifikanta tecknet i strängen.

Exempel 4. Form "Hej" och "Världen!" frasen "Hej världen!"

String = förkortat ("Hej") + "" + förkortat ("världen!"); Rapport (sträng);

SokrLP

SocrLP (<Строка>) ... Trunkerar obetydliga tecken till höger om det första signifikanta tecknet i en sträng och klipper även bort obetydliga tecken till vänster om det första signifikanta tecknet i en sträng. 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.

Motpart = Directorys.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = SokrLP (CounterpartyObject.Name); CounterpartyObject.Write ();

ett lejon

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

Exempel 6. Släpp in strukturen Anställd innehålla den anställdes namn, efternamn och patronym. Skaffa en sträng med efternamn och initialer.

InitialName = Leo (Employee.Name, 1); Patronymic Initial = Leo (Anställd, Patronymic, 1); FullName = Employee.LastName + "" + InitialName + "." + Initial av Patronymic + ".";

Höger

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. Antag att slutet av en strängvariabel innehåller ett datum i formatet "ååååmmdd", hämta en sträng med ett datum och konvertera den till typen datum.

String = "Aktuellt datum: 20170910"; StringDate = Right (String, 8); Datum = Datum (StringDate);

onsdag

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

Exempel 8. Anta att strängvariabeln som börjar från den nionde positionen innehåller regionkoden, du ska hämta den och skriva den på en separat rad.

Line = "Region: 99 Moskva"; Region = Ons (Linje, 9, 2);

Sök

Hitta (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... 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;
  • Delsträng... Delsträngen som ska sökas efter;
  • Sökriktning... Anger riktningen för att söka efter en delsträng i en sträng. Kan ta värden:
    • Sökriktning. Från start;
    • Sökriktning.;
  • Första position... Anger positionen i strängen från vilken sökningen börjar;
  • Antal poster... Anger antalet förekomster av den önskade delsträngen i den ursprungliga strängen.

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

PositionNumber = StrNayti ("Hej värld!", "Och", DirectionSearch.End); Rapport (Positionsnummer);

Resultatet av att exekvera denna kod kommer att visa numret för den senaste förekomsten av symbolen "och": 9.

VReg

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

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

StringBreg = BReg ("hej värld!"); Rapport (StringVreg);

Resultatet av att exekvera denna kod kommer att visa raden "HELLO WORLD!"

Nreg

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

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

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

Resultatet av exekveringen av den här koden kommer att bli resultatet av raden "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. Använd versaler i de första bokstäverna i orden i strängen "hej värld!"

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

Resultatet av exekveringen av denna kod kommer att vara utdata på skärmen på raden "Hello World!"

Symbol

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

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

StringWithStars = Symbol ("9733") + "Hello World!" + Symbol ("9733"); Rapport (StringWithStars);

Resultatet av att exekvera denna kod kommer att visa raden "★ 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 "Hello World!"

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

Resultatet av exekveringen av denna kod kommer att vara visningen av symbolkoden "!" - 33.

Tom linje

Tom rad(<Строка>) ... Kontrollerar om en sträng bara innehåller obetydliga tecken, det vill säga om den är tom.

Exempel 15. Kontrollera om en sträng som består av tre blanksteg är tom.

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

Resultatet av exekveringen av denna kod kommer att vara visningen av ordet "Ja" (stränguttryck för det logiska värdet Sann).

PageReplace

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

Exempel 16. I raden "Hello World!" ersätt ordet "Fred" med ordet "Vänner".

String = StrReplace ("Hello World!", "World", "Vänner"); Rapport (sträng);

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

StrNumberStrings

StrNumber of Lines (<Строка>) ... Räknar antalet rader i en flerradssträng. För att flytta till en ny rad i 1s 8, använd tecknet PS(radmatningstecken).

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

Number = StrNumberStrings ("Första raden" + Symboler.PS + "Andra raden" + Symboler.PS + "Tredje raden"); Rapport (nummer);

Resultatet av att exekvera 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 vid 1.

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

Text = "Första raden" + Symboler.PS + "Andra raden" + Symboler.PS + "Tredje raden"; LastRow = StrGetString (Text, StrNumberLines (Text)); Rapport (Last Line);

Resultatet av exekveringen av denna kod kommer att visa raden "Tredje raden".

StrAntal förekomster

StrAntal förekomster (<Строка>, <ПодстрокаПоиска>) ... 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" förekommer på raden "Linjer i 1s 8.3 och 8.2", oavsett skiftläge.

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

Resultatet av att exekvera den här koden blir visningen av antalet förekomster: 2.

Sidan börjar med

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

Exempel 20. Bestäm om INN för den valda motparten börjar med siffran 1. Sätt in variabeln Motpart Entreprenörer.

TIN = Motpart.INN; Starts withUnits = StrStarts with (INN, "1"); If BeginsUnits Then // Din kod EndIf;

Sidan slutar med

Sidan slutar med (<Строка>, <СтрокаПоиска>) ... 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. Sätt in variabeln Motpart en länk till ett katalogobjekt lagras Entreprenörer.

TIN = Motpart.INN; Slutar med två = Str slutar med (INN, "2"); If Ends WithDouble Then // Din kod EndIf;

Siddelning

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... 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 lagrar den ursprungliga strängen, den andra innehåller strängen som innehåller separatorn, den tredje anger om tomma strängar ska skrivas till arrayen (som standard Sann).

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

String = "1; 2; 3"; Array = StrSplit (String, ";"); För Rd = 0 Efter Array.Quantity () - 1 Cykelförsök Array [Rd] = Antal (AbbrLP (Array [Rd])); Exception Array [Сч] = 0; Slut på försök Slut på loop;

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, åtskilda 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.

För Rd = 0 Efter Array.Quantity () - 1 Cykel Array [Rd] = Sträng (Array [Rd]); Slut på cykeln; String = StrConnect (Array, ";");

Typen "String" 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 kommer vi att titta närmare på olika sätt att arbeta med strängtyper i 1C 8.3 och 8.2 med hjälp av exempel.

Linje

För att konvertera en variabel av vilken typ som helst till en sträng finns det en funktion med samma namn "String ()". 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 ()) // 07/21/2017 11:55:36 ″

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

SocrLP, SocrL, SocrP

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

AbbrLP ("mellanslag på båda sidor kommer att tas bort") // "mellanslag på båda sidor kommer att tas bort"
Förkortat ("mellanslag på båda sidor kommer att tas bort") // "mellanslag till vänster kommer att tas bort"
Förkortning ("mellanslag på båda sidor kommer att tas bort") // "mellanslag till höger kommer att tas bort"

Leo, höger, onsdag

Dessa funktioner låter dig trimma en del av en sträng. Funktionen "Lion ()" kommer att returnera delen av strängen från dess vänstra sida av den angivna längden. Funktionen "Höger ()" är densamma, men beskärningen görs till höger. Funktionen "Avg ()" låter dig ange numret på tecknet från vilket strängen ska väljas och dess längd.

Lion ("Strängvariabel", 4) // returnerar "Stro"
Höger ("Strängvariabel", 7) // returnerar "variabel"
Wed ("Strängvariabel", 2, 5) // returnerar "troco"

Str Längd

Funktionen bestämmer antalet tecken som finns i strängvariabeln.

StrLength ("Word") // exekveringsresultat kommer att vara nummer 5

Hitta

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

Observera att sökningar är skiftlägeskänsliga. Om den ursprungliga strängen innehåller mer än en förekomst av sökundersträngen, returnerar funktionen början av den första förekomsten.

Hitta ("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 blanksteg, vagnretur och andra ignoreras.

EmptyString ("Pupkin Vasily Ivanovich") // funktionen returnerar värdet False
EmptyString ("") //-funktionen returnerar True

VReg, NReg, Treg

Dessa funktioner är mycket användbara för att jämföra och konvertera strängvariabler. Breg () kommer att returnera den ursprungliga strängen med versaler, HPreg () med gemener, och TPreg () kommer att formatera den så att det första tecknet i varje enskilt ord kommer att skrivas med versaler och alla efterföljande blir gemener.

Vreg ("GENERAL DIRECTOR") // returvärde - "GENERAL DIRECTOR"
НReg ("GENERAL DIRECTOR") // returvärde - "general director"
TREG ("GENERAL DIRECTOR") // returvärde - "General Director"

PageReplace

Denna funktion är analog med ersättning 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"

StrNumberStrings

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

Slingan i exemplet nedan kommer att gå genom tre cirklar eftersom funktionen RowNumber of Rows returnerar värdet 3:

För ind = 1 av StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Loop
<тело цикла>
Slut på cykeln;

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) // kommer att returnera "String2"

StrAntal förekomster

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

Rad med bilagor ("a; b; c; d;", ​​​​";") // funktionen returnerar siffran 4

Symbol och symbolkod

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

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

Frekventa uppgifter när du arbetar med strängar

Sammanfogande strängar

För att sammanfoga flera strängar (för att utföra sammanlänkning) är det tillräckligt att använda additionsoperatorn.

"Linje 1 ″ +" Rad 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 ordboksobjekt, ett nummer, etc., räcker det med att använda funktionen "String ()". Funktioner som "Abbreviation ()" kommer också att konvertera variabler till en sträng, men omedelbart med trunkering av 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 tusental. För att undvika detta kan du använda följande konstruktioner:

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

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

Citat i en sträng

Ganska ofta kommer du att behöva hantera behovet av att ange 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 sätta två citattecken.

Titel = String ("Horns and Hooves LLC" - det är vi! ") // returnerar" Horns and Hooves LLC - det är vi!"

Flera rader, radbrytning

För att skapa flerradstext räcker det att lägga till radbrytningstecken (Symbols.PS) till den.

MultilineText = "Första raden" + Symboler.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 "Förkortning ()" (liksom "Förkortning ()" och "Förkortning ()"):

StringNoSpaces = AbbreviatedLP ("Många bokstäver") // funktionen returnerar värdet "Många bokstäver"

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

StringNoSpaces = 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:

StringNoSpaces = StrReplace ("välkommen", "", "") // returnerar "hej"

Jämför strängar med varandra

Termerna kan jämföras 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