1c zadanie podreťazca do reťazca. Nové funkcie pre prácu so strunami

Typ "String" sa nachádza vo všetkých programovacích jazykoch. Je to primitívne a v 1C existuje mnoho funkcií na prácu s ním. V tomto článku sa na to pozrieme bližšie rôzne cesty práca s typmi reťazcov v 1C 8.3 a 8.2 na príkladoch.

Riadok

Aby bolo možné premennú akéhokoľvek druhu previesť na reťazec, existuje funkcia s rovnakým názvom „String ()“. Vstupným parametrom bude samotná premenná, ktorej reťazcové zobrazenie sa má získať.

Reťazec (False) // vráti „nie“
Reťazec (12345) // vráti „12 345“
Reťazec (CurrentDate ()) // 21. 7. 2017 11:55:36 ″

Na reťazec je možné previesť nielen primitívne typy, ale aj ďalšie, napríklad prvky príručiek, dokumentov.

SocrLP, SocrL, SocrP

Vstupnými parametrami týchto funkcií je premenná typu reťazca. Funkcie odstraňujú nepodstatné znaky (medzery, návraty vozíka a ďalšie): z ľavej a pravej strany, iba z ľavej strany, respektíve iba z pravej strany.

AbbrLP („Medzery na oboch stranách budú odstránené“) // „Medzery na oboch stranách budú odstránené“
Skrátené („Medzery na oboch stranách budú odstránené“) // „Medzery na ľavej strane budú odstránené“
Skratka („Medzery na oboch stranách budú odstránené“) // „Medzery napravo budú odstránené“

Leo, v stredu

Tieto funkcie vám umožňujú orezať časť reťazca. Funkcia "Lion ()" vráti časť reťazca z ľavej strany určenej dĺžky. Funkcia "Right ()" je rovnaká, ale orezanie sa vykonáva vpravo. Funkcia "Med ()" vám umožňuje určiť číslo znaku, z ktorého bude reťazec vybraný, a jeho dĺžku.

Lion („Reťazcová premenná“, 4) // vráti „Stro“
Vpravo („Reťazcová premenná“, 7) // vráti „premennú“
Streda ("Reťazcová premenná", 2, 5) // vráti "troco"

Dĺžka popruhu

Funkcia určuje počet znakov, ktoré sú obsiahnuté v reťazcovej premennej.

StrLength ("Word") // výsledok vykonania bude číslo 5

Nájsť

Funkcia umožňuje vyhľadať časť reťazca v akejkoľvek reťazcovej premennej. Návratovou hodnotou bude číslo, ktoré ukazuje pozíciu začiatku nájdeného reťazca. Ak sa nenájde žiadna zhoda, vráti sa nula.

Upozorňujeme, že vo vyhľadávaniach sa rozlišujú malé a veľké písmena. Ak pôvodný reťazec obsahuje viac ako jeden výskyt podreťazca vyhľadávania, funkcia vráti začiatok prvého výskytu.

Nájdite („jeden, dva, jeden, dva, tri“, „dva“) // funkcia vráti číslo 6

Prázdny riadok

Použitie tejto funkcie vám umožňuje určiť, či je reťazec prázdny. Nepodstatné znaky, akými sú medzera, návrat na vozík a ďalšie, sa ignorujú.

EmptyString ("Pupkin Vasily Ivanovich") // funkcia vráti hodnotu False
Funkcia EmptyString ("") // vráti hodnotu True

VReg, NReg, Treg

Tieto funkcie sú veľmi užitočné pri porovnávaní a prevode reťazcových premenných. Breg () vráti pôvodný reťazec na veľké písmená, HPreg () na malé písmená a TPreg () ho naformátuje tak, že prvý znak každého jednotlivého slova bude veľký a všetky nasledujúce budú malé.

Vreg ("GENERAL DIRECTOR") // návratová hodnota - "GENERAL DIRECTOR"
НReg („GENERAL DIRECTOR“) // návratová hodnota - „generálny riaditeľ“
TREG („GENERAL DIRECTOR“) // návratová hodnota - „generálny riaditeľ“

PageReplace

Táto funkcia je analogické s náhradou v textové editory... Umožňuje vám nahradiť jeden znak alebo sadu znakov iným v reťazcových premenných.

StrReplace ("červená, biela, žltá", ",", ";") // vráti "červenú; Biely; žltá"

StrNumberStrings

Táto funkcia vám umožňuje určiť počet riadkov oddelených návratmi vozíka v textovej premennej.

