1c-Funktionen zum Arbeiten mit Strings. Neue Funktionen zum Arbeiten mit Strings. Funktionen zum Arbeiten mit Strings StrDivide(), StrConnect()

Notizen aus Through the Looking Glass

18.08.2014 Neue Funktionen zum Arbeiten mit Strings

Implementiert in Version 8.3.6.1977.

Wir haben den Funktionsumfang für die Arbeit mit Strings erweitert. Wir haben dies getan, um Ihnen erweiterte Tools zum Parsen von String-Daten zur Verfügung zu stellen. Die neuen Funktionen werden bei technologischen Aufgaben der Textanalyse komfortabel und nützlich sein. Bei Aufgaben im Zusammenhang mit dem Parsen von Text, der Daten in formatierter Form enthält. Dies könnte eine Analyse einiger vom Gerät empfangener Dateien oder beispielsweise eine Analyse eines Technologieprotokolls sein.

Sie könnten alle Aktionen ausführen, die zuvor neue Funktionen ausführen. Verwendung mehr oder weniger komplexer Algorithmen, die in einer integrierten Sprache geschrieben sind. Daher eröffnen Ihnen neue Funktionen keine grundsätzlich neuen Möglichkeiten. Sie ermöglichen es Ihnen jedoch, die Codemenge zu reduzieren und den Code einfacher und verständlicher zu machen. Darüber hinaus können Sie damit die Ausführung von Aktionen beschleunigen. Denn die in der Plattform implementierten Funktionen funktionieren natürlich schneller als ein ähnlicher Algorithmus, der in einer integrierten Sprache geschrieben ist.

Formatierungsfunktion StrTemplate()

Diese Funktion ersetzt Parameter in einer Zeichenfolge. Die Notwendigkeit einer solchen Umstellung ergibt sich beispielsweise häufig bei der Anzeige von Warnmeldungen. Die Syntax für diese Funktion lautet wie folgt:

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

<Шаблон>– Dies ist die Zeichenfolge, in die Sie die Parameterdarstellungen ersetzen müssen.

<Значение1> , ... <Значение10>- Dies sind Parameter (maximal zehn), deren Darstellungen in die Zeichenfolge eingesetzt werden müssen.

Um eine bestimmte Stelle in der Vorlage anzugeben, an der Sie die Ersetzung durchführen möchten, müssen Sie Markierungen wie %1, ... %10 verwenden. Die Anzahl der an der Vorlage beteiligten Marker und die Anzahl der Parameter, die Werte enthalten, müssen übereinstimmen.

Das Ergebnis der Ausführung eines solchen Operators ist beispielsweise:

Es wird eine Zeile geben:

Datenfehler in Zeile 2 (Datumstyp erforderlich)

Funktion zum Arbeiten mit Strings StrCompare()

Diese Funktion vergleicht zwei Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung. Zum Beispiel so:

Sie könnten die gleiche Aktion auch früher mit dem Objekt ausführen Vergleich der Werte:

Die Verwendung der neuen Funktion scheint jedoch einfacher zu sein. Und außerdem eine Funktion, im Gegensatz zu einem Objekt Vergleich der Werte, funktioniert sowohl im Thin Client als auch im Web Client.

Funktionen zum Arbeiten mit Strings StrStartsWith(), StrEndsAt()

Diese Funktionen bestimmen, ob eine Zeichenfolge mit einer angegebenen Teilzeichenfolge beginnt oder ob eine Zeichenfolge mit einer angegebenen Teilzeichenfolge endet. Der Algorithmus für diese Funktionen ist nicht schwer in einer eingebetteten Sprache zu implementieren, aber ihre Anwesenheit ermöglicht es Ihnen, saubereren und verständlicheren Code zu schreiben. Und sie arbeiten schneller.

Es ist beispielsweise bequem, sie im Operator zu verwenden Wenn:

Funktionen zum Arbeiten mit Strings StrDivide(), StrConnect()

Diese Funktionen teilen eine Zeichenfolge mithilfe eines angegebenen Trennzeichens in Teile auf. Oder umgekehrt: Sie fassen mehrere Zeilen zu einer zusammen und fügen dazwischen das ausgewählte Trennzeichen ein. Sie eignen sich zum Erstellen oder Analysieren von Protokollen und Technologiejournalen. Sie können beispielsweise einen technologischen Protokolleintrag ganz einfach in Teile zerlegen, die für die weitere Analyse geeignet sind:

