Funkcie za 1 s s reťazcami. Nové funkcie pre prácu s reťazcami. Funkcie na prácu s reťazcami StrSplit(), StrJoin()

Ako príklad toho, ako fungujú funkcie reťazca 1C, by sme chceli vytvoriť automatickú analýzu textu. Preberieme text zo súboru. Zobrazte používateľovi výsledok analýzy v akejkoľvek forme.

Musíme vytvoriť externé spracovanie, ktoré nám umožní vybrať textový súbor a spustiť syntaktický analyzátor.

Analýza textu 1C - formulár a tlačidlá

Takže vytvoríme externé spracovanie: Konfigurátor/Súbor/Nové/Externé spracovanie.

Pridanie formulára. Na formulár musíme umiestniť výberové pole. textový súbor a tlačidlo analýzy.

Analýza textu 1C - hrubý klient

Do formulára umiestnite bežné textové pole. Dĺžka reťazca je neobmedzená, pretože cesta k súboru (názvy adresárov) môže byť významná.

Aby používateľ nemusel zadávať názov súboru, ale mohol si ho vybrať, povolíme tlačidlo výberu v blízkosti poľa.

Zmeňte názov poľa na "FileName", názov priradeného atribútu formulára sa automaticky zmení na rovnaký.

Ako tlačidlo použijeme tlačidlo „Spustiť“ automaticky pridané platformou (a už má pripojenú obsluhu - pohodlné).

Analýza textu 1C - tenký klient

V tenkom klientovi si vytvoríme atribút formulára „FileName“ sami. Potiahnite rekvizity na formulár. Vo vlastnostiach elementu formulára zahrnieme aj tlačidlo výberu.

Ako tlačidlo vytvoríme príkaz „Spustiť“, priradíme mu spracovanie a pretiahneme ho do formulára.

Analýza textu 1C - programovanie

Prvá vec, ktorú musíme urobiť, je zvládnuť kliknutie na tlačidlo výberu - po kliknutí zobraziť dialógové okno výberu súboru.

Poďme na vlastnosti nášho textového poľa vo formulári (v hrubom klientovi - kliknite ľavým tlačidlom myši priamo na pole, v tenkom klientovi - na názov poľa v zozname) a zadajte udalosť "Vybrať štart" psovod.

Vo vnútri funkcie handlera, ktorú 1C vytvorí po priradení, napíšeme jednoduchý kód:

Teraz máme názov súboru. Potrebujeme „získať“ jeho obsah a zavolať analýzu textu.

Už máme handler pre tlačidlo Run. V hrubom klientovi boli tlačidlo a jeho handler vytvorené automaticky konfigurátorom 1C. V tenkom klientovi sme ho pridali ručne.

Napíšme kód, ktorý načíta súbor do reťazca do handlera:

Čo sa týka kódovania súboru. Ak vytvoríte objekt TextReader() bez parametra špecifikujúceho kódovanie, 1C sa pokúsi určiť kódovanie samostatne (podpisom značky poradia bajtov - kusovník, alebo zváži jeho kódovanie ANSI).

Požadované kódovanie môžete zadať priamo, napríklad takto:
File = NewReadText(FileName, "UTF-8"); //nahraďte názov kódovania, ktoré potrebujete

Takže ako výsledok sme dostali:

  • Textový reťazec načítaný zo súboru v premennej "Text".
  • Postup, v ktorom budeme analyzovať prijatý reťazec z premennej s názvom „AnalysisText ()“ pomocou funkcií práce s reťazcami 1C

ČASŤ 1. METÓDY (26).

1.1. Základné metódy (10). Nezávislé, postavené na ich jednoduchých algoritmoch.

Str_Complete() (pravo-ľavý výplň so špecifikovanými znakmi).

Str_Inverse () (inverzia - znaky sprava doľava).

Str_Codes() (kódy znakov cez „,“ a pole s kódmi)

Str_Symbols() (reťazec z kódov oddelených ”,” alebo z poľa s kódmi)

Str_ReplaceCharacters() (nahradenie jedného znaku iným).

Str_FromArray() (reťazec z poľa fragmentov oddelených oddeľovačom)

Str_FindIn() (hľadá podreťazec (aj vpravo) so zadaným číslom položky).

Str_FindGr() (Vyhľadanie skupiny znakov zahrnutých v zadanej znakovej sade)