Smyčka v nižšie uvedenom príklade prejde tromi kruhmi, pretože funkcia RowNumber vráti 3:

Pre ind = 1 podľa StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Loop
<тело цикла>
Koniec cyklu;

StrGetString

Táto funkcia pracuje s viacriadkovým textom rovnako ako predchádzajúci. Umožňuje vám získať konkrétny reťazec z textovej premennej.

StrGetString ("String1" + symboly.PS + "String2" + symboly.PS + "String3", 2) // vráti "String2"

StrPočet výskytov

Funkcia počíta počet výskytov znaku alebo podreťazca vo vyhľadávacom reťazci.

Riadok príloh ("a; b; c; d;", ​​";") // funkcia vráti číslo 4

Symbol a kód symbolu

Tieto funkcie vám umožňujú získať znak podľa jeho kódu Unicode, ako aj určiť tento kód podľa samotného znaku.

SymbolCode ("A") // funkcia vráti číslo 1 040
SymbolCode (1040) // funkcia vráti „A“

Časté úlohy pri práci so strunami

Reťaziace reťazce

Na zreťazenie viacerých reťazcov (na vykonanie zreťazenia) stačí použiť operátor sčítania.

„Riadok 1 ″ +“ Riadok 2 ″ // výsledkom pridania dvoch riadkov bude „Riadok 1 Riadok 2“

Konverzia typu

Na prevod typu na reťazec, napríklad odkazu na položku slovníka, čísla a podobne, stačí použiť funkciu „String ()“. Funkcie ako „Skratka ()“ tiež premenia premenné na reťazec, ale okamžite so skrátením nepodstatných znakov.

Reťazec (1000) // vráti „1000“

Upozorňujeme, že pri prevode čísla na reťazec program automaticky pridal medzeru oddeľujúcu tisíc. Aby ste tomu zabránili, môžete použiť nasledujúce konštrukcie:

StrReplace (String (1000), Characters.NPP, "") // vráti "1000"

Reťazec (formát (1000, "CHG =")) // vráti "1000"

Citáty v reťazci

Pomerne často sa budete musieť vysporiadať s potrebou zadať úvodzovky v reťazcovej premennej. Môže to byť buď text požiadavky napísaný v konfigurátore, alebo len premenná. Na vyriešenie tohto problému stačí nastaviť dve úvodzovky.