Funktion zum Arbeiten mit Strings StrFind()

Anstelle der alten Funktion Finden() wir umgesetzt neue Funktion, das über zusätzliche Funktionen verfügt:

  • Suche in verschiedene Richtungen (vom Anfang, vom Ende);
  • Suche von einer bestimmten Position aus;
  • Suchen Sie nach einem Vorkommen mit einer bestimmten Nummer (zweiter, dritter usw.).

Tatsächlich dupliziert es die Fähigkeiten der alten Funktion. Dies geschieht, um die Kompatibilität mit Modulen zu gewährleisten, die in älteren Versionen kompiliert wurden. Alte Funktion Finden() Es wird empfohlen, es nicht erneut zu verwenden.

Unten sehen Sie ein Beispiel für die Verwendung der neuen Suchfunktionen. Die umgekehrte Suche ist nützlich, wenn Sie das letzte Fragment einer formalisierten Zeichenfolge benötigen, z. B. Vollständiger Name Datei in URL. Und die Suche von einer bestimmten Position aus hilft in Fällen, in denen Sie in einem bekannten Fragment und nicht in der gesamten Zeile suchen müssen.

Der String-Typ kommt in allen Programmiersprachen vor. Es ist primitiv und in 1C gibt es viele Funktionen, um damit zu arbeiten. In diesem Artikel werden wir einen genaueren Blick darauf werfen verschiedene Wege Arbeiten mit String-Typen in 1C 8.3 und 8.2 anhand von Beispielen.

Linie

Um eine Variable beliebigen Typs in einen String umzuwandeln, gibt es die gleichnamige Funktion „String()“. Der Eingabeparameter ist die Variable selbst, deren Zeichenfolgendarstellung ermittelt werden muss.

String(False) // gibt „Nein“ zurück
String(12345) // gibt „12.345“ zurück
String(CurrentDate()) //"21.07.2017 11:55:36″

Es ist möglich, nicht nur primitive Typen in einen String umzuwandeln, sondern auch andere, beispielsweise Elemente von Verzeichnissen und Dokumenten.

SokrLP, SokrL, SokrP

Die Eingabeparameter dieser Funktionen sind eine Variable vom Typ String. Die Funktionen entfernen unbedeutende Zeichen (Leerzeichen, Wagenrückläufe usw.): von der linken und rechten Seite, nur von der linken Seite bzw. nur von der rechten Seite.

Abkürzung("Leerzeichen werden auf beiden Seiten entfernt") // "Leerzeichen werden auf beiden Seiten entfernt"
Abkürzung(" Leerzeichen auf beiden Seiten werden entfernt ") // " Leerzeichen auf der linken Seite werden entfernt "
Abkürzung("Leerzeichen auf beiden Seiten werden entfernt") // "Leerzeichen auf der rechten Seite werden entfernt"

Löwe, Rechts, Mittel

Mit diesen Funktionen können Sie einen Teil einer Zeichenfolge kürzen. Die Funktion „Left()“ gibt den Teil einer Zeichenfolge von der linken Seite der angegebenen Länge zurück. Die Funktion „Right()“ ist ähnlich, schneidet jedoch von rechts ab. Mit der Funktion „Avg()“ können Sie die Nummer des Zeichens, aus dem die Zeile ausgewählt wird, und seine Länge angeben.

Lev("String-Variable", 4) // gibt "Str" zurück
Right("String-Variable", 7) // gibt "Variable" zurück
Medium("String-Variable", 2, 5) // gibt "troco" zurück

StrLength

Die Funktion ermittelt die Anzahl der Zeichen, die in einer String-Variablen enthalten sind.

StrLength("Word") // Das Ergebnis der Ausführung ist die Zahl 5

Finden

Die Funktion ermöglicht die Suche nach einem Teil eines Strings in einer String-Variablen. Der Rückgabewert ist eine Zahl, die die Position des Anfangs der gefundenen Zeichenfolge anzeigt. Wenn keine Übereinstimmung gefunden wird, wird Null zurückgegeben.

Bitte beachten Sie, dass bei der Suche die Groß-/Kleinschreibung beachtet wird. Wenn die Suchteilzeichenfolge mehr als einmal in der Originalzeichenfolge vorkommt, gibt die Funktion den Anfang des ersten Vorkommens zurück.

Find("one, two, one, two, three", "two") // Die Funktion gibt die Zahl 6 zurück

Leere Zeile

