Nya funktioner för att arbeta med strängar. Nya funktioner för att arbeta med strängar Arbeta med en sträng i 1c

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 skär ä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 på raden börjar från 1. Om i 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. Antag 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, ";");

De grundläggande funktionerna i ett programmeringsspråk inkluderar vanligtvis att arbeta med siffror och strängar. Vanligtvis är dessa funktioner hårdkodade i kompilatorkoden (eller så är "bas"-klasserna för programmeringsspråket implementerade).

I 1C är möjligheten att arbeta med strängar programmerad i själva plattformen. Idag kommer vi att överväga funktionerna i att arbeta med 1C-strängar i program i det inbyggda 1C-språket.

Värdet på linje 1C

1. Låt oss börja med det enklaste. Att skapa en variabel och tilldela ett konstant strängvärde till den ser ut så här i 1C:

Variabel = "Hej värld!";

Om du behöver ange ett citattecken i ett konstant strängvärde 1C, måste du dubbla det ""

Variable = "Hej", "världen" "!";

2. Linjebrytning 1C kan anges på två sätt samtidigt. Den första använder symbolen |

Variabel = "Hej,
| fred! ";

Den andra är att använda symbolsystemets uppräkning. Det låter dig lägga till både 1C-radbrytningar och andra tecken som inte kan skrivas ut, som TAB.

Variabel = "Hej" + Symboler.PS + "värld!";

3. Konfigurationer i 1C kan utvecklas inte bara för ett språk (ryska, engelska eller ett annat) - utan samtidigt för flera språk. I det här fallet väljs det språk som för närvarande används längst ned i 1C-fönstret.

Listan över språk finns i konfigurationsfönstret i grenen Allmänt / Språk. Varje språk har en kort identifierare som t.ex ru eller eng.

Det är tydligt att när man programmerar en sådan konfiguration kan 1C-linjer också vara flerspråkiga. För att göra detta är det möjligt att skapa en sådan 1C-linje genom att specificera genom; alternativ efter språkidentifierare:

Variable = "ru =" "Hej, värld!" "; En =" "Hej, värld!" "";

Om du använder 1C-linjen som bildas på detta sätt som vanligt, kommer det att vara det som står i den. För att systemet ska dela upp det i två alternativ och använda det önskade, måste du använda HStr ()-funktionen:

// korrigera för tvåspråkiga konfigurationer
Rapport (НStr (Variabel));

Rekvisita med lintyp 1C

Ett krav är ett 1C-referens-/dokumentfält. Den skiljer sig från en variabel i ett 1C-program genom att dess typ (nummer, 1C-sträng, etc.) är exakt indikerad för ett attribut. Om du behöver fräscha upp vad rekvisita är - se lektionen om.

Om du anger typen av attribut - rad 1C, måste du dessutom ange parametrarna.

1C-strängar är av obegränsad längd (specificerad som längd = 0) och begränsad längd, vilket anger det exakta antalet tecken. 1C-rader med obegränsad längd lagras i en separat SQL-tabell, så deras användning är mindre produktiv än begränsad.

Det är därför användningen av 1C-strängar med obegränsad längd har sina egna begränsningar - det är inte möjligt att använda dem överallt. Det kan till exempel inte användas som dokumentnummer, katalogkod, dimension.

Arbeta med 1C-strängar

Det finns flera inbyggda funktioner i 1C-plattformen för att arbeta med strängar.

  • SocrLP ("Otroligt, men sant!")
    Tar bort extra mellanslag från rad 1C. Den kan också användas för att konvertera alla typer till 1C-strängar (till exempel siffror).
  • Variabel = "Vasya" + SokrLP ("plus") + "Olya"; // kommer att vara "Vasya plus Olya"
    Ett exempel på summering av flera 1C-strängvärden. Resultatet blir en rad med 1C.
  • Variabel = Leo ("Musik", 2); // kommer att vara "Mu"
    Variabel = onsdag ("Musik", 2, 2); // kommer att vara "shl"
    Variabel = Höger ("Musik", 2); // kommer att vara "ka"
    Olika alternativ för att erhålla en delsträng från en 1C-sträng.
  • Variabel = Sök ("Musik", "Shl"); // blir 3
    Sök efter en delsträng i sträng 1C, med början från tecken 1.
  • Variabel = StrLength ("Musik"); // blir 6
    Returnerar antalet tecken i rad 1C.
  • Rapportera ("Hej") // i meddelandefönstret längst ner i 1C-fönstret
    Varning ("Hej") // popup-dialogruta
    Ange ("Hej") // i statusraden längst ner till vänster
    .

Gjuta föremål till linje 1C

