Új funkciók a karakterláncokkal való munkához. Új funkciók az 1c karakterláncokkal való munkavégzéshez

Jegyzetek a szemüvegen keresztül

2014.08.18. Új funkciók a karakterláncokkal való munkához

Megvalósítva a 8.3.6.1977 verzióban.

Bővítettük a karakterláncokkal való együttműködésre tervezett függvények körét. Ezt annak érdekében tettük, hogy fejlettebb eszközöket biztosítsunk a karakterlánc-adatok elemzéséhez. Az új funkciók kényelmesek és hasznosak lesznek a szövegelemzés technológiai feladataiban. A formázott formában adatokat tartalmazó szöveg elemzésével kapcsolatos feladatokban. Ez lehet a berendezéstől kapott egyes fájlok elemzése, vagy például egy technológiai napló elemzése.

Minden olyan műveletet végrehajthat, amely korábban új funkciókat hajt végre. Beépített nyelven írt többé-kevésbé bonyolult algoritmusok használata. Ezért az új funkciók nem adnak alapvetően új képességeket. Lehetővé teszik azonban a kód mennyiségének csökkentését, valamint egyszerűbbé és érthetőbbé teszik a kódot. Ezenkívül lehetővé teszik a műveletek végrehajtásának felgyorsítását. Mert a platformban megvalósított funkciók természetesen gyorsabban működnek, mint egy hasonló, beépített nyelven írt algoritmus.

Formázási függvény StrTemplate()

Ez a függvény a paramétereket karakterláncba helyettesíti. Ilyen átalakítás szükségessége gyakran felmerül, például figyelmeztető üzenetek megjelenítésekor. Ennek a függvénynek a szintaxisa a következő:

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

<Шаблон>- ez az a karakterlánc, amelybe be kell cserélni a paraméterreprezentációkat.

<Значение1> , ... <Значение10>- ezek olyan paraméterek (maximum tíz), amelyek reprezentációit be kell cserélni a karakterláncba.

Ahhoz, hogy a sablonban egy adott helyet jelezzen, ahol a helyettesítést el kívánja végezni, olyan jelölőket kell használnia, mint a %1, ... %10. A sablonban szereplő markerek számának és az értékeket tartalmazó paraméterek számának meg kell egyeznie.

Például egy ilyen operátor végrehajtásának eredménye:

lesz egy sor:

Adathiba a 2. sorban (dátumtípus szükséges)

StrCompare() karakterláncokkal való munkavégzésre szolgáló függvény

Ez a függvény két karakterláncot hasonlít össze a kis- és nagybetűk megkülönböztetése nélkül. Például így:

Ugyanezt a műveletet korábban is végrehajthatja az objektum használatával Értékek összehasonlítása:

Az új funkció használata azonban egyszerűbbnek tűnik. És ezen kívül egy függvény, szemben egy objektummal Értékek összehasonlítása, vékony kliensben és webkliensben is működik.

Függvények a StrStartsWith(), StrEndsAt() karakterláncokkal való munkához

Ezek a függvények határozzák meg, hogy egy karakterlánc egy megadott részkarakterlánccal kezdődik-e, vagy egy karakterlánc egy megadott részkarakterlánccal végződjön. Ezeknek a függvényeknek az algoritmusát nem nehéz beágyazott nyelven megvalósítani, de jelenlétük lehetővé teszi, hogy tisztább és érthetőbb kódokat írjunk. És gyorsabban dolgoznak.

Például kényelmes használni őket az operátorban Ha:

StrDivide(), StrConnect() karakterláncokkal való munkavégzésre szolgáló függvények

Ezek a függvények egy karakterláncot részekre osztanak egy meghatározott határoló használatával. Vagy fordítva, több sort egyesítenek egybe, beillesztve közéjük a kiválasztott elválasztót. Kényelmesek naplók és technológiai naplók létrehozásához vagy elemzéséhez. Például egy technológiai naplóbejegyzést egyszerűen elemezhet további elemzésre alkalmas részekre:

