LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam

Le type "String" se trouve dans tous les langages de programmation. Il est primitif et dans 1C, il existe de nombreuses fonctions pour l'utiliser. Dans cet article, nous examinerons de plus près différentes façons de travailler avec des types de chaîne dans 1C 8.3 et 8.2 à l'aide d'exemples.

Ligne

Afin de convertir une variable de tout type en chaîne, il existe une fonction du même nom "String ()". Le paramètre d'entrée sera la variable elle-même, dont la représentation sous forme de chaîne doit être obtenue.

String (False) // renvoie "Non"
Chaîne (12345) // renvoie "12 345"
Chaîne (CurrentDate ()) // 21/07/2017 11:55:36 ″

Il est possible de convertir non seulement des types primitifs en une chaîne, mais aussi d'autres, par exemple, des éléments de livres de référence, des documents.

SocrLP, SocrL, SocrP

Une variable de type chaîne est utilisée comme paramètres d'entrée de ces fonctions. Les fonctions suppriment les caractères insignifiants (espaces, retours chariot et autres): depuis les côtés gauche et droit, uniquement depuis le côté gauche et uniquement depuis la droite, respectivement.

Abréviation ("Les espaces seront supprimés des deux côtés") // "Les espaces seront supprimés des deux côtés"
AbbrL ("Les espaces des deux côtés seront supprimés") // "Les espaces à gauche seront supprimés"
Abréviation ("Les espaces des deux côtés seront supprimés") // "Les espaces à droite seront supprimés"

Leo, droite, mercredi

Ces fonctions vous permettent de couper une partie d'une chaîne. La fonction "Lion ()" retournera la partie de la chaîne de son côté gauche de la longueur spécifiée. La fonction "Right ()" est la même, mais le recadrage est effectué à droite. La fonction "Med ()" vous permet de spécifier le numéro du caractère à partir duquel la chaîne sera sélectionnée et sa longueur.

Lion ("String variable", 4) // renvoie "Stro"
Right ("String variable", 7) // renvoie "variable"
Wed ("String variable", 2, 5) // renvoie "troco"

Longueur Str

La fonction détermine le nombre de caractères contenus dans la variable chaîne.

StrLength ("Word") // le résultat de l'exécution sera le numéro 5

Trouver

La fonction permet de rechercher une partie d'une chaîne dans n'importe quelle variable chaîne. La valeur de retour sera un nombre qui indique la position du début de la chaîne trouvée. Si aucune correspondance n'est trouvée, zéro est renvoyé.

Veuillez noter que les recherches sont sensibles à la casse. Si la chaîne d'origine contient plus d'une occurrence de la sous-chaîne de recherche, la fonction renverra le début de la première occurrence.

Find ("un, deux, un, deux, trois", "deux") // la fonction renverra le nombre 6

Ligne vide

L'utilisation de cette fonction vous permet de déterminer si une chaîne est vide. Les caractères non significatifs tels que l'espace, le retour chariot et autres sont ignorés.

EmptyString ("Pupkin Vasily Ivanovich") // la fonction retournera la valeur False
EmptyString ("") // la fonction retournera True

VReg, NReg, Treg

Ces fonctions sont très utiles pour comparer et convertir des variables de chaîne. Breg () renverra la chaîne d'origine en majuscules, HPreg () en minuscules et TPreg () la formatera de sorte que le premier caractère de chaque mot individuel soit en majuscule et tous les suivants en minuscules.

Vreg ("GENERAL DIRECTOR") // valeur de retour - "GENERAL DIRECTOR"
NReg ("GENERAL DIRECTOR") // valeur de retour - "general director"
TREG ("GENERAL DIRECTOR") // valeur de retour - "General Director"

PageReplace

Cette fonction est analogue au remplacement dans les éditeurs de texte. Il vous permet de remplacer un caractère ou un jeu de caractères par un autre dans les variables de chaîne.

StrReplace ("rouge, blanc, jaune", ",", ";") // retournera "rouge; blanc; Jaune"

StrNumberStrings

La fonction vous permet de déterminer le nombre de lignes séparées par des retours chariot dans une variable de texte.

La boucle de l'exemple ci-dessous passera par trois cercles car la fonction RowNumber retournera 3:

