Uued funktsioonid stringidega töötamiseks. Uued funktsioonid stringidega töötamiseks Stringi järjekord 1s programmeerimisel

Programmeerimiskeele põhivõimalused hõlmavad tavaliselt arvude ja stringidega töötamist. Tavaliselt on need funktsioonid kõvasti kodeeritud kompilaatori koodi (või rakendatakse programmeerimiskeele “baas” klassid).

1C-s on stringidega töötamise võimalus programmeeritud platvormi enda sisse. Täna vaatleme sisseehitatud 1C keele programmides 1C stringidega töötamise funktsioone.

Rea väärtus 1C

1. Alustame kõige lihtsamast. Muutuja loomine ja sellele püsiva stringi väärtuse määramine näeb 1C-s välja järgmine:

Muutuja = "Tere, maailm!";

Kui peate konstantses 1C stringiväärtuses määrama jutumärgi, peate selle kahekordistama ""

Muutuja = "Tere, maailm"!;

2. Reavahetust 1C saab määrata korraga kahel viisil. Esimene kasutab sümbolit |

Muutuja = "Tere!
| maailm! ";

Teine on sümbolite süsteemi loenduse kasutamine. See võimaldab teil lisada nii 1C reavahetusi kui ka muid mitteprinditavaid märke, näiteks TAB.

Muutuja = "Tere" + Symbols.PS + "rahu!";

3. 1C konfiguratsioone saab arendada mitte ainult ühe keele (vene, inglise või muu) jaoks, vaid samaaegselt mitme keele jaoks. Sel juhul valitakse 1C akna allosas praegu kasutatav keel.

Keelte loend asub konfiguratsiooniaknas jaotises Üldine/Keeled. Igal keelel on lühike identifikaator, näiteks ru või ing.

On selge, et sellise konfiguratsiooni programmeerimisel võivad 1C read olla ka mitmekeelsed. Selleks on võimalik luua selline 1C rida, määrates läbi; valikud keeleidentifikaatori järgi:

Muutuja = "ru=""Tere, maailm! ""; et=""Tere, maailm! """;

Kui kasutate sellisel viisil moodustatud rida 1C nagu tavaliselt, siis on see see, mis selles on kirjutatud. Selleks, et süsteem jagaks selle kaheks valikuks ja kasutaks soovitud, peate kasutama funktsiooni НStr():

//kakskeelsete konfiguratsioonide jaoks õige
Aruanne(NStr(Muutuja));

Rekvisiidid joonetüübiga 1C

Atribuut on väli 1C kataloogis/dokumendis. See erineb 1C-keeles programmi muutujast selle poolest, et atribuudi jaoks on selle tüüp täpselt märgitud (number, 1C string jne). Kui teil on vaja värskendada oma mälu selle kohta, mis on rekvisiit, vaadake õppetundi.

Kui määrate atribuudi tüübi - rida 1C, peate lisaks määrama parameetrid.

1C read on piiramatu pikkusega (tähistatud kui pikkus = 0) ja piiratud pikkusega, mis näitavad täpset märkide arvu. Piiramatu pikkusega 1C read salvestatakse eraldi SQL-i tabelis, nii et nende kasutamine on vähem produktiivne kui piiratud.

Seetõttu on piiramatu pikkusega 1C stringide kasutamisel omad piirangud – neid pole võimalik igal pool kasutada. Näiteks ei ole see lubatud dokumendi numbri, viitekoodi või mõõtmisena.

1C keelpillidega töötamine