Title = String ("LLC" Rohy a kopytá "" - to sme my! ") // vráti" LLC "Rohy a kopytá" - to sme my! "

Viac riadkov, zlom riadka

Aby ste vytvorili viacriadkový text, stačí doň pridať znaky zalomenia riadka (Symbols.PS).

MultilineText = "Prvý riadok" + Symboly. PS + "Druhý riadok"

Ako odstrániť medzery

Na odstránenie medzier napravo alebo naľavo môžete použiť funkciu „Skratka ()“ (ako aj „Skratka ()“ a „Skratka ()“):

StringNoSpaces = AbbreviatedLP ("Mnoho písmen") // funkcia vráti hodnotu "Mnoho písmen"

Ak po konverzii čísla na reťazec potrebujete odstrániť medzery, použite nasledujúcu konštrukciu:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // vráti "99999"

Programátori tiež často používajú nasledujúcu konštrukciu, ktorá vám umožňuje odstrániť alebo nahradiť všetky medzery textovej premennej iným znakom:

StringNoSpaces = StrReplace ("vitajte", "", "") // vráti "ahoj"

Porovnávanie reťazcov navzájom

Termíny je možné porovnať s obvyklým znamienkom rovnosti. Porovnanie rozlišuje veľké a malé písmena.

"Hello" = "ahoj" // vráti hodnotu False
"Hello" = "Hello" // vráti True
"Hello" = "Zbohom" // vráti hodnotu False

Poznámky z zrkadla

18. 8. 2014 Nové funkcie pre prácu so reťazcami

Implementované vo verzii 8.3.6.1977.

Rozšírili sme sadu funkcií pre prácu so reťazcami. Urobili sme to, aby sme vám poskytli pokročilejšie nástroje na analýzu údajov reťazca. Nové funkcie budú praktické a užitočné v technologických úlohách analýzy textu. V úlohách spojených s analýzou textu, ktorý obsahuje formátované údaje. Môže to byť analýza niektorých súborov prijatých zo zariadenia alebo napríklad analýza technologického protokolu.

Všetky akcie, ktoré vykonávajú nové funkcie, ste mohli vykonať aj predtým. S pomocou viac či menej zložitých algoritmov napísaných vo vstavanom jazyku. Nové funkcie vám preto nedávajú žiadne zásadne nové možnosti. Umožňujú však znížiť množstvo kódu, zjednodušiť ho a porozumieť mu. A okrem toho vám umožňujú urýchliť vykonávanie akcií. Pretože funkcie implementované na platforme sú samozrejme rýchlejšie ako podobný algoritmus napísaný vo vstavanom jazyku.

Funkcia formátovania PpTemplate ()

Táto funkcia nahradí parametre v reťazci. Potreba takejto konverzie často vzniká napríklad pri zobrazovaní varovných správ. Syntax tejto funkcie je nasledovná:

Šablóna stránky (<Шаблон>, <Значение1-Значение10>)

<Шаблон>je reťazec, ktorý má nahradiť reprezentácie parametrov.

<Значение1> , ... <Значение10>- to sú parametre (maximálne - desať), ktorých reprezentácie je potrebné nahradiť reťazcom.

Na označenie konkrétneho miesta v šablóne, kde chcete vykonať substitúciu, musíte použiť tokeny tvaru% 1, ...% 10. Počet markerov použitých v šablóne a počet parametrov obsahujúcich hodnoty musia byť rovnaké.

Výsledok vykonania takéhoto vyhlásenia je napríklad:

bude tam riadok:

Chyba údajov v riadku 2 (vyžaduje sa typ dátumu)

Funkcia pre prácu so strunami StrCompare ()

Táto funkcia porovnáva dva reťazce spôsobom, ktorý nerozlišuje malé a veľké písmená. Napríklad takto:

Rovnakú akciu ste mohli vykonať aj pred použitím objektu Porovnanie hodnôt:

Používanie novej funkcie však vyzerá jednoduchšie. A okrem toho funkcia, na rozdiel od objektu Porovnanie hodnôt, pracuje v tenký klient, a vo webovom klientovi.

Funkcie pre prácu so reťazcami RowStart With (), RREnd With ()

Tieto funkcie určujú, či reťazec začína zadaným podreťazcom alebo končí zadaným podreťazcom. Algoritmus týchto funkcií nie je ťažké implementovať do vstavaného jazyka, ale ich prítomnosť vám umožňuje písať čistejší a zrozumiteľnejší kód. A fungujú rýchlejšie.

Napríklad je vhodné ich použiť v operátorovi Ak:

Funkcie pre prácu so strunami StrSplit (), StrConnect ()

Tieto funkcie rozdeľujú reťazec na časti podľa zadaného oddeľovača. Alebo naopak, spoja niekoľko riadkov do jedného a vložia medzi ne vybraný oddeľovač. Sú vhodné na vytváranie alebo analýzu protokolov, technologických protokolov. Záznam technologického protokolu môžete napríklad jednoducho rozložiť na časti vhodné na ďalšiu analýzu:

Funkcia pre prácu so strunami StrFind ()

Namiesto starej funkcie Nájsť() sme implementovali nová funkcia, ktorý má ďalšie funkcie:

  • Hľadajte v rôznych smeroch (od začiatku, od konca);
  • Vyhľadávanie z určenej polohy;
  • Vyhľadajte výskyt s uvedeným číslom (druhý, tretí atď.).

V skutočnosti duplikuje možnosti starej funkcie. Deje sa to kvôli zachovaniu kompatibility s modulmi zostavenými v starších verziách. Stará funkcia Nájsť() odporúča sa znova ho nepoužívať.

Nasleduje príklad použitia nových možností vyhľadávania. Spätné vyhľadávanie je užitočné vtedy, keď potrebujete poslednú časť formalizovaného reťazca, napríklad úplný názov súboru v adrese URL. A vyhľadávanie zo zadanej pozície pomáha v tých prípadoch, keď potrebujete hľadať v známom fragmente, a nie v celom reťazci.

Medzi základné schopnosti programovacieho jazyka zvyčajne patrí práca s číslami a reťazcami. Obvykle sú tieto funkcie napevno zakódované do kódu kompilátora (alebo sú implementované „základné“ triedy programovacieho jazyka).

V 1C je schopnosť pracovať so reťazcami naprogramovaná v samotnej platforme. Dnes zvážime vlastnosti práce s reťazcami 1C v programoch vo vstavanom jazyku 1C.

Hodnota riadka 1C

1. Začnime tým najjednoduchším. Vytvorenie premennej a priradenie konštantnej reťazcovej hodnoty k nej vyzerá v 1C takto:

Premenná = „Ahoj svet!“;

Ak potrebujete zadať úvodzovku v konštantnej hodnote reťazca 1C, musíte ju "" zdvojnásobiť

Premenná = „Dobrý deň“, „svet“ „!“;

2. Prerušenie riadka 1C je možné zadať dvoma spôsobmi naraz. Prvý používa symbol |

Premenná = „Dobrý deň,
| mier! ";

Druhým je použitie enumerácie systému Symboly. Umožňuje vám pridať konce riadkov 1C a ďalšie netlačiteľné znaky, napríklad TAB.

Premenná = "Ahoj" + symboly.PS + "svet!";

3. Konfigurácie v 1C je možné vyvinúť nielen pre jeden jazyk (ruský, anglický alebo iný) - ale súčasne pre niekoľko jazykov. V tomto prípade je v spodnej časti okna 1C vybratý aktuálne používaný jazyk.

Zoznam jazykov sa nachádza v konfiguračnom okne vo vetve Všeobecné / Jazyky. Každý jazyk má krátky identifikátor, ako napr ru alebo angl.

Je zrejmé, že pri programovaní takejto konfigurácie môžu byť riadky 1C aj viacjazyčné. K tomu je možné vytvoriť taký 1C riadok zadaním cez; možnosti podľa identifikátora jazyka:

Premenná = "ru =" "Ahoj, svet!" "; En =" "Ahoj, svet!" "";

Ak použijete takto vytvorený riadok 1C ako obvykle, bude to to, čo je v ňom napísané. Aby ho systém rozdelil na dve možnosti a použil požadovanú, musíte použiť funkciu HStr ():

// správne pre dvojjazyčné konfigurácie
Správa (trStr (premenná));

Rekvizity s typom vedenia 1C

Rekvizita je pole referencie / dokumentu 1C. Líši sa od premennej v programe 1C tým, že jej typ (číslo, reťazec 1C atď.) Je presne určený pre rekvizity. Ak potrebujete oprášiť, čo sú rekvizity, prečítajte si lekciu o.

Ak zadáte typ atribútu - riadok 1C, musíte dodatočne špecifikovať parametre.

Reťazce 1C majú neobmedzenú dĺžku (uvádza sa ako dĺžka = 0) a obmedzenú dĺžku, čo naznačuje presný počet znakov. 1C riadky neobmedzenej dĺžky sú uložené v samostatnej tabuľke SQL, takže ich použitie je menej produktívne ako obmedzené.

Preto má používanie reťazcov 1C neobmedzenej dĺžky svoje vlastné obmedzenia - nie je možné ich použiť všade. Nemôže byť napríklad použitý ako číslo dokumentu, kód adresára, dimenzia.

Práca s reťazcami 1C

Existuje niekoľko vstavaných funkcií platformy 1C na prácu so strunami.

  • SocrLP („Neuveriteľné, ale pravdivé!“)
    Odstráni nadbytočné medzery z riadku 1C. Môže sa tiež použiť na prevod akýchkoľvek typov na reťazec 1C (napríklad čísla).
  • Premenná = "Vasya" + SokrLP ("plus") + "Olya"; // bude "Vasya plus Olya"
    Príklad sčítania niekoľkých hodnôt reťazca 1C. Výsledkom bude jeden riadok 1C.
  • Premenná = Leo („Hudba“, 2); // bude "Mu"
    Premenná = streda („Hudba“, 2, 2); // bude "shl"
    Premenná = vpravo („Hudba“, 2); // bude "ka"
    Rôzne možnosti získania podreťazca z reťazca 1C.
  • Premenná = Hľadať („Hudba“, „Shl“); // budú 3
    Vyhľadajte podreťazec v reťazci 1C, začínajúc od znaku 1.
  • Premenná = StrLength („Hudba“); // bude 6
    Vráti počet znakov v riadku 1C.
  • Nahlásiť („Ahoj“) // v okne správy v spodnej časti okna 1C
    Varovanie („Ahoj“) // vyskakovacie dialógové okno
    Stav („Dobrý deň“) // v stavovom riadku vľavo dole
    .

Odlievanie predmetov na riadok 1C

Ako viete, v súčasnosti je najobľúbenejším formátom na výmenu štruktúrovaných informácií XML. Dokonca Najnovšia verzia PANI Office Word a Excel ukladajú súbory v tomto formáte (docx respektíve xlsx, zmeňte príponu na zip, otvorte v archivátore).

Platforma 1C na výmenu údajov ponúka niekoľko možností, z ktorých hlavnou je tiež XML.

1. Najjednoduchšou metódou je použiť funkciu Skratka () alebo String (). V tele dotazu môžete použiť funkciu REPRESENTATION (). Výsledok ich akcie je rovnaký - generujú pre používateľa reťazcovú reprezentáciu akéhokoľvek objektu 1C.

V prípade referenčnej knihy to bude predvolene názov. Pre dokument - názov dokumentu, číslo a dátum.

2. Akýkoľvek objekt 1C (s obmedzeniami) je možné previesť na XML a naopak. Proces prevodu sa nazýva serializácia.

ViewStringXml = XMLString (hodnota); // získanie XML z hodnoty 1C
Value1C = XMLValue (Typ ("ReferenceLink.Nomenclature"), ViewStringXml); // získať hodnotu 1C z reťazca XML, musíte zadať typ 1C, ktorý by sa mal prijať

3. Existuje spôsob, akým platforma 1C prevádza ľubovoľný objekt 1C na reťazec. Migroval z verzie 1C 7.7. Tento formát nerozumie iným programom, ale rozumie mu iný 1C, čo uľahčuje jeho používanie na výmenu medzi 1C základňami.

Reťazec = ValueVSStringInter (Value1C); // získajte reťazec 1C z hodnoty 1C
ValueVFile ("C: \ MyFile.txt", hodnota1C); // ďalšia možnosť, dostaneme súbor s uloženým reťazcom z hodnoty 1C
Value1C = ValueFromStringInternal (String); // späť z riadku 1C
Value1C = ValueOfFile ("C: \ MyFile.txt"); // späť zo súboru

Úprava 1C riadkov vo formulári

Okrem práce s reťazcami 1C v programe 1C by som samozrejme chcel, aby ich používateľ mohol upravovať. Existuje na to niekoľko možností:

1. Najľahšie je požiadať o zadanie linky 1C na požiadanie. Táto metóda sa používa pri výučbe programovania 1C, v reálnom živote sa používa oveľa menej často (ale používa sa!).

Premenná = "";
String = EnterValue (premenná, „Zadajte svoje celé meno“);

2. Na zobrazenie atribútu objektu 1C (referenčná kniha / dokument) alebo atribútu formulára (pozri) sa najčastejšie používa vstupné pole. Toto je najbežnejší nástroj v 1C na prácu používateľov s poliami úprav.

3. Možnosti vstupného poľa je možné rozšíriť (pozri vlastnosti vstupného poľa, kliknite pravým tlačidlom myši podrobnejšie):

  • Začiarkavacie políčko Režim viacerých riadkov
  • Začiarkavacie políčko Rozšírené úpravy (dostupné, ak je začiarknuté predchádzajúce políčko)
  • Zaškrtávacie políčko Režim hesla (pozri).

4. Ak by vám nestačili všetky možnosti vstupného poľa, je tu vstavaný editor. Ak ho chcete pridať do formulára, musíte pridať pole do ponuky Ovládací prvok Formulár / Vložiť. textový dokument... V jeho vlastnostiach môžete určiť režim jeho prevádzky - vlastnosť Rozšírenie.

Pole textového dokumentu nemožno prepojiť priamo s údajmi. Je potrebné napísať funkciu do obsluhy udalostí OnOpen () formulára (pozri):

FormElements.ElementNameTextDocumentField.SetText (ValueString); // tu ValueString je text získaný napríklad z rekvizít

A do obslužného programu uloženia - napríklad v tlačidle Uložiť - pridajte uloženie:

ValueString = FormElements.ElementNameTextDocumentField.GetText (); // Hodnota Reťazec je rekvizita, do ktorej hodnotu uložíme

5. Vo verzii 1C 8.2.11 v spravovaných formách existoval nová príležitosť riadková reprezentácia 1C - formátované pole dokumentu.


Podobne ako pole textového dokumentu ho musíte nastaviť pri otváraní a písaní pri ukladaní textu sami pomocou programu.

  • V objekte 1C, ktorého formu robíme (referenčná kniha, dokument, spracovanie atď.) - pridajte atribút s typom StorageValues
  • Vo funkcii ReadOnServer () nastavte text z rekvizít

    // tu sú rekvizity pridanou vlastnosťou objektu 1C
    // tu FormattedDocument je názov poľa vo formulári, ktorý sa má upraviť
    & Na serveri

    FormattedDocument = CurrentObject.Props.Get ();
    Koniec postupu

  • Do funkcie BeforeWriteOnServer () alebo pomocou tlačidla napíšte text z poľa

    & Na serveri
    Postup pre ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument);
    Koniec postupu