StrFind() karakterláncokkal való munkavégzésre szolgáló függvény

A régi funkció helyett Megtalálja()Új funkciót vezettünk be, amely további képességekkel rendelkezik:

  • Keresés különböző irányokba (az elejétől, a végétől);
  • Keresés egy megadott pozícióból;
  • Meghatározott számú előfordulás keresése (második, harmadik stb.).

Valójában megismétli a régi funkció képességeit. Ez a régebbi verziókban lefordított modulokkal való kompatibilitás fenntartása érdekében történik. Régi funkció Megtalálja() Nem ajánlott újra használni.

Az alábbiakban egy példa látható az új keresési lehetőségek használatára. A fordított keresés akkor hasznos, ha egy formalizált karakterlánc utolsó töredékére van szüksége, például egy URL-ben a teljes fájlnévre. És a megadott pozícióból történő keresés segít azokban az esetekben, amikor egy ismert töredékben kell keresni, és nem a teljes sorban.

Megvalósítva a 8.3.6.1977 verzióban.

Bővítettük a karakterláncokkal való együttműködésre tervezett függvények körét. Ezt annak érdekében tettük, hogy fejlettebb eszközöket biztosítsunk a karakterlánc-adatok elemzéséhez. Az új funkciók kényelmesek és hasznosak lesznek a szövegelemzés technológiai feladataiban. A formázott formában adatokat tartalmazó szöveg elemzésével kapcsolatos feladatokban. Ez lehet a berendezéstől kapott egyes fájlok elemzése, vagy például egy technológiai napló elemzése.

Minden olyan műveletet végrehajthat, amely korábban új funkciókat hajt végre. Beépített nyelven írt többé-kevésbé bonyolult algoritmusok használata. Ezért az új funkciók nem adnak alapvetően új képességeket. Lehetővé teszik azonban a kód mennyiségének csökkentését, valamint egyszerűbbé és érthetőbbé teszik a kódot. Ezenkívül lehetővé teszik a műveletek végrehajtásának felgyorsítását. Mert a platformban megvalósított funkciók természetesen gyorsabban működnek, mint egy hasonló, beépített nyelven írt algoritmus.

Formázási függvény StrTemplate()

Ez a függvény a paramétereket karakterláncba helyettesíti. Ilyen átalakítás szükségessége gyakran felmerül, például figyelmeztető üzenetek megjelenítésekor. Ennek a függvénynek a szintaxisa a következő:

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

<Шаблон>- ez az a karakterlánc, amelybe be kell cserélni a paraméterreprezentációkat.

<Значение1> , ... <Значение10>- ezek olyan paraméterek (maximum tíz), amelyek reprezentációit be kell cserélni a karakterláncba.

Ahhoz, hogy a sablonban egy adott helyet jelezzen, ahol a helyettesítést el kívánja végezni, olyan jelölőket kell használnia, mint a %1, ... %10. A sablonban szereplő markerek számának és az értékeket tartalmazó paraméterek számának meg kell egyeznie.

Például egy ilyen operátor végrehajtásának eredménye:

lesz egy sor:

Adathiba a 2. sorban (dátumtípus szükséges)

StrCompare() karakterláncokkal való munkavégzésre szolgáló függvény

Ez a függvény két karakterláncot hasonlít össze a kis- és nagybetűk megkülönböztetése nélkül. Például így:

Ugyanezt a műveletet korábban is végrehajthatja az Érték-összehasonlítás objektum használatával:

Az új funkció használata azonban egyszerűbbnek tűnik. Ezen túlmenően a funkció az Érték-összehasonlítás objektummal ellentétben vékony kliensben és webes kliensben is működik.

Függvények a StrStartsWith(), StrEndsAt() karakterláncokkal való munkához

Ezek a függvények határozzák meg, hogy egy karakterlánc egy megadott részkarakterlánccal kezdődik-e, vagy egy karakterlánc egy megadott részkarakterlánccal végződjön. Ezeknek a függvényeknek az algoritmusát nem nehéz beágyazott nyelven megvalósítani, de jelenlétük lehetővé teszi, hogy tisztább és érthetőbb kódokat írjunk. És gyorsabban dolgoznak.