Mit dieser Funktion können Sie feststellen, ob eine Zeichenfolge leer ist. Nebenzeichen wie Leerzeichen, Wagenrücklauf und andere werden nicht berücksichtigt.

EmptyString("Pupkin Vasily Ivanovich") // Die Funktion gibt den Wert False zurück
Die Funktion EmptyString(" ") // gibt den Wert True zurück

VReg, NReg, TReg

Diese Funktionen sind beim Vergleichen und Konvertieren von String-Variablen sehr nützlich. „Vreg()“ gibt die Originalzeichenfolge in Großbuchstaben zurück, „HPreg()“ in Kleinbuchstaben und „TReg()“ formatiert sie so, dass das erste Zeichen jedes einzelnen Wortes großgeschrieben wird und alle nachfolgenden Zeichen großgeschrieben werden.

VReg("GENERAL DIRECTOR") // Rückgabewert - "GENERAL DIRECTOR"
NReg(“CEO DIRECTOR”) // Rückgabewert – „CEO“
TREG(“CEO DIRECTOR”) // Rückgabewert – „General Director“

PageReplace

Diese Funktion ist analog zum Ersetzen in Texteditoren. Es ermöglicht Ihnen, in String-Variablen ein Zeichen oder einen Zeichensatz durch ein anderes zu ersetzen.