Reťazce v 1C 8.3 vo vstavanom jazyku 1C predstavujú hodnoty primitívneho typu Riadok... Hodnoty tohto typu obsahujú reťazec Unicode ľubovoľná dĺžka... Premenné typu reťazec sú množinou znakov uzavretých v úvodzovkách.

Príklad 1. Vytvoríme reťazcovú premennú s textom.

StringVariable = "Ahoj svet!";

Funkcie pre prácu s reťazcami v 1c 8.3

V tejto časti budú uvedené hlavné funkcie, ktoré vám umožnia zmeniť riadky v bode 1c alebo analyzovať informácie v nich obsiahnuté.

Dĺžka popruhu

StrLength (<Строка>) ... Vráti počet znakov obsiahnutých v reťazci odovzdanom v parametri.

Príklad 2. Spočítajme počet znakov v reťazci „Hello world!“

Reťazec = „Hello world!“; Počet znakov = StrLength (reťazec); Správa (počet znakov);

Výsledkom vykonania tohto kódu bude zobrazenie počtu znakov v reťazci: 11.

Skratka

AbbrL (<Строка>) ... Skráti nepodstatné znaky naľavo od prvého významného znaku v reťazci.
Vedľajšie postavy:

  • priestor;
  • neporušený priestor;
  • tabuľka;
  • návrat vozňa;
  • riadkový preklad;
  • preklad formulára (stránky).