Stringidega töötamiseks on platvormil 1C mitu sisseehitatud funktsiooni.

  • AbbrLP ("Uskumatu, kuid tõsi!")
    Eemaldab 1C realt lisatühikud. Saab kasutada ka mis tahes tüüpide teisendamiseks 1C stringiks (näiteks numbrid).
  • Muutuja = "Vasya" + AbbrLP(" pluss") + "Olya"; //tuleb "Vasya plus Olya"
    Näide mitme 1C stringi väärtuse summeerimisest. Tulemuseks on üks rida 1C.
  • Muutuja = Lev("Muusika", 2); //saab "Mu"
    Muutuja = Keskmine ("Muusika", 2, 2); //tuleb "oht"
    Muutuja = Õigused("Muusika", 2); //seal on "ka"
    Erinevad võimalused alamstringi saamiseks 1C stringist.
  • Muutuja = Find("Muusika", "zy"); //tuleb 3
    Otsige stringist 1C alamstringi, alustades märgist 1.
  • Muutuja = StrLength("Muusika"); //tuleb 6
    Tagastab 1C rea märkide arvu.
  • Report("Tere") //1C akna allosas olevas sõnumiaknas
    Alert("Tere") //hüpikdialoog
    Status("Tere") //vasakul allosas oleku kuva real
    .

Objektide toomine reale 1C

Nagu teate, on praegu kõige populaarsem vorming struktureeritud teabe vahetamiseks XML. Isegi MS Office Wordi ja Exceli uusim versioon salvestab failid selles vormingus (vastavalt docx ja xlsx, muuda laiendiks zip, avatakse arhiivis).

Andmevahetuse platvorm 1C pakub mitmeid võimalusi, millest peamine on ka XML.

1. Lihtsaim meetod on kasutada funktsiooni Abreviation() või String(). Päringu kehas saate kasutada funktsiooni REPRESENTATION(). Nende tegevuse tulemus on sama - nad genereerivad kasutaja jaoks mis tahes 1C objekti stringi.

Kataloogi puhul on see vaikimisi selle nimi. Dokumendi puhul – dokumendi nimi, number ja kuupäev.

2. Iga 1C objekti (piirangutega) saab teisendada XML-i ja vastupidi. Konversiooniprotsessi nimetatakse serialiseerimiseks.

StringViewXml = XMLString(Väärtus); //hankige 1C väärtusest XML
Väärtus1C = XMLVväärtus(Tüüp("Kataloogilink.Nomenklatuur"),TypeStringXml); //hankige XML-stringist 1C väärtus, peate määrama vastuvõetava 1C tüübi

3. 1C platvormil on oma viis mis tahes 1C objekti stringiks teisendamiseks. See viidi üle versioonist 1C 7.7. Seda vormingut teised programmid ei mõista, kuid teised 1C saavad sellest aru, mis muudab selle kasutamise 1C andmebaaside vaheliseks vahetamiseks lihtsaks.

Rida = ValueInRowInt(Väärtus1C); //hankige string 1C väärtusest 1C
ValueVFile("C:\MinuFail.txt", Väärtus1C); //veel üks võimalus, saame 1C väärtusest salvestatud stringiga faili
Väärtus1C = ValueFromStringInt(String); //realt 1C tagasi
Väärtus1C = ValueFile("C:\MinuFail.txt"); //failist tagasi

1C ridade redigeerimine vormil

Lisaks 1C-keeles programmis 1C stringidega töötamisele sooviksin loomulikult, et kasutaja saaks neid redigeerida. Selleks on mitu võimalust:

1. Lihtsaim viis on nõudmisel taotleda 1C liini sisestamist. Seda meetodit kasutatakse 1C programmeerimise õpetamisel elus palju harvemini (aga seda kasutatakse!).

Muutuja = "";
Rida = EnterValue(Muutuja, "Sisesta täisnimi");

2. 1C objekti (kataloog/dokument) või vormi üksikasjade (vt) kuvamiseks kasutatakse kõige sagedamini sisestusvälja. See on 1C-s kõige levinum tööriist, mille abil kasutaja saab redigeerimisväljadega töötada.

3. Sisestusvälja võimalusi saab laiendada (vt sisestusvälja omadusi, paremklõps sellel, täpsemalt):

  • Märkeruut Mitmerealine redigeerimisrežiim
  • Täpsem redigeerimise märkeruut (saadaval, kui eelmine ruut on märgitud)
  • Märkeruut Paroolirežiim (vt).