Például kényelmesen használhatók az If utasításban:

StrDivide(), StrConnect() karakterláncokkal való munkavégzésre szolgáló függvények

Ezek a függvények egy karakterláncot részekre osztanak egy meghatározott határoló használatával. Vagy fordítva, több sort egyesítenek egybe, beillesztve közéjük a kiválasztott elválasztót. Kényelmesek naplók és technológiai naplók létrehozásához vagy elemzéséhez. Például egy technológiai naplóbejegyzést egyszerűen elemezhet további elemzésre alkalmas részekre:

StrFind() karakterláncokkal való munkavégzésre szolgáló függvény

A régi Find() függvény helyett egy új függvényt implementáltunk, amely további képességekkel rendelkezik:

  • Keresés különböző irányokba (az elejétől, a végétől);
  • Keresés egy megadott pozícióból;
  • Meghatározott számú előfordulás keresése (második, harmadik stb.).

Valójában megismétli a régi funkció képességeit. Ez a régebbi verziókban lefordított modulokkal való kompatibilitás fenntartása érdekében történik. Javasoljuk, hogy többé ne használja a régi Find() függvényt.

Az alábbiakban egy példa látható az új keresési lehetőségek használatára. A fordított keresés akkor hasznos, ha egy formalizált karakterlánc utolsó töredékére van szüksége, például egy URL-ben a teljes fájlnévre. És a megadott pozícióból történő keresés segít azokban az esetekben, amikor egy ismert töredékben kell keresni, és nem a teljes sorban.

Az 1C 8.3 sorai az 1C beépített nyelvben primitív típusú értékeket képviselnek Vonal. Az ilyen típusú értékek tetszőleges hosszúságú Unicode karakterláncot tartalmaznak. A karakterlánc típusú változók idézőjelek közé zárt karakterek halmaza.

Példa 1. Hozzunk létre egy karakterlánc-változót szöveggel.

StringVariable = "Szia világ!";

Függvények karakterláncokkal való munkavégzéshez 1s-ben 8.3

Ez a rész azokat a fő funkciókat tartalmazza, amelyek lehetővé teszik az 1c sorok megváltoztatását, vagy a bennük lévő információk elemzését.

Erősség

Erősség(<Строка>) . A paraméterként átadott karakterláncban található karakterek számát adja vissza.

2. példa. Számoljuk meg a karakterek számát a „Hello world!” sorban.

String = "Helló világ!"; Karakterek száma = StrLength(String); Jelentés(Számkarakterek);

A kód végrehajtásának eredménye a sorban lévő karakterek száma lesz: 11.

AbbrL

AbbrL(<Строка>) . A nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől balra vágja.
Kisebb karakterek:

  • hely;
  • nem törő tér;
  • táblázatosítás;
  • kocsi vissza;
  • soros fordítás;
  • az űrlap (oldal) fordítása.

3. példa: Távolítson el minden szóközt a "világ!" sor bal oldaláról. és add hozzá a „Hello” sort.

String = Rövidítés("világ!"); String = "Hello"+String; Jelentés(karakterlánc);

A kód végrehajtásának eredménye a „Hello world!” sor jelenik meg a képernyőn.

Rövidítve

rövid(<Строка>) . A nem szignifikáns karaktereket levágja a karakterlánc első jelentős karakterétől jobbra.

Példa 4. Űrlap a „Helló” és a „béke!” sorokból. a "Hello világ!"

Line = Rövidítés("Hello ")+" "+ Rövidítés("világ!"); Jelentés(karakterlánc);

AbbrLP

AbbrLP(<Строка>) . Levágja a nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől jobbra, és a nem jelentős karaktereket a karakterlánc első jelentős karakterétől balra. Ezt a funkciót gyakrabban használják, mint az előző kettőt, mivel univerzálisabb.

5. példa: Távolítsa el a jelentéktelen karaktereket a partner nevéből a bal és a jobb oldalon.