StrReplace("rot, weiß, gelb", ","", ";") // gibt "rot; zurück" Weiß; Gelb"

StrNumberLines

Mit der Funktion können Sie die Anzahl der durch Wagenrückläufe getrennten Zeilen in einer Textvariablen bestimmen.

Die Schleife im folgenden Beispiel durchläuft drei Runden, da die LineNumberRow-Funktion den Wert 3 zurückgibt:

Für ind = 1 by StrNumber of Strings ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Cycle
<тело цикла>
EndCycle;

StrGetString

Diese Funktion funktioniert mit mehrzeiligem Text auf die gleiche Weise wie die vorherige. Es ermöglicht Ihnen zu bekommen bestimmte Zeichenfolge aus einer Textvariablen.

StrGetString("String1" + Characters.PS + "String2" + Characters.PS + "String3", 2) // „String2“ zurückgeben

PageNumberOccurrences

Die Funktion zählt die Anzahl der Vorkommen eines Zeichens oder einer Teilzeichenfolge in der Suchzeichenfolge.

StrNumberAttachments("a;b;c;d; ", ";") // Funktion gibt die Zahl 4 zurück

Symbol und Symbolcode

Mit diesen Funktionen können Sie ein Zeichen anhand seines Codes in der Unicode-Kodierung ermitteln und diesen Code anhand des Zeichens selbst bestimmen.

SymbolCode("A") // Funktion gibt die Zahl 1.040 zurück
CharacterCode(1040) // Funktion gibt „A“ zurück

Häufige Aufgaben beim Arbeiten mit Strings

Strings verketten

Um mehrere Zeichenfolgen zu kombinieren (um eine Verkettung durchzuführen), reicht es aus, den Additionsoperator zu verwenden.

„Zeile 1“ + „Zeile 2“ //das Ergebnis der Addition zweier Zeilen ist „Zeile 1 Zeile 2“

Typkonvertierung

Um einen Typ in einen String umzuwandeln, beispielsweise einen Link zu einem Verzeichniselement, eine Zahl usw., reicht es aus, die Funktion „String()“ zu verwenden. Funktionen wie „ScrLP()“ wandeln Variablen ebenfalls in einen String um, allerdings sofort unter Abschneiden unbedeutender Zeichen.

String(1000) // gibt „1.000“ zurück

Bitte beachten Sie, dass das Programm beim Konvertieren einer Zahl in eine Zeichenfolge automatisch ein Leerzeichen als Tausendertrennzeichen einfügt. Um dies zu vermeiden, können Sie die folgenden Konstruktionen verwenden:

StrReplace(String(1000),Characters.NPP,"") // gibt „1000“ zurück

String(Format(1000,"HG=")) // gibt „1000“ zurück

Anführungszeichen in einer Zeichenfolge

Sehr oft müssen Sie sich mit der Notwendigkeit auseinandersetzen, in einer String-Variablen Anführungszeichen anzugeben. Dies kann entweder der im Konfigurator geschriebene Anfragetext oder nur eine Variable sein. Um dieses Problem zu lösen, müssen Sie lediglich zwei Anführungszeichen setzen.

Header = String("Horns and Hooves LLC – das sind wir!") // gibt „Horns and Hooves LLC – das sind wir!“ zurück.

Mehrzeilig, Zeilenumbruch

Um mehrzeiligen Text zu erstellen, fügen Sie einfach Zeilenumbrüche (Symbols.PS) hinzu.

MultilineText = „Erste Zeile“ + Symbols.PS + „Zweite Zeile“

So entfernen Sie Leerzeichen

Um Leerzeichen rechts oder links zu entfernen, können Sie die Funktion „ScrAP()“ (sowie „ScrL()“ und „ScrP()“) verwenden:

StringNoSpaces = Abbreviation(" Viele Buchstaben") // Die Funktion gibt den Wert "Viele Buchstaben" zurück

Wenn Sie nach der Konvertierung einer Zahl in eine Zeichenfolge geschützte Leerzeichen entfernen müssen, verwenden Sie die folgende Konstruktion:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // gibt „99999“ zurück

Programmierer verwenden außerdem häufig die folgende Konstruktion, mit der Sie alle Leerzeichen in einer Textvariablen entfernen oder durch ein anderes Zeichen ersetzen können:

StringNoSpaces = StrReplace("hello","") // gibt "hello" zurück

Strings miteinander vergleichen

Sie können Begriffe mit dem üblichen Gleichheitszeichen vergleichen. Beim Vergleich wird die Groß-/Kleinschreibung beachtet.

„Hello“ = „hello“ // gibt False zurück
„Hello“ = „Hallo“ // gibt True zurück
„Hello“ = „Goodbye“ // gibt False zurück

Ein String ist einer der primitiven Datentypen in 1C:Enterprise 8-Systemen. Variablen mit dem Typ Linie Text enthalten.

Geben Sie Variablenwerte ein Linie bestehen in Anführungszeichen. Mehrere Variablen dieser Art kann gefaltet werden.

Per1 = „Wort 1“ ;
Per2 = "Wort 2" ;
Per3 = Per1 + " " + Per2 ;

Zusammenfassend Per3 bedeutet " Wort 1 Wort 2″.

Darüber hinaus bieten 1C:Enterprise 8-Systeme Funktionen zum Arbeiten mit Strings. Schauen wir uns die wichtigsten an:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — Die Funktion soll ein Dialogfeld anzeigen, in dem der Benutzer einen Wert angeben kann Variablentyp Linie. Parameter <Строка> ist erforderlich und enthält den Namen der Variablen, in die der eingegebene String geschrieben wird. Parameter <Подсказка> optional – dies ist der Titel des Dialogfelds. Parameter <Длина> optional, zeigt die maximale Länge der Eingabezeichenfolge an. Der Standardwert ist Null, was unbegrenzte Länge bedeutet. Parameter <Многострочность> Optional. Definiert den mehrzeiligen Texteingabemodus: True – mehrzeilige Texteingabe mit Zeilentrennzeichen; Falsch – Geben Sie eine einfache Zeichenfolge ein.

Sie können eine Zeichenfolge eingeben, wenn Sie den Zeichencode in Unicode kennen:

Symbol(<КодСимвола>) — Der Code wird als Zahl eingegeben.

Buchstabe= Symbol(1103) ; // ICH

Es gibt auch eine Umkehrfunktion, mit der Sie den Code eines Symbols ermitteln können.

SymbolCode(<Строка>, <НомерСимвола>) — gibt die Unicode-Nummer des angegebenen Zeichens als Zahl zurück.

Funktionen zur Text-Groß-/Kleinschreibung:

VReg(<Строка>) – Wandelt alle Zeichen in einer Zeichenfolge in Großbuchstaben um.

NReg(<Строка>) – Wandelt alle Zeichen in einer Zeichenfolge in Kleinbuchstaben um.

TReg(<Строка>) – Konvertiert alle Zeichen in der Zeichenfolge in die Groß-/Kleinschreibung des Titels. Das heißt, die ersten Buchstaben aller Wörter werden in Großbuchstaben und die übrigen Buchstaben in Kleinbuchstaben umgewandelt.

Funktionen zum Suchen und Ersetzen von Zeichen in einer Zeichenfolge:

Finden(<Строка>, <ПодстрокаПоиска>) – findet die Zeichennummer des Vorkommens der Suchteilzeichenfolge. Zum Beispiel:

Finden ("String" , "oka" ); // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) – findet die Zeichennummer des Vorkommens der Suchteilzeichenfolge, die Vorkommensnummer wird im entsprechenden Parameter angegeben. In diesem Fall beginnt die Suche mit dem Zeichen, dessen Nummer im Parameter angegeben ist Ausgangsposition. Die Suche ist vom Anfang oder Ende der Zeichenfolge möglich. Zum Beispiel:

Anzahl4 Vorkommen = Str Find ( „Verteidigung“, „about“, Suchrichtung. Von Anfang, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – findet alle Vorkommen des Suchteilstrings im Quellstring und ersetzt ihn durch den Ersatzteilstring.

StrReplace ("String" , "oka" , "" ); // Seite

Leere Zeile(<Строка>) – prüft die Zeichenfolge auf signifikante Zeichen. Wenn keine signifikanten Zeichen oder überhaupt keine Zeichen vorhanden sind, wird der Wert zurückgegeben WAHR. Sonst - Lüge.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Berechnet die Anzahl der Vorkommen des Suchteilstrings im Quellstring.

StrNumberOccurrences ( „Studieren, studieren und noch einmal lernen“, "Studie" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — ersetzt Parameter durch Zahlen in einer Zeichenfolge. Die Zeile muss Ersetzungsmarkierungen der Form „%1..%N“ enthalten. Die Markierungsnummerierung beginnt bei 1. Wenn der Parameterwert Nicht definiert, wird eine leere Zeichenfolge ersetzt.

StrTemplate ( „Parameter 1 = %1, Parameter 2 = %2“, "1" , "2" ) ; // Parameter 1= 1, Parameter 2 = 2

String-Konvertierungsfunktionen:

Ein Löwe(<Строка>, <ЧислоСимволов>) – gibt die ersten Zeichen einer Zeichenfolge zurück.

Rechts(<Строка>, <ЧислоСимволов>) - kehrt zurück letzte Zeichen Linien.

Mittwoch(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – gibt eine Zeichenfolge mit der Länge zurück<ЧислоСимволов>, beginnend mit dem Symbol<НачальныйНомер>.

AbbrL(<Строка>) schneidet unbedeutende Zeichen links vom ersten ab bedeutungsvolles Symbol im Einklang.

Abkürzung(<Строка>) – schneidet unbedeutende Zeichen rechts vom letzten signifikanten Zeichen in der Zeile ab.

AbbrLP(<Строка>) – schneidet unbedeutende Zeichen links vom ersten signifikanten Zeichen in der Zeile und rechts vom letzten signifikanten Zeichen in der Zeile ab.

StrGetString(<Строка>, <НомерСтроки>) – Ruft eine mehrzeilige Zeichenfolge nach Nummer ab.

Andere Eigenschaften:

StrLength(<Строка>) – gibt die Anzahl der Zeichen in der Zeichenfolge zurück.

StrNumberRow(<Строка>) – gibt die Anzahl der Zeilen in einer mehrzeiligen Zeichenfolge zurück. Eine Zeile gilt als neu, wenn sie durch ein Zeilenumbruchzeichen von der vorherigen getrennt ist.

StrCompare(<Строка1>, <Строка2> ) – vergleicht zwei Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung. Eine Funktion funktioniert ähnlich wie ein Objekt Vergleich der Werte. Kehrt zurück:

  • 1 – wenn die erste Zeile größer als die zweite ist
  • -1 – wenn die zweite Zeile größer als die erste ist
  • 0 – wenn die Zeichenfolgen gleich sind

StrCompare("Erste Zeile" , "Zweite Zeile" ); // 1

Es gibt nur wenige Mechanismen zum Arbeiten mit Zeichenfolgen in 1C-Abfragen. Zunächst können die Zeilen hinzugefügt werden. Zweitens können Sie einen Teilstring aus einem String übernehmen. Drittens können Zeichenfolgen verglichen werden, auch nach Muster. Das ist wahrscheinlich alles, was man mit Strings machen kann.

String-Addition

Um Zeilen in einer Abfrage hinzuzufügen, wird die Operation „+“ verwendet. Sie können nur Zeichenfolgen mit begrenzter Länge hinzufügen.

WÄHLEN Sie „Name: „ + Gegenparteien. Name AS Spalte 1 FROM Verzeichnis. Gegenparteien AS Gegenparteien WHERE Gegenparteien. Link = &Link

Teilstringfunktion

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

Ein Analogon der Environment()-Funktion aus dem Objektmodell. Die Funktion Substring() kann auf String-Daten angewendet werden und ermöglicht die Auswahl eines Fragments <Строки> , beginnend mit der Zeichennummer <НачальнаяПозиция> (Zeichen in einer Zeile werden beginnend mit 1 nummeriert) und Länge <Длина> Figuren. Das Ergebnis der Funktionsberechnung hat einen Zeichenfolgentyp variabler Länge, und die Länge wird als unbegrenzt betrachtet, wenn <Строка> hat unbegrenzte Länge und Parameter <Длина> ist keine Konstante oder größer als 1024.

Wenn die Länge der Zeichenfolge kürzer ist als im zweiten Parameter angegeben, gibt die Funktion eine leere Zeichenfolge zurück.

Aufmerksamkeit! Es wird nicht empfohlen, die Funktion SUBSTRING() zum Konvertieren von Zeichenfolgen unbegrenzter Länge in Zeichenfolgen begrenzter Länge zu verwenden. Stattdessen ist es besser, den Cast-Operator EXPRESS() zu verwenden.

Funktion ähnlich

Wenn wir sicherstellen müssen, dass ein String-Attribut bestimmte Kriterien erfüllt, vergleichen wir es:

SELECT Kontrahenten. Name AS Spalte 1 FROM Verzeichnis. Kontrahenten AS Kontrahenten WHERE Kontrahenten. Name = „Gazprom“

Aber was ist, wenn Sie einen subtileren Vergleich benötigen? Nicht nur Gleichheit oder Ungleichheit, sondern Ähnlichkeit mit einem bestimmten Muster? Genau dafür wurde die SIMILAR-Funktion erstellt.

LIKE – Operator zum Überprüfen einer Zeichenfolge auf Ähnlichkeit mit einem Muster. Analog zu LIKE in SQL.

Mit dem SIMILAR-Operator können Sie den Wert des links davon angegebenen Ausdrucks mit der rechts angegebenen Musterzeichenfolge vergleichen. Der Wert des Ausdrucks muss vom Typ Zeichenfolge sein. Wenn der Wert des Ausdrucks mit dem Muster übereinstimmt, ist das Ergebnis des Operators TRUE, andernfalls FALSE.

Die folgenden Zeichen in der Vorlagenzeichenfolge sind Dienstzeichen und haben eine andere Bedeutung als die Zeichenfolgenzeichen:

  • % (Prozent): eine Sequenz, die eine beliebige Anzahl beliebiger Zeichen enthält;
  • _ (Unterstrich): ein beliebiges Zeichen;
  • […] (ein oder mehrere Zeichen in eckigen Klammern): jedes einzelne Zeichen, das in den eckigen Klammern aufgeführt ist. Die Aufzählung kann Bereiche enthalten, zum Beispiel a-z, was bedeutet, dass ein beliebiges Zeichen im Bereich enthalten ist, einschließlich der Enden des Bereichs;
  • [^...] (in eckigen Klammern ein Negationszeichen, gefolgt von einem oder mehreren Zeichen): jedes einzelne Zeichen, außer denen, die nach dem Negationszeichen aufgeführt sind.

Jedes andere Symbol bedeutet sich selbst und trägt keine zusätzliche Last. Wenn eines der aufgelisteten Zeichen als es selbst geschrieben werden muss, muss ihm ein vorangestellt werden<Спецсимвол>. Ich selbst<Спецсимвол>(jedes geeignete Symbol) wird in derselben Anweisung danach definiert Stichwort BESONDERES SYMBOL.

Implementiert in Version 8.3.6.1977.

Wir haben den Funktionsumfang für die Arbeit mit Strings erweitert. Wir haben dies getan, um Ihnen erweiterte Tools zum Parsen von String-Daten zur Verfügung zu stellen. Die neuen Funktionen werden bei technologischen Aufgaben der Textanalyse komfortabel und nützlich sein. Bei Aufgaben im Zusammenhang mit dem Parsen von Text, der Daten in formatierter Form enthält. Dies könnte eine Analyse einiger vom Gerät empfangener Dateien oder beispielsweise eine Analyse eines Technologieprotokolls sein.

Sie könnten alle Aktionen ausführen, die zuvor neue Funktionen ausführen. Verwendung mehr oder weniger komplexer Algorithmen, die in einer integrierten Sprache geschrieben sind. Daher eröffnen Ihnen neue Funktionen keine grundsätzlich neuen Möglichkeiten. Sie ermöglichen es Ihnen jedoch, die Codemenge zu reduzieren und den Code einfacher und verständlicher zu machen. Darüber hinaus können Sie damit die Ausführung von Aktionen beschleunigen. Denn die in der Plattform implementierten Funktionen funktionieren natürlich schneller als ein ähnlicher Algorithmus, der in einer integrierten Sprache geschrieben ist.

Formatierungsfunktion StrTemplate()

Diese Funktion ersetzt Parameter in einer Zeichenfolge. Die Notwendigkeit einer solchen Umstellung ergibt sich beispielsweise häufig bei der Anzeige von Warnmeldungen. Die Syntax für diese Funktion lautet wie folgt:

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

<Шаблон>– Dies ist die Zeichenfolge, in die Sie die Parameterdarstellungen ersetzen müssen.

<Значение1> , ... <Значение10>- Dies sind Parameter (maximal zehn), deren Darstellungen in die Zeichenfolge eingesetzt werden müssen.

Um eine bestimmte Stelle in der Vorlage anzugeben, an der Sie die Ersetzung durchführen möchten, müssen Sie Markierungen wie %1, ... %10 verwenden. Die Anzahl der an der Vorlage beteiligten Marker und die Anzahl der Parameter, die Werte enthalten, müssen übereinstimmen.

Das Ergebnis der Ausführung eines solchen Operators ist beispielsweise:

Es wird eine Zeile geben:

Datenfehler in Zeile 2 (Datumstyp erforderlich)

Funktion zum Arbeiten mit Strings StrCompare()

Diese Funktion vergleicht zwei Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung. Zum Beispiel so:

Sie könnten die gleiche Aktion auch früher mit dem Wertvergleichsobjekt ausführen:

Die Verwendung der neuen Funktion scheint jedoch einfacher zu sein. Darüber hinaus funktioniert die Funktion im Gegensatz zum Wertvergleichsobjekt sowohl im Thin Client als auch im Webclient.

Funktionen zum Arbeiten mit Strings StrStartsWith(), StrEndsAt()

Diese Funktionen bestimmen, ob eine Zeichenfolge mit einer angegebenen Teilzeichenfolge beginnt oder ob eine Zeichenfolge mit einer angegebenen Teilzeichenfolge endet. Der Algorithmus für diese Funktionen ist nicht schwer in einer eingebetteten Sprache zu implementieren, aber ihre Anwesenheit ermöglicht es Ihnen, saubereren und verständlicheren Code zu schreiben. Und sie arbeiten schneller.

Sie lassen sich beispielsweise bequem in der If-Anweisung verwenden:

Funktionen zum Arbeiten mit Strings StrDivide(), StrConnect()

Diese Funktionen teilen eine Zeichenfolge mithilfe eines angegebenen Trennzeichens in Teile auf. Oder umgekehrt: Sie fassen mehrere Zeilen zu einer zusammen und fügen dazwischen das ausgewählte Trennzeichen ein. Sie eignen sich zum Erstellen oder Analysieren von Protokollen und Technologiejournalen. Sie können beispielsweise einen technologischen Protokolleintrag ganz einfach in Teile zerlegen, die für die weitere Analyse geeignet sind:

Funktion zum Arbeiten mit Strings StrFind()

Anstelle der alten Find()-Funktion haben wir eine neue Funktion implementiert, die über zusätzliche Funktionen verfügt:

  • Suche in verschiedene Richtungen (vom Anfang, vom Ende);
  • Suche von einer bestimmten Position aus;
  • Suchen Sie nach einem Vorkommen mit einer bestimmten Nummer (zweiter, dritter usw.).

Tatsächlich dupliziert es die Fähigkeiten der alten Funktion. Dies geschieht, um die Kompatibilität mit Modulen zu gewährleisten, die in älteren Versionen kompiliert wurden. Es wird empfohlen, die alte Find()-Funktion nicht mehr zu verwenden.

Unten sehen Sie ein Beispiel für die Verwendung der neuen Suchfunktionen. Die umgekehrte Suche ist nützlich, wenn Sie den letzten Teil einer formalisierten Zeichenfolge benötigen, beispielsweise den vollständigen Dateinamen in einer URL. Und die Suche von einer bestimmten Position aus hilft in Fällen, in denen Sie in einem bekannten Fragment und nicht in der gesamten Zeile suchen müssen.

gastroguru 2017