Príklad 3. Odstráňte všetky medzery z ľavej strany riadku „svet!“ a pripevnite k nemu reťazec „Ahoj“.

Reťazec = skrátený („mier!“); String = "Ahoj" + Reťazec; Správa (reťazec);

Výsledkom vykonania tohto kódu bude výstup riadka „Hello world!“

Skratka

Skratka (<Строка>) ... Skráti nepodstatné znaky napravo od prvého významného znaku v reťazci.

Príklad 4. Formulár „Ahoj“ a „Svet!“ veta „Ahoj svet!“

Reťazec = skrátený („Ahoj“) + „„ + skrátený („svet!“); Správa (reťazec);

SokrLP

SocrLP (<Строка>) ... Skráti nevýznamné znaky napravo od prvého významného znaku v reťazci a tiež skráti nepodstatné znaky naľavo od prvého významného znaku v reťazci. Táto funkcia sa používa častejšie ako predchádzajúce dve, pretože je univerzálnejšia.

Príklad 5. V mene protistrany odstráňte nepodstatné znaky vľavo a vpravo.

Protistrana = Directories.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = ShortLP (CounterpartyObject.Name); CounterpartyObject.Write ();

Lev

Lev(<Строка>, <ЧислоСимволов>) ... Získa prvé znaky reťazca, počet znakov je určený v parametri Počet postáv.