Counterparty = Counterparties. Find by Details ("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

egy oroszlán

Egy oroszlán(<Строка>, <ЧислоСимволов>) . Lekéri a karakterlánc első karaktereit, a karakterek száma a paraméterben van megadva Karakterek száma.

6. példa Engedjük be a szerkezetet Munkavállaló tartalmazza az alkalmazott kereszt-, vezeték- és családnevét. Szerezzen be egy karakterláncot vezetéknévvel és kezdőbetűkkel.

NévInitial = Lev(Alkalmazott.Név, 1); Apanév kezdőbetűje = Oroszlán(Alkalmazott. Apanév, 1); FullName = Alkalmazott.Vezetéknév + " " + Keresztnév kezdeti + "." + Középső kezdőbetű + ".";

Jobb

Jobb(<Строка>, <ЧислоСимволов>) . Lekéri egy karakterlánc utolsó karaktereit, a paraméterben megadott számú karaktert Karakterek száma. Ha a megadott számú karakter meghaladja a karakterlánc hosszát, akkor a teljes karakterláncot a rendszer visszaadja.

7. példa: Írjon egy dátumot „ééééhhnn” formátumban egy karakterláncváltozó végére, szerezzen be egy karakterláncot a dátummal, és alakítsa át típussá dátum.

String = "Jelenlegi dátum: 20170910"; StringDate = Jogok(karakterlánc, 8); Date = Date(StringDate);

szerda

Szerda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Lekér egy részkarakterláncot a paraméterként átadott karakterláncból Vonal, attól a karaktertől kezdve, amelynek száma a paraméterben van megadva InitialNumberés a paraméterbe átadott hossz Karakterek száma. A sorban lévő karakterek számozása 1-től kezdődik. Ha a paraméterben InitialNumber nullánál kisebb vagy azzal egyenlő érték van megadva, akkor a paraméter az 1 értéket veszi fel. Ha a paraméter Karakterek száma nincs megadva, akkor a sor végéig tartó karakterek kerülnek kiválasztásra.

Példa 8. Hagyja, hogy a kilencedik pozíciótól induló karakterlánc-változó tartalmazza a régiókódot, ezt kell beszerezni és külön sorba írni.

String = "Régió: 99 Moszkva"; Régió = Átlag(karakterlánc, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Megkeresi a megadott részkarakterláncot egy karakterláncban, és a talált részkarakterlánc első karakterének pozíciószámát adja vissza. Nézzük meg ennek a függvénynek a paramétereit:

  • Vonal. Forrás karakterlánc;
  • Alkarakterlánc keresése. Keresés részstring;
  • Keresési irány. Megadja a karakterláncban lévő részkarakterlánc keresésének irányát. Értékeket vehet fel:
    • Keresési irány. Kezdettől;
    • Search.End Direction;
  • Kezdő pozíció. Megadja azt a pozíciót a karakterláncban, ahol a keresés kezdődik;
  • Előfordulások száma. Megadja a keresett részkarakterlánc előfordulási számát a forráskarakterláncban.

9. példa A „Hello world!” sorban. Határozza meg az "és" karakter utolsó előfordulásának helyét.

PositionNumber = StrFind("Szervusz világ!", "és", SearchDirection.End); Jelentés(Pozíciószám);

A kód végrehajtásának eredményeként megjelenik az „és” szimbólum utolsó előfordulásának száma: 9.

VReg

VReg(<Строка>) . Az 1s8-ban megadott karakterlánc összes karakterét nagybetűvé alakítja.

10. példa: Alakítsa át a "hello world!" karakterláncot. nagybetűsre.

StringVreg = VReg("helló világ!"); Jelentés(StringVreg);

A kód végrehajtásának eredményeként megjelenik a „HELLO WORLD!” sor.

NReg

NReg(<Строка>) . Az 1s8-ban megadott karakterlánc összes karakterét kisbetűvé alakítja.

11. példa: Alakítsa át a "HELLO WORLD!" karakterláncot. kisbetűsre.

StringNreg = NReg("HELLO VILÁG!"); Jelentés(StringVreg);

A kód végrehajtásának eredményeként megjelenik a „hello world!” sor.

Treg

Treg(<Строка>) . A karakterláncot a következőképpen alakítja át: minden szó első karakterét nagybetűvé, a szó többi karakterét kisbetűvé alakítja.

12. példa: Írd nagybetűvel a „hello world!” sorban lévő szavak első betűit.

StringTreg = TReg("helló világ!"); Jelentés(StringTreg);

A kód végrehajtásának eredményeként megjelenik a „Hello World!” sor.

Szimbólum

Szimbólum(<КодСимвола>) . Unicod kódja alapján kap egy karaktert.

13. példa: Adjon hozzá bal és jobb oldalt a „Hello World!” sorhoz. szimbólum ★

StringWithStars = Szimbólum("9733")+"Helló világ!"+Szimbólum("9733"); Jelentés(StringWithStars);

A kód végrehajtásának eredményeként megjelenik a „★ Hello World!★” sor.

Szimbólum kód

SymbolCode(<Строка>, <НомерСимвола>) . A Unicode karakterkódot az első paraméterben megadott karakterláncból kéri le, amely a második paraméterben megadott helyen található.

14. példa: Keresse meg a „Hello World!” sor utolsó karakterének kódját.

String = "Hello World!"; KarakterKód = KarakterKód(karakterlánc, StrLength(String)); Értesítés (Karakterkód);

A kód végrehajtásának eredményeként megjelenik a „!” szimbólumkód. - 33.

Üres sor

Üres sor (<Строка>) . Ellenőrzi, hogy a karakterlánc csak jelentéktelen karakterekből áll-e, azaz üres-e.

15. példa Ellenőrizze, hogy egy három szóközből álló karakterlánc üres-e.

Empty = EmptyString(" "); Jelentés(Üres);

A kód végrehajtásának eredményeként megjelenik az „Igen” szó (egy logikai értékű karakterlánc kifejezés Igaz).

Oldalcsere

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Megkeresi a keresési részkarakterlánc összes előfordulását a forráskarakterláncban, és lecseréli a helyettesítő karakterláncra.

16. példa A „Hello World!” sorban. cserélje ki a „béke” szót a „barátok” szóra.

String = StrReplace("Hello World!", "World", "Barátok"); Jelentés(karakterlánc);

A kód végrehajtásának eredményeként megjelenik a „Hello Friends!” sor.

StrNumberLines

StrNumberRow(<Строка>) . Lehetővé teszi egy többsoros karakterláncban lévő sorok számának megszámlálását. Ha 1s 8-ban új sorra szeretne lépni, használja a szimbólumot PS(újsor karakter).

17. példa Határozza meg a sorok számát a szövegben:
"Első sor
Második sor
Harmadik sor"

Number = StrNumberString("Első sor"+Karakterek.PS +"Második sor"+Szimbólumok.PS +"Harmadik sor"); Jelentés(szám);

A kód végrehajtásának eredménye a sorok számának megjelenítése a szövegben: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . A többsoros karakterláncban lévő sort a száma alapján kapja meg. A sorszámozás 1-től kezdődik.

18. példa: Szerezze be a szöveg utolsó sorát:
"Első sor
Második sor
Harmadik sor"

Szöveg = "Első sor" + Szimbólumok + "Második sor" + Szimbólumok. UtolsóRow = StrGetRow(Szöveg, StrNumberLines(Szöveg)); Jelentés(LastLine);

A kód végrehajtásának eredménye a „Harmadik sor” sor megjelenítése lesz.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . A megadott részkarakterlánc előfordulásának számát adja vissza egy karakterláncban. A funkció megkülönbözteti a kis- és nagybetűket.

19. példa Határozza meg, hogy a „c” betű hányszor jelenik meg a „Lines in 1s 8.3 and 8.2” sorban, a kis- és nagybetűtől függetlenül.

Line = "Sorok az 1s 8.3-ban és 8.2-ben"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Jelentés(Előfordulások száma);

A kód végrehajtásának eredménye az előfordulások számának kijelzése lesz: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Ellenőrzi, hogy az első paraméterben átadott karakterlánc a második paraméterben szereplő karakterlánccal kezdődik-e.

20. példa Határozza meg, hogy a kiválasztott partner TIN-je 1-gyel kezdődik-e. Engedje meg a változót Ügyfél Ügyfelek.

TIN = Partner.TIN; StartsUNits = StrStartsWith(TIN, "1"); If Egységekkel kezdődik Then //Az Ön kódja EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Ellenőrzi, hogy az első paraméterben átadott karakterlánc a második paraméterben lévő karakterláncra végződik-e.

21. példa Határozza meg, hogy a kiválasztott partner TIN-je 2-vel végződjön-e. Engedje meg a változót Ügyfél egy címtárelemre való hivatkozás kerül tárolásra Ügyfelek.

TIN = Partner.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Az Ön kódja EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Egy karakterláncot részekre bont a megadott határoló karakterek használatával, és a kapott karakterláncokat egy tömbbe írja. Az első paraméter a forrás karakterláncot tárolja, a második az elválasztót tartalmazó karakterláncot, a harmadik azt jelzi, hogy kell-e üres karakterláncokat írni a tömbbe (alapértelmezés szerint Igaz).

22. példa. Legyen egy karakterláncunk, amely számokat tartalmaz „;” szimbólummal elválasztva, és kapjunk egy számtömböt a karakterláncból.

Karakterlánc = "1; 2; 3"; Tömb = StrDivide(karakterlánc, ";"); For Count = 0 by Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(Abbr(Tömb[Count])); Kivételtömb[Sch] = 0; EndAttemptsEndCycle;

A végrehajtás eredményeként egy 1-től 3-ig terjedő számokat tartalmazó tömb keletkezik.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Az első paraméterből álló karakterláncok tömbjét olyan karakterláncgá alakítja, amely a tömb összes elemét tartalmazza a második paraméterben megadott határolóval elválasztva.

23. példa. Az előző példa számtömbjének felhasználásával kapja meg az eredeti karakterláncot.

Számla esetén = 0 tömb szerint. Mennyiség() - 1 Ciklus Tömb[Act] = String(Tömb[Művelet]); EndCycle; Sor = StrConnect(tömb, "; ");

Kevés mechanizmus létezik a karakterláncokkal való munkavégzésre az 1C lekérdezésekben. Először is hozzá lehet adni a sorokat. Másodszor, kivehet egy részkarakterláncot egy karakterláncból. Harmadszor, a karakterláncok összehasonlíthatók, beleértve a mintákat is. Valószínűleg ez minden, amit a húrokkal meg lehet tenni.

Húr kiegészítés

Sorok hozzáadásához a lekérdezéshez a „+” műveletet kell használni. Csak korlátozott hosszúságú karakterláncokat adhat hozzá.

SELECT "Név: " + Partnerek név AS 1. oszlop FROM Partnerek AS Counterparts WHERE Partnerek

Substring függvény

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

Az Environment() függvény analógja az objektummodellből. A Substring() függvény karakterláncadatokra alkalmazható, és lehetővé teszi egy töredék kiválasztását <Строки> , kezdve a karakter számával <НачальнаяПозиция> (a sorban lévő karakterek 1-től kezdődően vannak számozva) és hossza <Длина> karakterek. A függvényszámítás eredménye változó hosszúságú karakterlánc típusú, és a hossza korlátlannak számít, ha <Строка> korlátlan hossza és paramétere van <Длина> nem állandó és nem nagyobb, mint 1024.

Ha a karakterlánc hossza kisebb, mint a második paraméterben megadott, akkor a függvény üres karakterláncot ad vissza.

Figyelem! A SUBSTRING() függvény használata a korlátlan hosszúságú karakterláncok korlátozott hosszúságú karakterláncokká alakításához nem ajánlott. Ehelyett jobb az EXPRESS() cast operátort használni.

Funkció hasonló

Ha meg kell győződnünk arról, hogy egy karakterlánc attribútum megfelel bizonyos feltételeknek, összehasonlítjuk:

SELECT Counterparties Name AS 1. oszlop FROM Partnerek AS Counterparts WHERE Partnerek neve = "Gazprom".

De mi van, ha finomabb összehasonlításra van szüksége? Nem csak egyenlőség vagy egyenlőtlenség, hanem egy bizonyos mintához való hasonlóság? A HASONLÓ függvény pontosan erre készült.

LIKE – Operátor egy karakterlánc mintához való hasonlóságának ellenőrzésére. A LIKE analógja SQL-ben.

A HASONLÓ operátor lehetővé teszi a tőle balra megadott kifejezés értékének összehasonlítását a jobb oldalon megadott minta karakterlánccal. A kifejezés értékének string típusúnak kell lennie. Ha a kifejezés értéke megegyezik a mintával, akkor az operátor eredménye TRUE, ellenkező esetben HAMIS.

A sablon karakterláncának következő karakterei szolgáltatáskarakterek, és jelentésük eltér a karakterlánc karakterétől:

  • % (százalék): tetszőleges számú karaktert tartalmazó sorozat;
  • _ (aláhúzás): egy tetszőleges karakter;
  • […] (egy vagy több karakter szögletes zárójelben): bármely, a szögletes zárójelben szereplő karakter. A felsorolás tartalmazhat tartományokat, például a-z, ami egy tetszőleges karaktert jelent a tartományban, beleértve a tartomány végeit is;
  • [^...] (szögletes zárójelben egy tagadójel, amelyet egy vagy több karakter követ): bármely egyedi karakter, kivéve a tagadójel után felsoroltakat.

Minden más szimbólum önmagát jelenti, és nem hordoz semmilyen járulékos terhelést. Ha a felsorolt ​​karakterek közül egyet önmagának kell írni, akkor ezt meg kell előznie<Спецсимвол>. Magamat<Спецсимвол>(bármely megfelelő karakter) ugyanabban az utasításban van definiálva a SPECIAL CHARACTER kulcsszó után.

A karakterlánc az egyik primitív adattípus az 1C:Enterprise 8 rendszerben vonal szöveget tartalmaznak.

Írja be a változó értékeket vonal idézőjelek közé vannak zárva. Több ilyen típusú változó is hozzáadható.

Per1 = "1. szó" ;
Per2 = "2. szó" ;
Per3 = Per1 + " " + Per2;

Végül is Per3 azt fogja jelenteni " Szó 1 Szó 2″.

Ezenkívül az 1C:Enterprise 8 rendszerek funkciókat biztosítanak a karakterláncokkal való munkavégzéshez. Nézzük a főbbeket:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — a funkció egy párbeszédpanel megjelenítésére szolgál, amelyben a felhasználó megadhatja egy típusú változó értékét Vonal. Paraméter <Строка> kötelező, és tartalmazza annak a változónak a nevét, amelybe a beírt karakterláncot írjuk. Paraméter <Подсказка> opcionális – ez a párbeszédpanel címe. Paraméter <Длина> opcionális, a bemeneti karakterlánc maximális hosszát mutatja. Alapértelmezés szerint nulla, ami korlátlan hosszúságot jelent. Paraméter <Многострочность> választható. Meghatározza a többsoros szövegbeviteli módot: True – többsoros szövegbevitel sorelválasztókkal; False – írjon be egy egyszerű karakterláncot.

Megadhat egy karakterláncot, ha ismeri a karakterkódot a Unicode-ban:

Szimbólum(<КодСимвола>) — A kód számként kerül megadásra.

Letter= Symbol(1103) ; // I

Van egy inverz függvény is, amely lehetővé teszi egy szimbólum kódjának kiderítését.

SymbolCode(<Строка>, <НомерСимвола>) — a megadott karakter Unicode-számát adja vissza számként.

Kis- és nagybetűk átalakító funkciói:

VReg(<Строка>) — A karakterlánc összes karakterét nagybetűvé alakítja.

NReg(<Строка>) — A karakterlánc összes karakterét kisbetűvé alakítja.

Treg(<Строка>) — a karakterlánc összes karakterét nagybetűvé alakítja. Vagyis az összes szó első betűit nagybetűvé, a többi betűt kisbetűvé alakítja.

Karakterek keresésének és cseréjének függvényei egy karakterláncban:

Megtalálja(<Строка>, <ПодстрокаПоиска>) — megkeresi a keresési részstring előfordulásának karakterszámát. Például:

Find ("String" , "oké" ) ; 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — megkeresi a keresési részstring előfordulásának karakterszámát, az előfordulási számot a megfelelő paraméter jelzi. Ebben az esetben a keresés azzal a karakterrel kezdődik, amelynek száma a paraméterben van megadva Kezdő pozíció. A keresés a karakterlánc elejétől vagy végétől lehetséges. Például:

4. számú előfordulások = Str Find ( "védekezés", "körülbelül" ,Keresési irány. Kezdettől, 1, 4); 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – megkeresi a keresési részkarakterlánc összes előfordulását a forráskarakterláncban, és lecseréli a helyettesítő karakterláncra.

StrReplace ("Karakterlánc" , "oké" , "" ) ; // Oldal

Üres sor (<Строка>) – ellenőrzi, hogy a karakterláncban vannak-e jelentős karakterek. Ha nincsenek jelentős karakterek, vagy egyáltalán nincsenek karakterek, akkor a rendszer az értéket adja vissza Igaz. Másképp - Fekszik.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Kiszámítja a keresési részkarakterlánc előfordulásának számát a forráskarakterláncban.

StrNumberOccurrences ( "Tanulj, tanulj és tanulj újra", "tanulmány" , "" ) ; 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — a paramétereket egy karakterláncba szám szerint helyettesíti. A sorban a következő formájú helyettesítési jelzőket kell tartalmaznia: „%1..%N”. A jelölők számozása 1-től kezdődik. Ha a paraméter értéke Határozatlan, egy üres karakterlánc kerül behelyettesítésre.

StrTemplate ( "1. paraméter = %1, 2. paraméter = %2", "1" , "2" ) ; // 1. paraméter = 1, 2. paraméter = 2

String konverziós függvények:

Egy oroszlán(<Строка>, <ЧислоСимволов>) – egy karakterlánc első karaktereit adja vissza.

Jobb(<Строка>, <ЧислоСимволов>) – egy karakterlánc utolsó karaktereit adja vissza.

Szerda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – egy hosszúságú karakterláncot ad vissza<ЧислоСимволов>szimbólumtól kezdve<НачальныйНомер>.

AbbrL(<Строка>) levágja a nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől balra.

rövid(<Строка>) — levágja a jelentéktelen karaktereket a sor utolsó jelentős karakterétől jobbra.

AbbrLP(<Строка>) – levágja a jelentéktelen karaktereket a sor első jelentős karakterétől balra és a sor utolsó jelentős karakterétől jobbra.

StrGetString(<Строка>, <НомерСтроки>) – Többsoros karakterláncot kap szám szerint.

Más funkciók:

Erősség(<Строка>) – a karakterláncban lévő karakterek számát adja vissza.

StrNumberRow(<Строка>) – egy többsoros karakterlánc sorainak számát adja vissza. Egy sor akkor tekinthető újnak, ha újsor karakter választja el az előzőtől.

StrCompare(<Строка1>, <Строка2> ) – a kis- és nagybetűket figyelmen kívül hagyva hasonlít össze két karakterláncot. A függvény úgy működik, mint egy objektum Értékek összehasonlítása. Visszaküldések:

  • 1 - ha az első sor nagyobb, mint a második
  • -1 - ha a második sor nagyobb, mint az első
  • 0 - ha a karakterláncok egyenlőek

StrCompare("Első sor" , "Második sor" ) ; 1