Str_FindNumber() (Vyhľadajte číslo, vrátane čísla vpravo so zadaným číslom výskytu)

Str_Interpret() (do poľa podľa zavedenej syntaxe)

1.2. Odvodené metódy (12). V skutočnosti ide o použitie štyroch zovšeobecnených metód-algoritmov (pozri časť 2)

Str_Number() (od začiatku a od konca reťazca, "nebojte sa" nečíslicových znakov.

Str_Find() (hľadá podreťazec (vrátane nerozlišovania veľkých a malých písmen a vpravo) so zadaným číslom položky).

Str_Replace() (vyhľadávanie (vrátane bez rozlišovania malých a veľkých písmen a vpravo) a nahradenie podreťazcov oddeľovačov).

Str_Piece() (kúsok reťazca medzi určenými výskytmi oddeľovača (vľavo alebo vpravo)).

Str_ReplacePiece() (náhrada v zdrojovom reťazci "kus" za zadaný reťazec).

Str_VArray() (medzi určenými výskytmi oddeľovača (vrátane vpravo a bez malých a veľkých písmen).

Str_MoveBySyllables() (rozdelené na podreťazce „Hard“ so spojovníkom).

Str_MoveWords() (rozdelené na podreťazce „jemne“)

Str_Cut() („Vystrihnúť“ na podreťazce špecifikovaných dĺžok)

Str_Short() (nahradiť ľavú skupinu „redukovaných“ znakov „náhradným reťazcom“

Str_Short() (nahradiť pravú skupinu „redukovaných“ znakov „náhradným reťazcom“

Str_Short() (nahradiť uprostred skupiny „redukovaných“ znakov „náhradným reťazcom“

Str_Expand (rozšírenie na špecifikovanú dĺžku zvýšením počtu špecifikovaných znakov)

1.3. Podrobné metódy (3). "Príprava" linky s prenosom na tabuľku s podrobnými informáciami.

Str_inTableIn() (do tabuľky podľa systému vnorených oddeľovačov).

Str_inTableGroup (do tabuľky podľa viacúrovňového filtra).

Str_inTableNumbers (do tabuľky s číslami a fragmentmi medzi nimi).

ČASŤ 2. VŠEOBECNÉ METÓDY-ALGORIMY (3).

Str_Entry() (metódy „Nájsť“ a „Nahradiť“).

Str_Fragments() (metódy „Piece“, „ReplacePiece“, „ToArray“, „ToTableIn“).

Str_Short() (metódy "Short", "ShortP", "Short", "Expand".

Str_Split() (metódy „Posunúť po slabikách“, „Posunúť podľa slov“, „Vystrihnúť“).

ČASŤ 3. UNIVERZÁLNA FUNKCIA.

Je to druh podmieneného programovacieho rozhrania, ktoré umožňuje

použiť niekoľko metód na reťazec naraz. Realizované ako

funkcie so siedmimi parametrami ("Demo" je postavené na tejto funkcii):

Str_(Metódy, Podmetódy, Vstup, Param1, Param2, Dĺžka_číslo_pozície, ĎalšíOutput)

Možnosti:

- „Metódy“ - niekoľko „kombinovaných“ a (alebo) jedna „exkluzívna“ metóda

(jednoznakové kódy alebo mená, možné cez ",")

- "Podmetódy" - niekoľko "kombinovateľných" a (alebo) "exkluzívnych" možností

„výlučná“ metóda (jednoznakové kódy alebo názvy);

- „Vstup“ - Reťazec, pole alebo tabuľka hodnôt;

- „Param1“ - vyhľadávací reťazec, substitúcie, oddeľovače, filtre;

- „Param2“ - náhradný reťazec alebo symboly;

- "Dĺžka_číslo_pozícia" -Číslo, čísla cez oddeľovač alebo pole s číslami;

- „Exit“ – číslo alebo reťazec alebo pole alebo tabuľka hodnôt;

Názvy a (alebo) jednoznakové kódy metód-podmetód, ako aj čísla v

(Length_Position_Number) môže byť v každom prípade oddelené

ktorýkoľvek z týchto oddeľovačov: “, :;”.

ČASŤ 4. NIEKOĽKO PRÍKLADOV.

HaveNumbersINString=(Str_FindNumbers(InString)<>Nedefinované);

HaveDigitsINString=(Str_FindGr(InString,"+0123456789")>0);

ThereLatin=(Str_FindGr(VxStr, Str_Interpret("lL"))>0);

HaveSpecifiedSigns=(Str_NfindGr(VxStr, "+ na hornYu.0p9")>0);

IsUnprintable=(Str_FindGr(VxStr, Str_Interpret("-l-L-r-R-P-Z-C"))>0);

ČASŤ 5. ZÁVER.

Ak je to možné, zvládnuté jedným prejazdom pozdĺž čiary. Druhý prechod - zvyčajne už v fragmentoch. Nepoužili ste vstavanú funkciu StrNumberOccurrences().

Použité vstavané funkcie: Left(),Right()Mid(),StrLength()

- (umiestnenie a načítanie časti reťazca - by malo byť "rýchle").

Komu základné schopnosti programovacie jazyky zvyčajne zahŕňajú prácu s číslami a reťazcami. Zvyčajne sú tieto funkcie pevne zapojené do kódu kompilátora (alebo sú implementované „základné“ triedy programovacieho jazyka).

V 1C sú možnosti práce s reťazcami naprogramované v samotnej platforme. Dnes zvážime funkcie práce s reťazcami 1C v programoch vo vstavanom jazyku 1C.

Hodnota riadku 1C

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

Premenná = "Ahoj svet!";

Ak chcete zadať znak úvodzovky v konštantnej hodnote reťazca 1C, musíte ho zdvojnásobiť ""

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

2. Zalomenie riadku 1C môže byť špecifikované dvoma spôsobmi naraz. Prvým je použitie symbolu |

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

Druhým je použitie systémového enum Symbols. Umožňuje vám pridať zalomenie riadku 1C a ďalšie netlačiteľné znaky, ako napríklad TAB.

Premenná = "Ahoj" + Symboly.ps + "mier!";

3. Konfigurácie v 1C môžu byť vyvinuté nielen pre jeden jazyk (ruština, angličtina alebo iný) - ale súčasne pre niekoľko jazykov. V tomto prípade sa aktuálne používaný jazyk vyberie v spodnej časti okna 1C.

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

Je jasné, že pri programovaní takejto konfigurácie môžu byť linky 1C aj viacjazyčné. Na tento účel je možné vytvoriť takýto riadok 1C zadaním cez; možnosti podľa ID jazyka:

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

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

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

Rekvizity s líniou typu 1C

Nevyhnutnou podmienkou je pole adresára / dokumentu 1C. Od premennej v programe v jazyku 1C sa líši tým, že jej typ je presne uvedený pri atribúte (číslo, reťazec 1C atď.). Ak si potrebujete oprášiť, čo sú to rekvizity, pozrite si návod na .

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

Reťazce 1C majú neobmedzenú dĺžku (označuje sa ako dĺžka = 0) a obmedzenú dĺžku s uvedením presného počtu znakov. 1C reťazce neobmedzenej dĺžky sú uložené v samostatnej SQL tabuľke, takže ich použitie je menej produktívne ako obmedzené.

Preto má použitie 1C strún neobmedzenej dĺžky svoje obmedzenia - nie je možné ich použiť všade. Napríklad nie je možné ako číslo dokladu, kód adresára, meranie.

Práca s čiarami 1C

Pre prácu so strunami je v platforme 1C zabudovaných niekoľko funkcií.

  • AbbrLP("Neuveriteľné, ale pravdivé!")
    Odstraňuje nadbytočné medzery z reťazca 1C. Môže sa tiež použiť na prevod akéhokoľvek typu na reťazec 1C (napríklad čísla).
  • Premenná = "Vasya" + Abbrl("plus") + "Olya"; //bude "Vasya plus Olya"
    Príklad sčítania niekoľkých hodnôt reťazca 1C. Výsledkom je jeden riadok 1C.
  • Premenná = Lev("Hudba", 2); // bude "Mu"
    Premenná = Avg("Hudba", 2, 2); // bude "ps"
    Premenná = Práva("Hudba", 2); // bude "ka"
    Rôzne možnosti získania podreťazca z reťazca 1C.
  • Premenná = Nájsť ("Hudba", "ps"); //bude 3
    Vyhľadajte podreťazec v reťazci 1C, začínajúci znakom 1.
  • Premenná = StrLength("Hudba"); //bude 6
    Vráti počet znakov v reťazci 1C.
  • Upozorniť("Ahoj") //v okne so správou v spodnej časti okna 1C
    alert("ahoj") //vyskakovacie dialógové okno
    Status("Ahoj") //v riadku zobrazenia stavu vľavo dole
    .

Prineste predmety na riadok 1C

Ako viete, v súčasnosti je najpopulárnejší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 a xlsx, zmeňte príponu na zip, otvorte v archivátore).

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

1. Najjednoduchším spôsobom je použitie funkcie ShortLP() alebo String(). V texte dopytu môžete použiť funkciu REPRESENTATION(). Výsledok ich akcie je rovnaký – používateľovi vygenerujú reťazcovú reprezentáciu ľubovoľného objektu 1C.

Pre predvolený adresár to bude jeho názov. V prípade dokumentu názov dokumentu, číslo a dátum.

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

ViewStringXml = XMLString(Hodnota); //získať XML z hodnoty 1C
Hodnota1С = XMLValue(Typ("Katalógová referencia.Nomenklatúra"),ViewStringXml); //získajte hodnotu 1C z reťazca XML, musíte zadať typ 1C, ktorý sa má prijať

3. Existuje natívny spôsob platformy 1C na konverziu akéhokoľvek objektu 1C na reťazec. Prešiel z verzie 1C 7.7. Tomuto formátu iné programy nerozumejú, ale rozumie inému 1C, čo uľahčuje jeho používanie na výmenu medzi databázami 1C.

Reťazec = ValueInStringInt(Value1S); //získame reťazec 1C z hodnoty 1C
ValueToFile("C:\MyFile.txt", Hodnota1C); //ďalšia možnosť, dostaneme súbor s uloženým reťazcom od hodnoty 1C
Hodnota1C = ValueFromStringInt(String); //späť z riadku 1C
Value1C = ValueFromFile("C:\MyFile.txt"); //späť zo súboru

Úprava riadkov 1C vo formulári

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

1. Najjednoduchším spôsobom je vyžiadať si vstup linky 1C na požiadanie. Táto metóda sa používa pri výučbe programovania 1C, v živote sa používa oveľa menej často (ale používa sa!).

Premenná = "";
String = EnterValue(Premenná, "Zadajte celé meno");

2. Na zobrazenie detailov objektu 1C (adresár / dokument) alebo detailov formulára (pozri) sa najčastejšie používa vstupné pole. Toto je najbežnejší nástroj v 1C pre používateľa na prácu s poľami ú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 na ňom, ďalšie podrobnosti):

  • Začiarkavacie políčko Režim úpravy 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 zabudovaný editor. Pre pridanie do formulára je potrebné pridať Pole v menu Formulár / Vložiť ovládací prvok textový dokument. V jeho vlastnostiach môžete určiť režim jeho fungovania - vlastnosť Extension.

Pole textového dokumentu nemožno prepojiť priamo s údajmi. Do obsluhy udalosti formulára OnOpening() je potrebné napísať nasledujúcu funkciu (pozri ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //tu, ValueString je text prijatý napríklad z atribútu

A v obslužnom programe uloženia - napríklad v tlačidle Uložiť - pridajte uloženie:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString tu sú rekvizity, kde uložíme hodnotu

5. Vo verzii 1C 8.2.11, in riadené formuláre, objavilo sa nová príležitosť riadková reprezentácia 1C - Pole formátovaného dokumentu.


Podobne ako pole textového dokumentu je potrebné nastaviť pri otváraní a zapisovať pri ukladaní textu sami pomocou programu.

  • V objekte 1C, ktorého formu vytvárame (referenčná kniha, dokument, spracovanie atď.) - pridajte atribút s typom Uloženie hodnoty
  • Vo funkcii OnReadOnServer() nastavte text z atribútu

    //tu Requisite je pridaný atribút objektu 1C
    //tu FormattedDocument je názov poľa vo formulári úprav
    &Na serveri

    FormattedDocument = CurrentObject.Attributes.Get();
    EndProcedure

  • Vo funkcii BeforeWriteOnServer() alebo stlačením tlačidla napíšte text z poľa

    &Na serveri
    Procedúra OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    EndProcedure

String je jedným z primitívnych dátových typov v systémoch 1C:Enterprise 8. Premenné s typom riadok obsahovať text.

Zadajte hodnoty premenných riadok sú uvedené v úvodzovkách. Viaceré premenné tohto typu dá sa zložiť.

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

Nakoniec Per3 bude záležať" Slovo 1 Slovo 2″.

Systémy 1C:Enterprise 8 navyše poskytujú funkcie pre prácu s reťazcami. Zvážte tie hlavné:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcia je navrhnutá tak, aby zobrazila dialógové okno, v ktorom môže používateľ zadať hodnotu premennej typu Linka. Parameter <Строка> je povinný a obsahuje názov premennej, do ktorej sa zadaný reťazec zapíše. Parameter <Подсказка> nepovinný je názov dialógového okna. Parameter <Длина> voliteľné, označuje maximálnu dĺžku vstupného reťazca. Predvolená hodnota je nula, čo znamená neobmedzenú dĺžku. Parameter <Многострочность> voliteľné. Určuje režim vstupu viacriadkový text: True - zadajte viacriadkový text s oddeľovačmi riadkov; False – Zadajte jednoduchý reťazec.

Je možné zadať reťazec a so znalosťou kódu znaku v Unicode:

Symbol(<КодСимвола>) — Kód sa zadáva ako číslo.

Letter= Symbol(1103 ) ; // Ja

Existuje aj inverzná funkcia, ktorá umožňuje zistiť kód znaku.

Kód symbolu(<Строка>, <НомерСимвола>) — Vráti číslo Unicode zadaného znaku ako číslo.

Funkcie prevodu malých a veľkých písmen:

VReg(<Строка>) - Prevedie všetky znaky v reťazci na veľké písmená.

HReg(<Строка>) - Prevedie všetky znaky v reťazci na malé písmená.

TReg(<Строка>) - konvertuje všetky znaky reťazca na veľkosť písmen. To znamená, že prvé písmená vo všetkých slovách sa skonvertujú na veľké a zvyšné písmená sa skonvertujú na malé.

Funkcie na vyhľadávanie a nahradenie znakov v reťazci:

Nájsť(<Строка>, <ПодстрокаПоиска>) - nájde číslo znaku výskytu hľadaného podreťazca. Napríklad:

Nájsť ("String" , "oko" ) ; // štyri

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — nájde číslo znaku výskytu hľadaného podreťazca, číslo výskytu je uvedené v príslušnom parametri. V tomto prípade vyhľadávanie začína od znaku, ktorého číslo je uvedené v parametri StartPosition. Vyhľadávanie je možné od začiatku alebo od konca reťazca. Napríklad:

Položka číslo4= StrFind( "obrana", "o" , Smer vyhľadávania. Najprv 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Vyhľadá všetky výskyty hľadaného podreťazca v zdrojovom reťazci a nahradí ho náhradným podreťazcom.

StrReplace("String" , "oko" , "" ) ; // Stránka

Prázdny riadok (<Строка>) - skontroluje, či reťazec neobsahuje významné znaky. Ak neexistujú žiadne alebo žiadne významné znaky, vráti sa hodnota Pravda. Inak - Klamať.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – vypočíta počet výskytov hľadaného podreťazca v zdrojovom reťazci.

StrNumberOccurrences ( "Študovať, študovať a ešte raz študovať", "študovať" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — nahradí parametre do reťazca číslom. Reťazec musí obsahovať substitučné značky v tvare: "%1..%N". Číslovanie značiek začína od 1. Ak je hodnota parametra Nedefinované, prázdny reťazec je nahradený.

StrPattern ( "Možnosť 1 = %1, možnosť 2 = %2", "1" , "2" ) ; // Parameter 1= 1, Parameter 2 = 2

Funkcie konverzie reťazcov:

Lev(<Строка>, <ЧислоСимволов>) vráti prvé znaky reťazca.

Správny(<Строка>, <ЧислоСимволов>) - vráti posledné znaky reťazca.

streda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - vráti reťazec dĺžky<ЧислоСимволов>, začínajúc symbolom<НачальныйНомер>.

Abbr(<Строка>) skráti nevýznamné znaky naľavo od prvého významného znaku v reťazci.

abbr(<Строка>) - odreže nepodstatné znaky vpravo od posledného významného znaku v reťazci.

Abbrl(<Строка>) - odreže nevýznamné znaky naľavo od prvého významného znaku v reťazci a napravo od posledného významného znaku v reťazci.

StrGetString(<Строка>, <НомерСтроки>) – získa reťazec viacriadkového reťazca podľa čísla.

Ďalšie vlastnosti:

StrLength(<Строка>) - vráti počet znakov v reťazci.

StrNumber of Lines(<Строка>) - vráti počet riadkov vo viacriadkovom reťazci. Riadok sa považuje za nový, ak je oddelený od predchádzajúceho riadku znakom nového riadku.

StrCompare(<Строка1>, <Строка2> ) - necitlivo porovnáva veľkosť písmen dvoch reťazcov. Funkcia funguje ako objekt Porovnávanie hodnôt. Vrátenie:

  • 1 - ak je prvý riadok väčší ako druhý
  • -1 - ak je druhý riadok väčší ako prvý
  • 0 - ak sú reťazce rovnaké

StrCompare("Prvý riadok" , "Druhý riadok" ) ; // jeden

Existuje niekoľko mechanizmov na prácu s reťazcami v dopytoch 1C. Najprv je možné pridať reťazce. Po druhé, podreťazec môže byť prevzatý z reťazca. Po tretie, reťazce možno porovnávať, a to aj podľa vzoru. To je asi tak všetko, čo môžete so šnúrkami robiť.

Pridávanie reťazcov

Operátor „+“ sa používa na pridávanie reťazcov do dotazu. Môžete pridať iba reťazce obmedzenej dĺžky.

SELECT "Názov: " + Dodávatelia.Názov AS Stĺpec 1 FROM Adresár.Dodávatelia AKO Dodávatelia WHERE Dodávatelia.Odkaz = &Odkaz

Funkcia podreťazca

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

Analóg funkcie Environment() z objektového modelu. Funkciu Substring() možno použiť na údaje typu reťazec a umožňuje vám vybrať fragment <Строки> , začínajúc číselným znakom <НачальнаяПозиция> (znaky v reťazci sú číslované od 1) a dĺžku <Длина> postavy. Výsledok vyhodnotenia funkcie má reťazec typu s premenlivou dĺžkou a dĺžka sa bude považovať za neobmedzenú, ak <Строка> má neobmedzenú dĺžku a parametre <Длина> nie je konštantná alebo väčšia ako 1024.

Ak je dĺžka reťazca menšia ako špecifikovaná v druhom parametri, funkcia vráti prázdny reťazec.

Pozor! Použitie funkcie SUBSTRING() na konverziu reťazcov neobmedzenej dĺžky na reťazce obmedzenej dĺžky sa neodporúča. Namiesto toho je lepšie použiť operátor obsadenia EXPRESS().

Funkcia podobná

Ak sa potrebujeme uistiť, že atribút string spĺňa určité kritériá, porovnáme ho:

SELECT Counterparties.Name AS Stĺpec 1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Ale čo ak je potrebné jemnejšie porovnanie? Nielen pre rovnosť alebo nerovnosť, ale pre podobnosť s určitým vzorom? Presne na to bola vytvorená funkcia LIKE.

LIKE – Operátor na kontrolu, či je reťazec podobný vzoru. Analóg LIKE v SQL.

Operátor LIKE vám umožňuje porovnať hodnotu výrazu zadaného naľavo od neho s reťazcom šablóny zadaným napravo. Hodnota výrazu musí byť typu string. Ak sa hodnota výrazu zhoduje so šablónou, výsledok operátora bude TRUE, inak bude FALSE.

Nasledujúce znaky v reťazci šablóny sú servisné znaky a majú iný význam ako znak reťazca:

  • % (percento): sekvencia obsahujúca ľubovoľný počet ľubovoľných znakov;
  • _ (podčiarkovník): jeden ľubovoľný znak;
  • […] (jeden alebo viac znakov v hranatých zátvorkách): každý jeden znak uvedený v hranatých zátvorkách. Enumerácia môže obsahovať rozsahy, ako napríklad a-z, čo znamená akýkoľvek znak v rozsahu, vrátane koncov rozsahu;
  • [^…] (v hranatých zátvorkách znak záporu, za ktorým nasleduje jeden alebo viacero znakov): Akýkoľvek jednotlivý znak okrem tých, ktoré sú uvedené za znakom záporu.

Akýkoľvek iný symbol znamená sám seba a nenesie žiadnu dodatočnú záťaž. Ak je potrebné napísať jeden z uvedených znakov ako samotný, potom mu musí predchádzať<Спецсимвол>. Ja sám<Спецсимвол>(akýkoľvek vhodný znak) je definovaný v tom istom príkaze za kľúčové slovoŠPECIÁLNY SYMBOL.