Príklad 6. Vpustite do štruktúry Zamestnanec obsahovať meno, priezvisko a priezvisko zamestnanca. Získajte reťazec s priezviskom a iniciálami.

InitialName = Leo (Employee.Name, 1); Patronymic Initial = Leo (Zamestnanec, Patronymic, 1); FullName = Employee.Sername + "" + InitialName + "." + Patronymic Initial + ".";

Správny

Správny (<Строка>, <ЧислоСимволов>) ... Získa posledné znaky reťazca, počet znakov je určený v parametri Počet postáv. Ak zadaný počet znakov presahuje dĺžku reťazca, vráti sa celý reťazec.

Príklad 7. Predpokladajme, že koniec reťazcovej premennej obsahuje dátum vo formáte „rrrrmmdd“, získajte reťazec s dátumom a skonvertujte ho na typ dátum.

Reťazec = " Aktuálny dátum: 20170910 "; StringDate = Right (String, 8); Date = Date (StringDate);

Streda

Streda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Získa podreťazec z reťazca odovzdaného ako parameter Riadok, začínajúc znakom, ktorého číslo je uvedené v parametri Počiatočné číslo a dĺžka odovzdaná parametru Počet postáv.Číslovanie znakov v riadku začína od 1. Ak je v parametri Počiatočné číslo je zadaná hodnota, ktorá je menšia alebo rovná nule, potom parameter preberá hodnotu 1. Ak je parameter Počet symbolov nie je zadané, potom sú vybraté znaky až do konca riadka.