Som ni vet är det mest populära formatet för utbyte av strukturerad information för närvarande XML. Även den senaste versionen av MS Office Word och Excel sparar filer i detta format (docx respektive xlsx, ändra tillägget till zip, öppna i arkivet).

1C-plattformen för datautbyte ger flera alternativ, varav den främsta är XML.

1. Den enklaste metoden är att använda funktionen Förkortning () eller String (). I frågetexten kan du använda funktionen REPRESENTATION () . Resultatet av deras åtgärd är detsamma - de genererar en strängrepresentation av vilket 1C-objekt som helst för användaren.

För en uppslagsbok kommer detta att vara dess namn som standard. För ett dokument - dokumentets namn, nummer och datum.

2. Alla 1C-objekt (med begränsningar) kan konverteras till XML och vice versa. Konverteringsprocessen kallas serialisering.

ViewStringXml = XMLString (Value); // hämta XML från 1C-värde
Value1C = XMLValue (Typ ("ReferenceLink.Nomenclature"), ViewStringXml); // hämta 1C-värdet från XML-strängen, du måste ange vilken 1C-typ som ska tas emot

3. Det finns ett sätt för 1C-plattformen att konvertera vilket 1C-objekt som helst till en sträng. Han migrerade från version 1C 7.7. Detta format förstås inte av andra program, men det förstås av en annan 1C, vilket gör det enkelt att använda det för utbyte mellan 1C-baser.

String = ValueVSStringInter (Value1C); // få rad 1C från värde 1C
ValueVFile ("C: \ MyFile.txt", Value1C); // ett annat alternativ, vi får en fil med en sparad sträng från 1C-värdet
Value1C = ValueFromStringInternal (String); // tillbaka från rad 1C
Value1C = ValueOfFile ("C: \ MyFile.txt"); // tillbaka från filen

Redigera 1C-rader på formuläret

Förutom att arbeta med 1C-strängar i ett 1C-program vill jag såklart att användaren ska kunna redigera dem. Det finns flera möjligheter för detta:

1. Det enklaste sättet är att begära inmatning av 1C-linjen på begäran. Denna metod används vid undervisning i 1C-programmering, i verkligheten används den mycket mindre ofta (men den används!).

Variabel = "";
String = EnterValue (Variabel, "Ange ditt fullständiga namn");

2. För att visa attributet för 1C-objektet (referensbok / dokument) eller formulärets attribut (se), används oftast inmatningsfältet. Detta är det vanligaste verktyget i 1C för användararbete med redigeringsfält.

3. Möjligheterna för inmatningsfältet kan utökas (se egenskaperna för inmatningsfältet, högerklicka på det, för mer information):

  • Markera Flerrads redigeringsläge
  • Kryssruta Avancerad redigering (tillgänglig om föregående kryssruta är markerad)
  • Kryssruta Lösenordsläge (se).

4. Om alla möjligheter i inmatningsfältet inte räcker för dig finns det en inbyggd editor. För att lägga till det i formuläret måste du lägga till ett textdokumentfält i menyn Formulär / Infoga kontroll. I dess egenskaper kan du ange läget för dess funktion - egenskapen Extension.

Ett textdokumentfält kan inte kopplas direkt till data. Det är nödvändigt att skriva en funktion i OnOpening () händelsehanteraren i formuläret (se):

FormElements.ElementNameTextDocumentField.SetText (ValueString); // här är ValueString texten som till exempel erhålls från rekvisita

Och i sparahanteraren - till exempel i knappen Spara - lägg till en spara:

ValueString = FormElements.ElementNameTextDocumentField.GetText (); // ValueSträngen här är rekvisita där vi lagrar värdet

5. I 1C version 8.2.11, i hanterade formulär, finns det en ny möjlighet att representera 1C-raden - fältet Formaterat dokument.


I likhet med fältet för ett textdokument är det nödvändigt att ställa in när du öppnar och skriver när du sparar texten själv med hjälp av programmet.

  • I 1C-objektet, vars form vi gör (referensbok, dokument, bearbetning, etc.) - lägg till ett attribut med typen Storage
  • I funktionen ReadOnServer () ställer du in texten från rekvisita

    // här är Props den tillagda egenskapen för 1C-objektet
    // här FormattedDocument är namnet på fältet i formuläret som ska redigeras
    &På server

    FormattedDocument = CurrentObject.Props.Get ();
    Slut på procedur

  • I funktionen BeforeWriteOnServer () eller med knappen, skriv texten från fältet

    &På server
    Procedur för ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument);
    Slut på procedur

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 Kolumn1 FRÅN Katalog. Motparter AS Motparter VAR 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.

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

Dela detta