Pour ind \u003d 1 par StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Boucle
<тело цикла>
Fin de cycle;

StrGetString

Cette fonction fonctionne avec le texte multiligne de la même manière que la précédente. Il vous permet d'obtenir une chaîne spécifique à partir d'une variable de texte.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // renverra "String2"

StrNombre d'occurrences

La fonction compte le nombre d'occurrences d'un caractère ou d'une sous-chaîne dans la chaîne de recherche.

Rangée de pièces jointes ("a; b; c; d;", \u200b\u200b";") // la fonction renverra le nombre 4

Symbole et code de symbole

Ces fonctions vous permettent d'obtenir un caractère par son code Unicode, ainsi que de déterminer ce code par le caractère lui-même.

SymbolCode ("A") // la fonction renverra le numéro 1 040
SymbolCode (1040) // la fonction retournera "A"

Tâches fréquentes lorsque vous travaillez avec des chaînes

Concaténation de chaînes

Pour concaténer plusieurs chaînes (pour effectuer la concaténation), il suffit d'utiliser l'opérateur d'addition.

"Ligne 1" + "Ligne 2" // le résultat de l'ajout de deux chaînes sera "Ligne 1 Ligne 2"

Conversion de type

Pour convertir un type en chaîne, par exemple, une référence à un élément du dictionnaire, un nombre, etc., il suffit d'utiliser la fonction "String ()". Des fonctions comme "Abbreviation ()" convertiront également les variables en une chaîne, mais immédiatement avec la troncature des caractères insignifiants.

String (1000) // renverra "1000"

Veuillez noter que lors de la conversion d'un nombre en chaîne, le programme a automatiquement ajouté un espace séparant un millier. Pour éviter cela, vous pouvez utiliser les constructions suivantes:

StrReplace (String (1000), Characters.NPP, "") // renverra "1000"

String (Format (1000, "ChG \u003d")) // renverra "1000"

Citations dans une chaîne

Très souvent, vous devrez faire face à la nécessité de spécifier des guillemets dans une variable chaîne. Il peut s'agir soit d'un texte de requête écrit dans le configurateur, soit simplement d'une variable. Pour résoudre ce problème, il vous suffit de définir deux guillemets.