Príklad 8. Predpokladajme, že reťazcová premenná začínajúca od deviatej pozície obsahuje kód oblasti, mali by ste ho dostať a napísať ho do samostatného riadka.

Riadok = "Kraj: 99 Moskva"; Kraj = stred (riadok, 9, 2);

Vyhľadávanie

Nájsť (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Vyhľadá zadaný podreťazec v reťazci, vráti číslo pozície prvého znaku nájdeného podreťazca. Zvážte parametre tejto funkcie:

  • Riadok... Zdrojový reťazec;
  • SubstringSearch... Hľadaný podreťazec;
  • Hľadať smer... Určuje smer hľadania podreťazca v reťazci. Môže mať hodnoty:
    • Hľadať smer. Od začiatku;
    • Hľadať smer.;
  • Počiatočná pozícia... Špecifikuje pozíciu v reťazci, od ktorého sa začína vyhľadávanie;
  • Počet vstupov... Určuje počet výskytov požadovaného podreťazca v pôvodnom reťazci.

Príklad 9. V riadku „Hello world!“ určiť polohu posledného výskytu symbolu „a“.

PositionNumber = StrNayti („Ahoj svet!“, „A“, DirectionSearch.End); Správa (číslo pozície);

Výsledkom vykonania tohto kódu bude zobrazenie čísla posledného výskytu symbolu „a“: 9.

VReg

BReg (<Строка>) ... Skonvertuje všetky znaky zadaný reťazec za 1 s 8 na veľké písmená.

Príklad 10. Preveďte reťazec „ahoj svet!“ na veľké písmená.

StringBreg = BReg („ahoj svet!“); Report (StringVreg);

Výsledkom vykonania tohto kódu bude zobrazenie riadka „AHOJ SVET!“

Nreg

HPreg (<Строка>) ... Skonvertuje všetky znaky v zadanom reťazci za 1 s 8 na malé písmená.

Príklad 11. Skonvertujte reťazec „AHOJ SVET!“ na malé písmená.

StringNreg = НReg („AHOJ SVET!“); Report (StringVreg);

Výsledkom vykonania tohto kódu bude výstup riadka „ahoj svet!“

Treg

Treg (<Строка>) ... Konvertuje reťazec takto: Prvý znak každého slova je preložený do veľké písmená, ostatné znaky slova sa prevedú na malé písmená.

Príklad 12. Začnite veľkým písmenom prvých písmen slov v reťazci „ahoj svet!“

StringTreg = Treg („ahoj svet!“); Report (StringTreg);

Výsledkom vykonania tohto kódu bude zobrazenie riadka „Hello World!“

Symbol

Symbol (<КодСимвола>) ... Získa znak podľa kódu Unicod.

Príklad 13. Doplníme vľavo a vpravo v riadku „Hello World!“ symbol ★

StringWithStars = Symbol ("9733") + "Ahoj svet!" + Symbol ("9733"); Report (StringWithStars);

Výsledkom vykonania tohto kódu bude výstup riadka „★ Hello World! ★“

Kód symbolu

SymbolCode (<Строка>, <НомерСимвола>) ... Získa kód znaku Unicode z reťazca uvedeného v prvom parametri, ktorý sa nachádza na pozícii určenej v druhom parametri.

Príklad 14. Zistite kód posledného znaku v „Hello World!“

Reťazec = „Hello World!“; CharacterCode = CharacterCode (String, StrLength (String)); Report (SymbolCode);

Výsledkom vykonania tohto kódu bude zobrazenie symbolového kódu „!“ - 33.

Prázdny riadok

Prázdny riadok (<Строка>) ... Kontroluje, či reťazec obsahuje iba nepodstatné znaky, to znamená, či je prázdny.

Príklad 15. Skontrolujte, či je reťazec pozostávajúci z troch medzier prázdny.

Empty = EmptyString (""); Report (prázdny);

Výsledkom vykonania tohto kódu bude zobrazenie slova „Áno“ (reťazcové vyjadrenie logickej hodnoty Pravda).

PageReplace

PRmeňte (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Nájde všetky výskyty vyhľadávacieho podreťazca v pôvodnom reťazci a nahradí ho náhradným podreťazcom.

Príklad 16. V riadku „Hello World!“ nahradiť slovo „mier“ slovom „priatelia“.

String = StrReplace („Hello World!“, „World“, „Friends“); Správa (reťazec);

Výsledkom vykonania tohto kódu bude zobrazenie riadku „Ahoj priatelia!“

StrNumberStrings

StrNumber of Lines (<Строка>) ... Počíta počet riadkov vo viacriadkovom reťazci. Ísť do Nový riadok v 1s 8 sa používa symbol PS(znak posuvu riadka).

Príklad 17. Určte počet riadkov v texte:
"Prvá línia
Druhý riadok
Tretí riadok "

Číslo = StrNumberStrings ("Prvý riadok" + Symboly.PS + "Druhý riadok" + Symboly.PS + "Tretí riadok"); Správa (číslo);

Výsledkom vykonania tohto kódu bude zobrazenie počtu riadkov v texte: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Získa reťazec vo viacriadkovom reťazci podľa jeho čísla. Číslovanie riadkov začína od 1.

Príklad 18. Získajte posledný riadok v texte:
"Prvá línia
Druhý riadok
Tretí riadok "

Text = "Prvý riadok" + Symboly.PS + "Druhý riadok" + Symboly.PS + "Tretí riadok"; LastString = StrGetString (Text, StrNumberLines (Text)); Report (LastLine);

Výsledkom vykonania tohto kódu bude zobrazenie riadku „Tretí riadok“.

StrPočet výskytov

StrPočet výskytov (<Строка>, <ПодстрокаПоиска>) ... Vráti počet výskytov zadaného podreťazca v reťazci. Táto funkcia rozlišuje veľké a malé písmena.

Príklad 19. Určte, koľkokrát sa písmeno „c“ objaví v riadku „Riadky za 1 s 8,3 a 8,2“ bez ohľadu na jeho prípad.

Riadok = "Riadky za 1 s 8,3 a 8,2"; Number of Occurrences = StrNumber of Occurrences (Vreg (String), "S"); Správa (počet výskytov);

Výsledkom vykonania tohto kódu bude zobrazenie počtu výskytov: 2.

Stránka začína na

Stránka začína s (<Строка>, <СтрокаПоиска>) ... Skontroluje, či reťazec odovzdaný v prvom parametri začína reťazcom v druhom parametri.

Príklad 20. Zistite, či sa DIČ vybranej protistrany začína číslom 1. Vpíšte premennú Protistrana Dodávatelia.

DIČ = Counterparty.INN; Začína sUnits = StrZačína na (INN, "1"); Ak sa začne Jednotky potom // Váš kód EndIf;

PageEnds With

PageEnds With (<Строка>, <СтрокаПоиска>) ... Skontroluje, či reťazec odovzdaný v prvom parametri končí reťazcom v druhom parametri.

Príklad 21. Určte, či sa DIČ vybranej protistrany končí číslicou 2. Zapíšte premennú Protistrana uloží sa odkaz na položku adresára Dodávatelia.

DIČ = Counterparty.INN; Končí dvoma = Str končí (INN, "2"); If Ends WithDouble Then // Váš kód EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Rozdelí reťazec na časti na základe zadaných znakov oddeľovača a zapíše výsledné reťazce do poľa. Prvý parameter ukladá pôvodný reťazec, druhý obsahuje reťazec obsahujúci oddeľovač, tretí určuje, či sa majú do poľa zapísať prázdne reťazce (štandardne Pravda).

Príklad 22. Predpokladajme, že máme reťazec obsahujúci čísla oddelené „;“, získajte z reťazca pole čísel.

Reťazec = "1; 2; 3"; Pole = StrSplit (reťazec, ";"); Pre RV = 0 podľa poľa.Množstvo () - pole pokusu o 1 cyklus [Rd] = číslo (AbbrLP (pole [Rd])); Pole výnimiek [Сч] = 0; Koniec pokusov Koniec slučky;

V dôsledku vykonania sa získa pole s číslami od 1 do 3.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Skonvertuje pole reťazcov z prvého parametra na reťazec obsahujúci všetky prvky poľa oddelené oddeľovačom určeným v druhom parametri.

Príklad 23. Pomocou poľa čísel z predchádzajúceho príkladu získajte pôvodný reťazec.

Pre odkaz = 0 podľa poľa.Množstvo () - 1 cyklus poľa [odkaz] = reťazec (pole [odkaz]); Koniec cyklu; Reťazec = StrConnect (Array, ";");