4. Kui kõigist sisestusvälja võimalustest teile ei piisa, on sisseehitatud redaktor. Selle lisamiseks vormile tuleb menüüsse Vorm/Insert Control lisada Tekstdokumendi väli. Selle atribuutides saate määrata selle töörežiimi – atribuudi Laiendus.

Tekstidokumendi välja ei saa andmetega otse seostada. Vormi sündmuste töötlejasse OnOpen() on vaja kirjutada funktsioon (vt:

Vormi elemendid.ElemendiNimiTekstDokumendiväli.SetText(StringValue); //siin ValueString on tekst, mis on saadud näiteks atribuudist

Ja salvestamise töötlejasse - näiteks nuppu Salvesta - lisage salvestus:

ValueString = VormElements.ElementNameTextDocumentField.GetText(); //Väärtus Siin on atribuut, kuhu me väärtuse salvestame

5. 1C versioonis 8.2.11 on hallatavates vormides ilmunud uus valik 1C rea esitamiseks - väli Vormindatud dokument.


Sarnaselt tekstidokumendi väljaga tuleb see avamisel määrata ja ise programmi abil salvestades üles kirjutada.

  • 1C objektis, mille vormi loome (kataloog, dokument, töötlemine jne) - lisage atribuut väärtuse salvestustüübiga
  • Funktsioonis OnReadOnServer() määrame teksti atribuudist

    //siin on atribuut 1C objekti lisatud atribuut
    //siin FormattedDocument on redigeerimiseks vajaliku välja nimi vormil
    &Serveris

    FormattedDocument = CurrentObject.Attributes.Get();
    Lõppprotseduur

  • Funktsioonis BeforeWritingOnServer() või nuppu kasutades kirjutame väljalt teksti

    &Serveris
    Protseduur serveri lugemisel (praegune objekt)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Lõppprotseduur

1C päringutes stringidega töötamiseks on vähe mehhanisme. Esiteks saab ridu lisada. Teiseks võite stringist võtta alamstringi. Kolmandaks saab stringe võrrelda, sealhulgas mustri järgi. See on ilmselt kõik, mida saab paeltega teha.

Stringi lisamine

Päringu ridade lisamiseks kasutatakse toimingut "+". Saate lisada ainult piiratud pikkusega stringe.

SELECT "Nimi: " + Vastaspooled, 1. veerg Vastaspooled, KUS Vastaspooled = &Link

Alamstringi funktsioon

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

Funktsiooni Environment() analoog objektimudelist. Funktsiooni Substring() saab rakendada stringiandmetele ja see võimaldab valida fragmenti <Строки> , alustades tähemärgi numbriga <НачальнаяПозиция> (märgid reas nummerdatakse alates 1) ja pikkus <Длина> tegelased. Funktsiooni arvutuse tulemus on muutuva pikkusega stringi tüüpi ja pikkust loetakse piiramatuks, kui <Строка> sellel on piiramatu pikkus ja parameeter <Длина> ei ole konstant ega suurem kui 1024.

Kui stringi pikkus on väiksem kui teises parameetris määratud, tagastab funktsioon tühja stringi.

Tähelepanu! Funktsiooni SUBSTRING() kasutamine piiramatu pikkusega stringide teisendamiseks piiratud pikkusega stringideks ei ole soovitatav. Selle asemel on parem kasutada cast-operaatorit EXPRESS().

Funktsioon sarnane

Kui peame veenduma, et stringi atribuut vastab teatud kriteeriumidele, võrdleme seda:

SELECT vastaspooled Nimetus AS Veerg 1 Vastaspooled KUS Vastaspooled = "Gazprom".

Aga mis siis, kui vajate peenemat võrdlust? Mitte ainult võrdsus või ebavõrdsus, vaid sarnasus teatud mustriga? Täpselt selleks loodi funktsioon SAMASUGUNE.

LIKE – operaator stringi mustriga sarnasuse kontrollimiseks. LIKE analoog SQL-is.

Operaator SARNANE võimaldab võrrelda sellest vasakul määratud avaldise väärtust paremal määratud mustri stringiga. Avaldise väärtus peab olema stringi tüüpi. Kui avaldise väärtus ühtib mustriga, on operaatori tulemus TRUE, vastasel juhul on see FALSE.

Järgmised tähemärgid mallistringis on teenindusmärgid ja nende tähendus erineb stringi märgist.

  • % (protsent): jada, mis sisaldab suvalist arvu suvalisi märke;
  • _ (alakriips): üks suvaline märk;
  • […] (üks või mitu märki nurksulgudes): mis tahes üksik märk, mis on loetletud nurksulgudes. Loend võib sisaldada vahemikke, näiteks a-z, mis tähendab vahemikku kaasatud suvalist märki, sealhulgas vahemiku lõppu;
  • [^...] (nurksulgudes eitusmärk, millele järgneb üks või mitu märki): mis tahes üksik märk, välja arvatud need, mis on loetletud eitusmärgi järel.

Iga teine ​​sümbol tähistab iseennast ega kanna lisakoormust. Kui üks loetletud tähemärkidest tuleb kirjutada iseendana, tuleb sellele eelneda<Спецсимвол>. mina ise<Спецсимвол>(mis tahes sobiv märk) on määratletud samas lauses pärast märksõna ERIMÄRK.

Rakendatud versioonis 8.3.6.1977.

Oleme laiendanud stringidega töötamiseks mõeldud funktsioonide komplekti. Tegime seda selleks, et pakkuda teile stringiandmete sõelumiseks täpsemaid tööriistu. Uued funktsioonid on mugavad ja kasulikud tekstianalüüsi tehnoloogilistes ülesannetes. Vormindatud andmeid sisaldava teksti sõelumisega seotud ülesannetes. See võib olla mõne seadmest saadud failide analüüs või näiteks tehnoloogilise logi analüüs.

Sa võisid enne teha kõiki toiminguid, mis täidavad uusi funktsioone. Sisseehitatud keeles kirjutatud enam-vähem keerukate algoritmide kasutamine. Seetõttu ei anna uued funktsioonid teile põhimõtteliselt uusi võimalusi. Küll aga võimaldavad need koodi hulka vähendada ning muuta koodi lihtsamaks ja arusaadavamaks. Lisaks võimaldavad need toimingute täitmist kiirendada. Sest platvormil realiseeritud funktsioonid töötavad loomulikult kiiremini kui sarnane sisseehitatud keeles kirjutatud algoritm.

Vormindamisfunktsioon StrTemplate()

See funktsioon asendab parameetrid stringiks. Sellise teisenduse vajadus tekib sageli näiteks hoiatusteadete kuvamisel. Selle funktsiooni süntaks on järgmine:

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

<Шаблон>- see on string, millesse peate parameetrite esitused asendama.

<Значение1> , ... <Значение10>- need on parameetrid (maksimaalselt kümme), mille esitused tuleb stringi asendada.

Mallis kindla koha märkimiseks, kus soovite asendust teha, peate kasutama markereid nagu %1, ...%10. Malli kaasatud markerite arv ja väärtusi sisaldavate parameetrite arv peavad ühtima.

Näiteks sellise operaatori käivitamise tulemus:

seal tuleb rida:

Andmete viga real 2 (nõutav on kuupäeva tüüp)

Stringidega töötamise funktsioon StrCompare()

See funktsioon võrdleb kahte stringi tõstutundlikul viisil. Näiteks nii:

Saate sama toimingu teha varem, kasutades väärtuste võrdlusobjekti:

Uue funktsiooni kasutamine tundub aga lihtsam. Ja lisaks sellele töötab funktsioon erinevalt väärtuste võrdlusobjektist nii õhukeses kliendis kui ka veebikliendis.

Stringidega töötamise funktsioonid StrStartsWith(), StrEndsAt()

Need funktsioonid määravad, kas string algab määratud alamstringiga või kas string lõpeb määratud alamstringiga. Nende funktsioonide algoritmi pole manustatud keeles keeruline rakendada, kuid nende olemasolu võimaldab kirjutada puhtamat ja arusaadavamat koodi. Ja nad töötavad kiiremini.

Näiteks on neid mugav kasutada If-lauses:

Stringidega töötamise funktsioonid StrDivide(), StrConnect()

Need funktsioonid jagavad stringi osadeks, kasutades selleks määratud eraldajat. Või vastupidi, nad ühendavad mitu rida üheks, sisestades nende vahele valitud eraldaja. Need on mugavad logide ja tehnoloogiliste ajakirjade koostamiseks või analüüsimiseks. Näiteks saate hõlpsalt sõeluda tehnoloogilise logi kirje edasiseks analüüsiks sobivateks osadeks:

Stringidega töötamise funktsioon StrFind()

Vana funktsiooni Find() asemel oleme juurutanud uue funktsiooni, millel on lisavõimalused:

  • Otsige erinevates suundades (algusest, lõpust);
  • Otsige määratud kohast;
  • Otsige esinemist määratud numbriga (teine, kolmas jne).

Tegelikult dubleerib see vana funktsiooni võimalusi. Seda tehakse selleks, et säilitada ühilduvus vanemates versioonides koostatud moodulitega. Soovitatav on vana funktsiooni Find() enam mitte kasutada.

Allpool on näide uute otsinguvõimaluste kasutamisest. Pöördotsing on kasulik, kui vajate formaliseeritud stringi viimast osa, näiteks URL-is faili täisnime. Ja määratud asukohast otsimine aitab juhtudel, kui peate otsima teadaolevast fragmendist, mitte kogu reast.

1. OSA. MEETODID (26).

1.1. Põhimeetodid (10). Sõltumatud, üles ehitatud oma lihtsatele algoritmidele.

Page_Add() (parem-vasak liitmine määratud tähemärkidega).

Page_Inverse () (inversioon - märgid paremalt vasakule).

Page_Codes() (märgikoodid kuni "," ja massiiv koodidega)

Page_Characters() (koodijada, mis on eraldatud tähega "," või koodidega massiivist)

Page_ReplaceSymbols() (mõnede märkide asendamine teistega).

String_FromArray() (string fragmentide massiivist, mis on eraldatud eraldajaga)

Page_FindIn() (otsige alamstringi (kaasa arvatud paremal) määratud esinemisnumbriga).

Page_FindGr() (Otsige määratud märgikomplekti kuuluvate märkide rühma)

Page_FindNumber() (Otsige numbrit, sealhulgas paremalt määratud esinemisnumbriga)

Page_Interpret() (massiiviks, vastavalt kehtestatud süntaksile)

1.2. Tuletismeetodid (12). Tegelikult on see nelja üldistatud algoritmimeetodi kasutamine (vt 2. osa)

Page_Number() (rea algusest ja lõpust, ärge "kartke" mittenumbrilisi märke.

Page_Find() (otsige alamstringi (kaasa arvatud tõstutundlik ja paremal) määratud esinemisnumbriga).

Page_Replace() (otsing (sealhulgas tõstutundlikud ja paremakäelised) ja asendaja eraldaja alamstringid).

Str_Piece() (stringi tükk eraldaja määratud esinemiskordade vahel (vasak või parem)).

Page_ReplacePiece() (asendab lähtestringis oleva "tüki" määratud stringiga).

Lehekülg_ВArray() (eraldaja määratud esinemiskordade vahel (kaasa arvatud need, mis asuvad paremal ja ilma tähtedeta).

Page_TransferBySyllables() (jagatud alamstringideks “Hardly”, sidekriipsuga).

Page_MoveByWords() (jagatud alamstringideks "Softly")

Page_Cut() ("Lõika" määratud pikkusega alamstringideks)

Str_Shorten() (asenda vasakpoolne lühendatud märkide rühm asendusstringiga

Page_Abbreviation() (asendage õige rühm "vähendatud" märke "asendusstringiga"

Str_ShortenS() (asenda "lühendatud" märkide rühma keskel "asendusstringiga"

Page_Extend (laiendus määratud pikkuseni, suurendades määratud märkide arvu)

1.3. Üksikasjalikud meetodid (3). Rea "lahkamine" koos ülekandega üksikasjaliku teabega tabelisse.

Page_vTableIn() (tabelisse vastavalt pesastatud eraldajate süsteemile).

Page_vTableGr (tabeli juurde mitmetasandilise filtri järgi).

Page_inTableNumbers (tabelis, kus on numbrid ja fragmendid nende vahel).

2. OSA. ÜLDMEETODID-ALGORIMID (3).

Page_Occurrence() (meetodid "Otsi" ja "Asenda").

Page_Fragments() (meetodid “Piece”,”ReplacePiece,”InArray”,”inTableIn”).

Page_Abcr() (meetodid "AbcrL", "AbcrP", "AbcrS", "Laienda".

Page_Split() (meetodid "Liiguta silpide järgi", "Liiguta sõnade järgi", "Lõika").

3. OSA. UNIVERSAALFUNKTSIOON.

See on omamoodi tingimuslik programmeerimisliides, mis võimaldab

rakendage stringile korraga mitut meetodit. Rakendatud kui

funktsioonid seitsme parameetriga ("Demo" on üles ehitatud sellele funktsioonile):

Lehekülg_(Meetodid, alammeetodid, sisend, parameeter1, parameeter2, pikkus_arvu_positsioon, lisaväljund)

Valikud:

- "Meetodid" - mitu "kombineeritud" ja (või) üks "eksklusiivne" meetod

(ühekohalised koodid või nimed, võimalikud "," kaudu)

- "Alammeetodid" - mitu "kombineeritud" ja (või) "eksklusiivset" valikut

„eksklusiivne” meetod (ühekohalised koodid või nimed);

- "Sisend" – string, massiiv või väärtuste tabel;

- "Param1" - otsingustring, asendused, eraldajad, filtrid;

- "Param2" - asendusstring või -märgid;

- "Pikkus_Number_Position" -Arv, numbrid eraldaja või numbritega massiivi kaudu;

- "Lisaväljund" – arv või string või massiiv või väärtuste tabel;

Alammeetodite nimed ja/või ühekohalised koodid, samuti numbrid

(Length_Number_Position) võib olla igal juhul ja eraldatud

mis tahes järgmistest eraldajatest: ”, :;”.

4. OSA. MÕNED NÄITED.

There areNumbersInLine=(Str_FindNumber(InLine)<>Määratlemata);

Real on numbreid = (String_FindGr(Inline,"+0123456789")>0);

Seal on ladina keel = (Str_FindGr(InStr, Str_Interpret("lL"))>0);

Seal on määratud märgid = (Str_NfindGr(VxStr, "+to rogYu.0p9")>0);

IsNotPrinted=(Str_FindGr(InxStr, Line_Interpret("-l-L-r-R-P-Z-C"))>0);

5. OSA. KOKKUVÕTE.

Võimaluse korral leppisin ühe möödasõiduga mööda joont. Teine läbimine toimub tavaliselt fragmentidena. Ma ei kasutanud sisseehitatud funktsiooni StrNumberOccurrences().

Kasutatakse sisseehitatud funktsioone: Left(), Right(), Middle(), StrLength()

- (positsioneerimine ja reast osa saamine peab olema “kiire”).

Stringi tüüpi leidub kõigis programmeerimiskeeltes. See on primitiivne ja 1C-s on sellega töötamiseks palju funktsioone. Selles artiklis vaatleme näidete abil üksikasjalikult erinevaid stringitüüpidega töötamise viise 1C 8.3 ja 8.2 puhul.

Liin

Mis tahes tüüpi muutuja stringiks teisendamiseks on olemas samanimeline funktsioon "String()". Sisendparameetriks saab muutuja ise, mille stringi esitus tuleb hankida.

String(False) // tagastab "Ei"
String(12345) // tagastab "12 345"
String(praegune kuupäev()) //"07/21/2017 11:55:36"

Stringiks on võimalik teisendada mitte ainult primitiivseid tüüpe, vaid ka muid, näiteks kataloogide ja dokumentide elemente.

SokrLP, SokrL, SokrP

Nende funktsioonide sisendparameetrid on stringi tüüpi muutujad. Funktsioonid eemaldavad ebaolulised märgid (tühikud, käru tagastus jne): vastavalt vasakult ja paremalt, ainult vasakult ja ainult paremalt.

Lühend(" Tühikud eemaldatakse mõlemalt poolt ") // "Tühikud mõlemalt poolt eemaldatakse"
Lühend(" Tühikud mõlemalt küljelt eemaldatakse ") // " Vasakul olevad tühikud eemaldatakse "
Lühend(" Tühikud mõlemalt küljelt eemaldatakse ") // " Parempoolsed tühikud eemaldatakse"

Lõvi, õige, keskmine

Need funktsioonid võimaldavad teil osa stringist kärpida. Funktsioon "Left()" tagastab määratud pikkusega stringi osa selle vasakult küljelt. Funktsioon "Right()" on sarnane, kuid kärbib paremalt. Funktsioon “Avg()” võimaldab määrata märgi numbri, millest rida valitakse, ja selle pikkuse.

Lev("String muutuja", 4) // tagastab "Str"
Right("String muutuja", 7) // tagastab "muutuja"
Medium ("String muutuja", 2, 5) // tagastab "troco"

Tugevus

Funktsioon määrab stringimuutujas sisalduvate märkide arvu.

StrLength("Word") // täitmise tulemuseks on number 5

Otsi

Funktsioon võimaldab stringimuutujas stringi osa otsida. Tagastusväärtus on arv, mis näitab leitud stringi alguse asukohta. Kui vastet ei leita, tagastatakse null.

Pange tähele, et otsing on tõstutundlik. Kui algses stringis esineb rohkem kui üks otsingu alamstring, tagastab funktsioon esimese esinemise alguse.

Funktsioon Find("üks, kaks, üks, kaks, kolm", "kaks") // tagastab numbri 6

Tühi rida

Selle funktsiooni kasutamine võimaldab teil määrata, kas string on tühi. Väiksemaid märke, nagu tühik, käru tagastus ja muud, ei võeta arvesse.

Funktsioon EmptyString("Pupkin Vassili Ivanovitš") // tagastab väärtuse False
Funktsioon EmptyString(" ") // tagastab väärtuse True

VReg, NReg, TReg

Need funktsioonid on stringimuutujate võrdlemisel ja teisendamisel väga kasulikud. "Vreg()" tagastab algse stringi suurtähtedega, "HPreg()" väiketähtedega ja "TReg()" vormistab selle nii, et iga üksiku sõna esimene märk kirjutatakse suurtähtedega ja kõik järgnevad märgid on suurtähtedega.

VReg("GENERAL DIRECTOR") // tagastab väärtuse - "CEO DIRECTOR"
NReg(“CEO DIRECTOR”) // tagastusväärtus – “CEO”
TREG ("TEGEVUDIREKTOR") // tagastatav väärtus – "peadirektor"

Lehekülje asendamine

See funktsioon on analoogne tekstiredaktorite asendamisega. See võimaldab stringimuutujates asendada ühe märgi või märgikomplekti teisega.

StrReplace("punane, valge, kollane", ","", ";") // tagastab "punase; valge; kollane"

StrNumberLines

Funktsioon võimaldab määrata tekstimuutujas käru tagastustega eraldatud ridade arvu.

Alloleva näite tsükkel läbib kolm ringi, kuna funktsioon LineNumberRow tagastab väärtuse 3:

Ind = 1 stringide arvu järgi ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") tsükkel
<тело цикла>
EndCycle;

StrGetString

See funktsioon töötab mitmerealise tekstiga samamoodi nagu eelmine. See võimaldab teil saada tekstimuutujast konkreetse stringi.

StrGetString("String1" + märgid.PS + "string2" + märgid.PS + "string3", 2) // tagastab "String2"

PageNumberOccurrences

Funktsioon loendab märgi või alamstringi esinemiste arvu otsingustringis.

StrNumberAttachments("a;b;c;d; ", ";") // funktsioon tagastab numbri 4

Sümbol ja sümbolkood

Need funktsioonid võimaldavad teil saada märgi selle koodi järgi Unicode'i kodeeringus, samuti määrata selle koodi märgi enda järgi.

Funktsioon SymbolCode("A") // tagastab arvu 1040
CharacterCode(1040) // funktsioon tagastab "A"

Levinud ülesanded stringidega töötamisel

Stringide ühendamine

Mitme stringi ühendamiseks (konkateneerimise teostamiseks) piisab liitmisoperaatori kasutamisest.

"Line 1" + "Line 2" //kahe rea lisamise tulemuseks on "Line 1 Line 2"

Tüüp Konversioon

Tüübi stringiks teisendamiseks, näiteks link kataloogielemendile, numbrile vms, piisab funktsiooni “String()” kasutamisest. Funktsioonid nagu "ScrLP()" teisendavad muutujad samuti stringiks, kuid koheselt katkestades ebaolulised märgid.

String(1000) // tagastab "1000"

Pange tähele, et arvu stringiks teisendamisel lisas programm automaatselt tuhandeid eraldava tühiku. Selle vältimiseks võite kasutada järgmisi konstruktsioone:

StrReplace(String(1000),Märgid.NPP,"") // tagastab "1000"

String(Format(1000,"HG=")) // tagastab "1000"

Tsitaadid stringis

Üsna sageli peate tegelema vajadusega määrata stringimuutujas jutumärgid. See võib olla kas konfiguraatoris kirjutatud päringu tekst või lihtsalt muutuja. Selle probleemi lahendamiseks peate lihtsalt määrama kaks jutumärki.

Header = String("Horns and Hooves LLC – see oleme meie!") // tagastab "Horns and Hooves LLC - see oleme meie!"

Mitmerealine, reavahetus

Mitmerealise teksti loomiseks lisage sellele lihtsalt reavahetused (Symbols.PS).

MultilineText = "Esimene rida" + Sümbolid.PS + "Teine rida"

Kuidas tühikuid eemaldada

Paremal või vasakul asuvate tühikute eemaldamiseks võite kasutada funktsiooni "ScrAP()" (aga ka "ScrL()" ja "ScrP()"):

StringNoSpaces = Lühend (" Paljud tähed ") // funktsioon tagastab väärtuse "Palju tähti"

Kui pärast arvu stringiks teisendamist peate eemaldama katkematud tühikud, kasutage järgmist konstruktsiooni:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // tagastab "99999"

Programmeerijad kasutavad sageli ka järgmist konstruktsiooni, mis võimaldab teil tekstimuutujas kõik tühikud eemaldada või mõne muu märgiga asendada:

StringNoSpaces = StrReplace("tere","") // tagastab "tere"

Stringide võrdlemine omavahel

Termineid saab võrrelda tavalise võrdusmärgiga. Võrdlus on tõstutundlik.

"Tere" = "tere" // tagastab Väär
"Tere" = "Tere" // tagastab Tõene
"Tere" = "Hüvasti" // tagastab vale