Title \u003d String ("Horns and Hooves LLC" - c'est nous! ") // renvoie" Horns and Hoofs LLC - c'est nous! "

Plusieurs lignes, saut de ligne

Pour créer un texte multiligne, il suffit d'y ajouter des caractères de saut de ligne (Symbols.PS).

MultilineText \u003d "Première ligne" + Symbols.PS + "Deuxième ligne"

Comment supprimer des espaces

Pour supprimer les espaces à droite ou à gauche, vous pouvez utiliser la fonction "Abréviation ()" (ainsi que "Abréviation ()" et "Abréviation ()"):

StringNoSpaces \u003d AbbreviatedLP ("Many letters") // la fonction retournera la valeur "Many letters"

Si, après avoir converti un nombre en chaîne, vous devez supprimer des espaces insécables, utilisez la construction suivante:

StringNoSpaces \u003d StrReplace (String (99999), Characters.NPP, "") // renverra "99999"

En outre, les programmeurs utilisent souvent la construction suivante, qui vous permet de supprimer ou de remplacer tous les espaces d'une variable de texte par un autre caractère:

StringNoSpaces \u003d StrReplace ("welcome", "", "") // renvoie "hello"

Comparer des chaînes entre elles

Les termes peuvent être comparés au signe égal habituel. La comparaison est sensible à la casse.

"Hello" \u003d "bonjour" // retournera False
"Hello" \u003d "Hello" // retournera True
"Hello" \u003d "Goodbye" // retournera False

Il existe peu de mécanismes pour travailler avec des chaînes dans les requêtes 1C. Tout d'abord, les lignes peuvent être ajoutées. Deuxièmement, vous pouvez prendre une sous-chaîne d'une chaîne. Troisièmement, les chaînes peuvent être comparées, y compris par motif. C'est probablement tout ce que vous pouvez faire avec des chaînes.

Concaténation de chaînes

Pour ajouter des chaînes dans une requête, l'opération "+" est utilisée. Seules des lignes de longueur limitée peuvent être ajoutées.

SELECT "Nom:" + Contreparties. Nom AS Colonne1 FROM Répertoire. Sous-traitants AS Contreparties WHERE Contreparties. Link \u003d & Link

Fonction de sous-chaîne

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

Analogue de la fonction Environment () du modèle objet. La fonction Substring () peut être appliquée aux données de type chaîne et vous permet de sélectionner un fragment <Строки> commençant par le numéro du caractère <НачальнаяПозиция> (les caractères de la chaîne sont numérotés à partir de 1) et leur longueur <Длина> personnages. Le résultat de l'évaluation de la fonction a un type de chaîne de longueur variable, et la longueur sera considérée comme illimitée si <Строка> a une longueur et un paramètre illimités <Длина> n'est pas constant ou dépasse 1024.

Si la longueur de la chaîne est inférieure à celle spécifiée dans le deuxième paramètre, la fonction renverra une chaîne vide.

Attention! L'utilisation de la fonction SUBSTRING () pour convertir des chaînes de longueur illimitée en chaînes de longueur limitée n'est pas recommandée. Il est préférable d'utiliser l'opération de conversion EXPRESS () à la place.

Fonction comme

Si nous devons nous assurer qu'un attribut de chaîne répond à certains critères, nous le comparons:

SELECT Contreparties. Nom AS Colonne1 FROM Répertoire. Contreparties AS Contreparties WHERE Contreparties. Nom \u003d "Gazprom"

Mais que faire si vous voulez une comparaison plus délicate? Pas seulement l'égalité ou l'inégalité, mais comme un certain modèle? C'est exactement ce pour quoi la fonction LIKE est créée.

LIKE - Opérateur pour vérifier une chaîne comme un motif. Analogue de LIKE dans SQL.

L'opérateur LIKE vous permet de comparer la valeur de l'expression spécifiée à gauche de celle-ci avec la chaîne de modèle spécifiée à droite. La valeur de l'expression doit être de type chaîne. Si la valeur de l'expression correspond au modèle, l'opérateur renverra TRUE, sinon ce sera FALSE.

Les caractères suivants dans la chaîne de modèle sont des caractères de service et ont une signification différente de celle du caractère de chaîne:

  • % (pourcentage): une séquence contenant un nombre quelconque de caractères arbitraires;
  • _ (trait de soulignement): un caractère arbitraire;
  • […] (Un ou plusieurs caractères entre crochets): tout caractère unique figurant entre crochets. L'énumération peut contenir des plages, par exemple, a-z, signifiant un caractère arbitraire inclus dans la plage, y compris les extrémités de la plage;
  • [^…] (Entre crochets, un signe de négation suivi d'un ou plusieurs caractères): Tout caractère unique, sauf ceux listés après le signe de négation.

Tout autre symbole signifie lui-même et n'a aucune signification supplémentaire. Si l'un des caractères listés doit être enregistré comme soi-même, il doit être précédé de<Спецсимвол>... Lui-même<Спецсимвол> (tout caractère approprié) est défini dans la même instruction après le mot clé SPECIAL CHARACTER.

Notes du miroir

18/08/2014 Nouvelles fonctions pour travailler avec des chaînes

Implémenté dans la version 8.3.6.1977.

Nous avons élargi l'ensemble des fonctions permettant de travailler avec des chaînes. Nous l'avons fait afin de vous fournir des outils plus avancés pour analyser les données de chaîne. Les nouvelles fonctions seront pratiques et utiles dans les tâches technologiques d'analyse de texte. Dans les tâches liées à l'analyse de texte contenant des données formatées. Cela peut être l'analyse de certains fichiers reçus de l'équipement ou, par exemple, l'analyse d'un journal technologique.

Toutes les actions qui exécutent de nouvelles fonctions, que vous auriez pu effectuer auparavant. A l'aide d'algorithmes plus ou moins complexes écrits dans un langage embarqué. Par conséquent, les nouvelles fonctions ne vous offrent aucune possibilité fondamentalement nouvelle. Cependant, ils peuvent réduire la quantité de code, rendre le code plus simple et plus facile à comprendre. Et en plus de cela, ils vous permettent d'accélérer l'exécution des actions. Parce que les fonctions implémentées dans la plateforme fonctionnent, bien sûr, plus rapidement qu'un algorithme similaire écrit dans un langage embarqué.

Fonction de formatage StrPattern ()

Cette fonction remplace les paramètres dans une chaîne. La nécessité d'une telle conversion apparaît souvent, par exemple, lors de l'affichage de messages d'avertissement. La syntaxe de cette fonction est la suivante:

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

<Шаблон> est une chaîne à substituer aux représentations des paramètres.

<Значение1> , ... <Значение10> - ce sont des paramètres (maximum dix) dont les représentations doivent être substituées dans la chaîne.

Pour indiquer un emplacement spécifique dans le modèle où vous souhaitez effectuer la substitution, vous devez utiliser des marqueurs tels que% 1, ...% 10. Le nombre de marqueurs utilisés dans le modèle et le nombre de paramètres contenant des valeurs doivent correspondre.

Par exemple, le résultat de l'exécution d'une telle instruction:

il y aura une ligne:

Erreur de données sur la ligne 2 (type de date requis)

Fonction pour travailler avec des chaînes StrCompare ()

Cette fonction compare deux chaînes de manière insensible à la casse. Par exemple, comme ceci:

Vous auriez pu effectuer la même action avant d'utiliser l'objet Comparaison des valeurs:

Cependant, l'utilisation de la nouvelle fonction semble plus simple. Et à part ça, une fonction, contrairement à un objet Comparaison des valeurs, fonctionne à la fois dans le client léger et le client Web.

Fonctions pour travailler avec des chaînes RowStart With (), RREnd With ()

Ces fonctions déterminent si une chaîne commence par une sous-chaîne spécifiée ou se termine par une sous-chaîne spécifiée. L'algorithme de ces fonctions est facile à implémenter dans un langage embarqué, mais leur présence permet d'écrire du code plus propre et plus compréhensible. Et ils fonctionnent plus vite.

Par exemple, il est pratique de les utiliser dans l'opérateur Si:

Fonctions pour travailler avec des chaînes StrSplit (), StrConnect ()

Ces fonctions divisent la chaîne en parties selon le délimiteur spécifié. Ou vice versa, ils joignent plusieurs lignes en une, insérant le séparateur sélectionné entre elles. Ils sont pratiques pour créer ou analyser des journaux, des journaux technologiques. Par exemple, vous pouvez facilement désassembler un enregistrement d'un journal technologique en parties adaptées à une analyse plus approfondie:

Fonction pour travailler avec des chaînes StrFind ()

Au lieu de l'ancienne fonction Trouver() nous avons implémenté une nouvelle fonctionnalité qui a des fonctionnalités supplémentaires:

  • Rechercher dans différentes directions (du début, de la fin);
  • Recherche à partir d'une position spécifiée;
  • Recherchez une occurrence avec le numéro spécifié (deuxième, troisième, etc.).

En fait, il duplique les capacités de l'ancienne fonction. Ceci est fait afin de maintenir la compatibilité avec les modules compilés dans les anciennes versions. Ancienne fonction Trouver() pas recommandé d'utiliser à nouveau.

Vous trouverez ci-dessous un exemple utilisant les nouvelles fonctionnalités de recherche. Les recherches en arrière sont utiles lorsque vous avez besoin du dernier élément d'une chaîne formalisée, comme le nom de fichier complet dans une URL. La recherche à partir d'une position spécifiée aide dans les cas où vous devez rechercher dans un fragment connu et non dans la chaîne entière.

Les chaînes de 1C 8.3 dans le langage intégré 1C sont des valeurs de type primitif Ligne... Les valeurs de ce type contiennent une chaîne Unicode de longueur arbitraire. Les variables de type chaîne sont un ensemble de caractères entre guillemets.

Exemple 1. Créons une variable chaîne avec du texte.

StringVariable \u003d "Bonjour tout le monde!";

Fonctions pour travailler avec des chaînes dans 1c 8.3

Cette section vous fournira les principales fonctions qui vous permettront de changer de ligne dans 1c, ou d'analyser les informations qu'elles contiennent.

Longueur Str

StrLength (<Строка>) ... Renvoie le nombre de caractères contenus dans la chaîne passée dans le paramètre.

Exemple 2. Comptons le nombre de caractères dans la ligne "Hello world!"

String \u003d "Bonjour tout le monde!"; Nombre de caractères \u003d StrLength (chaîne); Rapport (nombre de caractères);

Le résultat de l'exécution de ce code sera d'afficher le nombre de caractères dans la chaîne: 11.

Abréviation

AbbrL (<Строка>) ... Tronque les caractères non significatifs à gauche du premier caractère significatif de la chaîne.
Personnages secondaires:

  • espace;
  • espace non-cassant;
  • tabulation;
  • retour chariot;
  • traduction de ligne;
  • traduction du formulaire (page).

Exemple 3. Supprimez tous les espaces du côté gauche de la ligne "monde!" et attachez-lui la chaîne "Hello".

String \u003d abrégé ("paix!"); String \u003d "Bonjour" + String; Rapport (chaîne);

Le résultat de l'exécution de ce code sera la sortie de la ligne "Hello world!"

Abréviation

Abréviation (<Строка>) ... Tronque les caractères non significatifs à droite du premier caractère significatif de la chaîne.

Exemple 4. Formulaire "Hello" et "World!" l'expression "Bonjour tout le monde!"

Chaîne \u003d abrégé ("Bonjour") + "" + abrégé ("monde!"); Rapport (chaîne);

SokrLP

SocrLP (<Строка>) ... Tronque les caractères non significatifs à droite du premier caractère significatif de la chaîne et coupe également les caractères non significatifs à gauche du premier caractère significatif de la chaîne. Cette fonction est utilisée plus souvent que les deux précédentes, car elle est plus polyvalente.

Exemple 5. Supprimez les caractères non significatifs à gauche et à droite du nom de la contrepartie.

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

un lion

Un lion(<Строка>, <ЧислоСимволов>) ... Obtient les premiers caractères de la chaîne, le nombre de caractères est spécifié dans le paramètre Nombre de caractères.

Exemple 6. Laisser la structure Employé contiennent le nom, le prénom et le patronyme de l'employé. Obtenez une chaîne avec le nom et les initiales.

InitialName \u003d Leo (Employee.Name, 1); Initiale patronymique \u003d Leo (employé, patronymique, 1); FullName \u003d Employee.Surname + "" + InitialName + "." + Initiale patronymique + ".";

Droite

Droite (<Строка>, <ЧислоСимволов>) ... Obtient les derniers caractères d'une chaîne, le nombre de caractères est spécifié dans le paramètre Nombre de caractères. Si le nombre de caractères spécifié dépasse la longueur de la chaîne, la chaîne entière est renvoyée.

Exemple 7. Supposons que la fin d'une variable chaîne contienne une date au format "aaaammjj", récupère une chaîne avec une date et convertit-la en type Date.

String \u003d "Date actuelle: 20170910"; StringDate \u003d Droite (chaîne, 8); Date \u003d Date (StringDate);

Mercredi

Mercredi (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Obtient une sous-chaîne d'une chaîne passée en paramètre Ligne, à partir du caractère dont le numéro est spécifié dans le paramètre StartNumber et la longueur passée au paramètre Nombre de caractères.La numérotation des caractères dans la ligne commence à 1. Si le paramètre StartNumber une valeur spécifiée est inférieure ou égale à zéro, alors le paramètre prend la valeur 1. Si le paramètre Nombre de symboles n'est pas spécifié, les caractères jusqu'à la fin de la ligne sont sélectionnés.

Exemple 8. Laissez la variable de chaîne commençant à la neuvième position contenir le code de région, vous devez l'obtenir et l'écrire sur une ligne séparée.

Line \u003d "Région: 99 Moscou"; Région \u003d Mer (ligne, 9, 2);

Chercher

Chercher (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Recherche la sous-chaîne spécifiée dans la chaîne, retourne le numéro de position du premier caractère de la sous-chaîne trouvée. Considérez les paramètres de cette fonction:

  • Ligne... Chaîne source;
  • Recherche de sous-chaîne... Recherche de sous-chaîne;
  • Direction de la recherche... Spécifie la direction dans laquelle rechercher une sous-chaîne dans une chaîne. Peut prendre des valeurs:
    • Direction de la recherche. Depuis le début;
    • Direction de la recherche.;
  • Position initiale... Spécifie la position dans la chaîne à partir de laquelle la recherche commence;
  • Nombre d'entrées... Spécifie le nombre d'occurrences de la sous-chaîne souhaitée dans la chaîne d'origine.

Exemple 9. Dans la ligne "Hello world!" déterminer la position de la dernière occurrence du symbole "et".

PositionNumber \u003d StrNayti ("Bonjour tout le monde!", "Et", DirectionSearch.End); Rapport (numéro de poste);

Le résultat de cette exécution de code sera l'affichage du numéro de la dernière occurrence du symbole "et": 9.

Vreg

BReg (<Строка>) ... Convertit tous les caractères de la chaîne spécifiée en 1s 8 en majuscules.

Exemple 10. Convertissez la chaîne "hello world!" en majuscules.

StringVreg \u003d VReg ("bonjour le monde!"); Rapport (StringVreg);

Le résultat de cette exécution de code sera l'affichage de la ligne "HELLO WORLD!"

Nreg

HPreg (<Строка>) ... Convertit tous les caractères de la chaîne spécifiée en 1s 8 en minuscules.

Exemple 11. Convertissez la chaîne "HELLO WORLD!" en minuscules.

StringNreg \u003d НReg ("HELLO WORLD!"); Rapport (StringVreg);

Le résultat de l'exécution de ce code sera la sortie de la ligne "hello world!"

Treg

Treg (<Строка>) ... Convertit une chaîne comme suit: le premier caractère de chaque mot est converti en majuscules, les caractères restants du mot sont convertis en minuscules.

Exemple 12. Mettez en majuscule les premières lettres des mots de la chaîne "hello world!"

StringTreg \u003d Treg ("bonjour le monde!"); Rapport (StringTreg);

Le résultat de l'exécution de ce code sera la sortie de la ligne "Hello World!"

symbole

Symbole(<КодСимвола>) ... Obtient un caractère par son code Unicod.

Exemple 13. Ajoutez gauche et droite à la ligne "Hello World!" symbole ★

StringWithStars \u003d Symbole ("9733") + "Bonjour le monde!" + Symbole ("9733"); Rapport (StringWithStars);

Le résultat de cette exécution de code sera la sortie de la ligne "★ Hello World! ★"

SymbolCode

SymbolCode (<Строка>, <НомерСимвола>) ... Obtient le code de caractère Unicode à partir de la chaîne spécifiée dans le premier paramètre, situé à la position spécifiée dans le deuxième paramètre.

Exemple 14. Découvrez le code du dernier caractère dans le "Hello World!"

String \u003d "Bonjour le monde!"; CharacterCode \u003d CharacterCode (String, StrLength (String)); Rapport (SymbolCode);

Le résultat de l'exécution de ce code sera l'affichage du code symbole "!" - 33.

Ligne vide

Ligne vide (<Строка>) ... Vérifie si une chaîne ne contient que des caractères insignifiants, c'est-à-dire si elle est vide.

Exemple 15. Vérifiez si une chaîne composée de trois espaces est vide.

Empty \u003d EmptyString (""); Rapport (vide);

Le résultat de l'exécution de ce code sera l'affichage du mot "Oui" (expression de chaîne de la valeur logique Vrai).

PageReplace

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Recherche toutes les occurrences de la sous-chaîne de recherche dans la chaîne d'origine et la remplace par la sous-chaîne de remplacement.

Exemple 16. Dans la ligne "Hello World!" remplacer le mot «paix» par le mot «amis».

String \u003d StrReplace ("Bonjour le monde!", "Monde", "Amis"); Rapport (chaîne);

Le résultat de l'exécution de ce code sera l'affichage de la ligne "Hello Friends!"

StrNumberStrings

RowNumber (<Строка>) ... Compte le nombre de lignes dans une chaîne multiligne. Pour passer à une nouvelle ligne en 1s 8, utilisez le caractère PS (caractère de saut de ligne).

Exemple 17. Déterminez le nombre de lignes dans le texte:
"Première ligne
Deuxième ligne
Troisième ligne "

Number \u003d StrNumberStrings ("Première ligne" + Symbols.PS + "Deuxième ligne" + Symbols.PS + "Troisième ligne"); Signaler le numéro);

Le résultat de l'exécution de ce code sera l'affichage du nombre de lignes dans le texte: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Obtient une chaîne dans une chaîne multiligne par son numéro. La numérotation des lignes commence à 1.

Exemple 18. Récupérez la dernière ligne du texte:
"Première ligne
Deuxième ligne
Troisième ligne "

Texte \u003d "Première ligne" + Symbols.PS + "Deuxième ligne" + Symbols.PS + "Troisième ligne"; LastRow \u003d StrGetString (Texte, StrNombre de lignes (texte)); Rapport (LastString);

Le résultat de l'exécution de ce code sera l'affichage de la ligne "Troisième ligne".

StrNombre d'occurrences

StrNombre d'occurrences (<Строка>, <ПодстрокаПоиска>) ... Renvoie le nombre d'occurrences de la sous-chaîne spécifiée dans une chaîne. La fonction est sensible à la casse.

Exemple 19. Déterminez combien de fois la lettre "c" apparaît dans la ligne "Lignes en 1s 8.3 et 8.2", quelle que soit sa casse.

Line \u003d "Lignes en 1s 8.3 et 8.2"; Number of Occurrences \u003d StrNumber of Occurrences (Vreg (String), "S"); Rapport (nombre d'occurrences);

Le résultat de l'exécution de ce code sera l'affichage du nombre d'occurrences: 2.

La page commence par

La page commence par (<Строка>, <СтрокаПоиска>) ... Vérifie si la chaîne passée dans le premier paramètre commence par la chaîne du deuxième paramètre.

Exemple 20. Déterminez si le TIN de la contrepartie sélectionnée commence par le nombre 1. Insérez la variable Contrepartie Entrepreneurs.

TIN \u003d Contrepartie.INN; StartsUnits \u003d StrStartsWith (INN, "1"); If BeginsUnits Then // Votre code EndIf;

PageFin avec

PageFin avec (<Строка>, <СтрокаПоиска>) ... Vérifie si la chaîne passée dans le premier paramètre se termine par la chaîne du deuxième paramètre.

Exemple 21. Déterminez si le TIN de la contrepartie sélectionnée se termine par le chiffre 2. Insérez la variable Contrepartieun lien vers un élément du répertoire est stocké Entrepreneurs.

TIN \u003d Contrepartie.INN; Se termine par deux \u003d Str Se termine par (INN, "2"); If Ends WithDouble Then // Votre code EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Divise une chaîne en parties à l'aide des caractères de délimitation spécifiés et écrit les chaînes résultantes dans un tableau. Le premier paramètre stocke la chaîne d'origine, le second contient la chaîne contenant le séparateur, le troisième spécifie s'il faut écrire des chaînes vides dans le tableau (par défaut Vrai).

Exemple 22. Supposons que nous ayons une chaîne contenant des nombres séparés par ";", obtenons un tableau de nombres à partir de la chaîne.

Chaîne \u003d "1; 2; 3"; Array \u003d StrSplit (Chaîne, ";"); For Rd \u003d 0 By Array.Quantity () - 1 Cycle Tentative Array [Rd] \u003d Number (AbbrLP (Array [Rd])); Tableau d'exception [Сч] \u003d 0; Fin des tentatives Fin de la boucle;

À la suite de l'exécution, un tableau avec des nombres de 1 à 3 sera obtenu.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Convertit un tableau de chaînes du premier paramètre en une chaîne contenant tous les éléments du tableau, séparés par le délimiteur spécifié dans le deuxième paramètre.

Exemple 23. En utilisant le tableau de nombres de l'exemple précédent, récupérez la chaîne d'origine.

Pour Ref \u003d 0 Par Array.Number () - 1 Cycle Array [Ref] \u003d String (Array [Ref]); Fin de cycle; String \u003d StrConnect (Array, ";");

Implémenté dans la version 8.3.6.1977.

Nous avons élargi l'ensemble des fonctions permettant de travailler avec des chaînes. Nous l'avons fait afin de vous fournir des outils plus avancés pour analyser les données de chaîne. Les nouvelles fonctions seront pratiques et utiles dans les tâches technologiques d'analyse de texte. Dans les tâches liées à l'analyse de texte contenant des données formatées. Cela peut être l'analyse de certains fichiers reçus de l'équipement ou, par exemple, l'analyse d'un journal technologique.

Toutes les actions qui exécutent de nouvelles fonctions, que vous auriez pu effectuer auparavant. A l'aide d'algorithmes plus ou moins complexes écrits dans un langage embarqué. Par conséquent, les nouvelles fonctions ne vous offrent aucune possibilité fondamentalement nouvelle. Cependant, ils peuvent réduire la quantité de code, rendre le code plus simple et plus facile à comprendre. Et en plus de cela, ils vous permettent d'accélérer l'exécution des actions. Parce que les fonctions implémentées dans la plateforme fonctionnent, bien sûr, plus rapidement qu'un algorithme similaire écrit dans un langage embarqué.

Fonction de formatage StrPattern ()

Cette fonction remplace les paramètres dans une chaîne. La nécessité d'une telle conversion apparaît souvent, par exemple, lors de l'affichage de messages d'avertissement. La syntaxe de cette fonction est la suivante:

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

<Шаблон> est une chaîne à substituer aux représentations des paramètres.

<Значение1> , ... <Значение10> - ce sont des paramètres (maximum dix) dont les représentations doivent être substituées dans la chaîne.

Pour indiquer un emplacement spécifique dans le modèle où vous souhaitez effectuer la substitution, vous devez utiliser des marqueurs tels que% 1, ...% 10. Le nombre de marqueurs utilisés dans le modèle et le nombre de paramètres contenant des valeurs doivent correspondre.

Par exemple, le résultat de l'exécution d'une telle instruction:

il y aura une ligne:

Erreur de données sur la ligne 2 (type de date requis)

Fonction pour travailler avec des chaînes StrCompare ()

Cette fonction compare deux chaînes de manière insensible à la casse. Par exemple, comme ceci:

Vous auriez pu effectuer la même action plus tôt à l'aide de l'objet Comparaison de valeurs:

Cependant, l'utilisation de la nouvelle fonction semble plus simple. De plus, la fonction, contrairement à l'objet Comparison of Values, fonctionne à la fois dans le client léger et dans le client Web.

Fonctions pour travailler avec des chaînes RowStart With (), RREnd With ()

Ces fonctions déterminent si une chaîne commence par une sous-chaîne spécifiée ou se termine par une sous-chaîne spécifiée. L'algorithme de ces fonctions est facile à implémenter dans un langage embarqué, mais leur présence permet d'écrire du code plus propre et plus compréhensible. Et ils fonctionnent plus vite.

Par exemple, il est pratique de les utiliser dans le If:

Fonctions pour travailler avec des chaînes StrSplit (), StrConnect ()

Ces fonctions divisent la chaîne en parties selon le délimiteur spécifié. Ou vice versa, ils joignent plusieurs lignes en une, insérant le séparateur sélectionné entre elles. Ils sont pratiques pour créer ou analyser des journaux, des journaux technologiques. Par exemple, vous pouvez facilement désassembler un enregistrement d'un journal technologique en parties adaptées à une analyse plus approfondie:

Fonction pour travailler avec des chaînes StrFind ()

Au lieu de l'ancienne fonction Find (), nous avons implémenté une nouvelle fonction qui a des capacités supplémentaires:

  • Rechercher dans différentes directions (du début, de la fin);
  • Recherche à partir d'une position spécifiée;
  • Recherchez une occurrence avec le numéro spécifié (deuxième, troisième, etc.).

En fait, il duplique les capacités de l'ancienne fonction. Ceci est fait afin de maintenir la compatibilité avec les modules compilés dans les anciennes versions. Il est recommandé de ne plus utiliser l'ancienne fonction Find ().

Vous trouverez ci-dessous un exemple utilisant les nouvelles fonctionnalités de recherche. Les recherches en arrière sont utiles lorsque vous avez besoin du dernier élément d'une chaîne formalisée, comme le nom de fichier complet dans une URL. La recherche à partir d'une position spécifiée aide dans les cas où vous devez rechercher dans un fragment connu et non dans la chaîne entière.

LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam