Remplacez n'importe quel caractère du répertoire 1c. Nouvelles fonctions pour travailler avec des chaînes. Fonctions pour travailler avec des chaînes StrStartsWith(), StrEndsAt()

Les capacités de base d'un langage de programmation incluent généralement l'utilisation de nombres et de chaînes. Habituellement, ces fonctionnalités sont codées en dur dans le code du compilateur (ou les classes « de base » du langage de programmation sont implémentées).

Dans 1C, la possibilité de travailler avec des chaînes est programmée dans la plateforme elle-même. Aujourd'hui, nous examinerons les fonctionnalités de l'utilisation des chaînes 1C dans les programmes du langage 1C intégré.

Valeur de ligne 1C

1. Commençons par le plus simple. Créer une variable et lui attribuer une valeur de chaîne constante ressemble à ceci dans 1C :

Variable = "Bonjour tout le monde !" ;

Si vous devez spécifier un guillemet dans une valeur de chaîne 1C constante, vous devez le doubler ""

Variable = "Bonjour tout le monde" !;

2. Le saut de ligne 1C peut être spécifié de deux manières à la fois. La première utilise le symbole |

Variable = "Bonjour,
| monde! " ;

La seconde utilise l’énumération du système Symbols. Il vous permet d'ajouter à la fois des sauts de ligne 1C et d'autres caractères non imprimables, tels que TAB.

Variable = "Bonjour" + Symbols.PS + "paix!";

3. Les configurations en 1C peuvent être développées non seulement pour une langue (russe, anglais ou autre) - mais simultanément pour plusieurs langues. Dans ce cas, la langue actuellement utilisée est sélectionnée en bas de la fenêtre 1C.

La liste des langues se trouve dans la fenêtre de configuration dans la branche Général/Langues. Chaque langue possède un identifiant court tel que ru ou fra.

Il est clair que lors de la programmation d'une telle configuration, les lignes 1C peuvent également être multilingues. Pour ce faire, il est possible de créer une telle ligne 1C en spécifiant via ; options par identifiant de langue :

Variable = "ru=""Bonjour tout le monde ! ""; fr=""Bonjour tout le monde ! """;

Si vous utilisez la ligne 1C formée de cette manière comme d'habitude, ce sera ce qui y est écrit. Pour que le système le divise en deux options et utilise celle souhaitée, vous devez utiliser la fonction НStr() :

//correct pour les configurations bilingues
Rapport(NStr(Variable));

Étais avec ligne type 1C

L'attribut est un champ du répertoire/document 1C. Elle diffère d'une variable d'un programme en langage 1C en ce que pour l'attribut son type est précisément indiqué (numéro, chaîne 1C, etc.). Si vous avez besoin de vous rafraîchir la mémoire sur ce qu'est un accessoire, regardez la leçon.

Si vous spécifiez le type d'attribut - ligne 1C, vous devez alors spécifier en plus les paramètres.

Les lignes 1C ont une longueur illimitée (indiquée par longueur = 0) et une longueur limitée, indiquant le nombre exact de caractères. Les lignes 1C de longueur illimitée sont stockées dans une table SQL distincte, leur utilisation est donc moins productive que les lignes limitées.

C'est pourquoi l'utilisation de chaînes 1C de longueur illimitée a ses limites : il n'est pas possible de les utiliser partout. Par exemple, il n'est pas autorisé comme numéro de document, code de référence ou mesure.

Travailler avec des chaînes 1C

Il existe plusieurs fonctions intégrées de la plate-forme 1C pour travailler avec des chaînes.

  • AbbrLP (« Incroyable, mais vrai ! »)
    Supprime les espaces supplémentaires de la ligne 1C. Peut également être utilisé pour convertir n'importe quel type en chaîne 1C (par exemple, des nombres).
  • Variable = "Vasya" + AbbrLP(" plus") + "Olya" ; //il y aura "Vasya plus Olya"
    Un exemple de sommation de plusieurs valeurs de chaîne 1C. Le résultat sera une ligne 1C.
  • Variable = Lev("Musique", 2); //sera "Mu"
    Variable = Moyen("Musique", 2, 2); //il y aura une "menace"
    Variable = Droits("Musique", 2); //il y aura "ka"
    Diverses options pour obtenir une sous-chaîne à partir d'une chaîne 1C.
  • Variable = Rechercher("Musique", "zy"); //il y en aura 3
    Recherchez une sous-chaîne dans la chaîne 1C, commençant par le caractère 1.
  • Variable = StrLength("Musique"); //il y en aura 6
    Renvoie le nombre de caractères dans la ligne 1C.
  • Rapport("Bonjour") //dans la fenêtre de message en bas de la fenêtre 1C
    Alerte("Bonjour") //boîte de dialogue contextuelle
    Status("Bonjour") //dans la ligne d'affichage du statut en bas à gauche
    .

Amener des objets à la ligne 1C

Comme vous le savez, le format le plus populaire pour échanger des informations structurées est actuellement XML. Même la dernière version de MS Office Word et Excel enregistre les fichiers dans ce format (docx et xlsx, respectivement, changent l'extension en zip, s'ouvrent dans un archiveur).

La plateforme d'échange de données 1C propose plusieurs options, dont la principale est également XML.

1. La méthode la plus simple consiste à utiliser la fonction Abbreviation() ou String(). Vous pouvez utiliser la fonction REPRESENTATION() dans le corps de la requête. Le résultat de leur action est le même : ils génèrent une représentation sous forme de chaîne de n'importe quel objet 1C pour l'utilisateur.

Pour un répertoire par défaut, ce sera son nom. Pour un document – ​​​​nom, numéro et date du document.

2. Tout objet 1C (avec restrictions) peut être converti en XML et vice versa. Le processus de conversion est appelé sérialisation.

StringViewXml = XMLString(Valeur); //obtenir XML à partir de la valeur 1C
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); // récupère la valeur 1C à partir de la chaîne XML, vous devez spécifier le type 1C qui doit être reçu

3. Il existe une méthode propre à la plate-forme 1C pour convertir n'importe quel objet 1C en chaîne. Il a migré depuis la version 1C 7.7. Ce format n'est pas compris par d'autres programmes, mais les autres 1C le comprennent, ce qui facilite son utilisation pour l'échange entre bases de données 1C.

Ligne = ValueInRowInt (Value1C); // récupère la chaîne 1C à partir de la valeur 1C
ValueVFile("C:\MonFichier.txt", Value1C); //une autre option, nous obtenons un fichier avec une chaîne enregistrée à partir de la valeur 1C
Value1C = ValueFromStringInt(String); //retour de la ligne 1C
Value1C = ValueFile("C:\MonFichier.txt"); //retour du fichier

Modification des lignes 1C sur le formulaire

En plus de travailler avec des chaînes 1C dans un programme en langage 1C, j'aimerais bien sûr que l'utilisateur puisse les éditer. Il existe plusieurs possibilités pour cela :

1. Le moyen le plus simple est de demander l'entrée d'une ligne 1C sur demande. Cette méthode est utilisée lors de l'enseignement de la programmation 1C ; dans la vie, elle est beaucoup moins souvent utilisée (mais elle est utilisée !).

Variable = "" ;
Ligne = EnterValue (Variable, "Entrez le nom complet");

2. Pour afficher les détails d'un objet 1C (répertoire/document) ou les détails d'un formulaire (voir), un champ de saisie est le plus souvent utilisé. Il s'agit de l'outil le plus courant dans 1C permettant à l'utilisateur de travailler avec des champs d'édition.

3. Les capacités du champ de saisie peuvent être étendues (voir propriétés du champ de saisie, clic droit dessus, plus de détails) :

  • Case à cocher Mode d'édition multiligne
  • Case d'édition avancée (disponible si la case précédente est cochée)
  • Case à cocher Mode mot de passe (voir).

4. Si toutes les capacités du champ de saisie ne vous suffisent pas, il existe un éditeur intégré. Pour l'ajouter au formulaire, vous devez ajouter un champ de document texte au menu Formulaire/Insérer un contrôle. Dans ses propriétés, vous pouvez spécifier son mode de fonctionnement – ​​la propriété Extension.

Un champ de document texte ne peut pas être associé directement à des données. Il est nécessaire d'écrire une fonction dans le gestionnaire d'événement OnOpen() du formulaire (voir) :

Formulaire Elements.ElementNameTextDocumentField.SetText(StringValue); //ici ValueString est le texte reçu, par exemple, de l'attribut

Et dans le gestionnaire de sauvegarde - par exemple, dans le bouton Enregistrer - ajoutez une sauvegarde :

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValeurLa ligne ici est l'attribut où nous enregistrons la valeur

5. Dans la version 1C 8.2.11, dans les formulaires gérés, une nouvelle option est apparue pour représenter une ligne 1C - le champ Document formaté.


Semblable au champ d'un document texte, vous devez le définir lors de son ouverture et le noter lorsque vous l'enregistrez vous-même à l'aide du programme.

  • Dans l'objet 1C dont nous créons le formulaire (répertoire, document, traitement, etc.) - ajoutez un attribut de type Value Storage
  • Dans la fonction OnReadOnServer(), nous définissons le texte de l'attribut

    //ici l'Attribut est l'attribut ajouté de l'objet 1C
    //ici FormattedDocument est le nom du champ du formulaire à modifier
    &Sur le serveur

    FormattedDocument = CurrentObject.Attributes.Get();
    Fin de la procédure

  • Dans la fonction BeforeWritingOnServer() ou à l'aide du bouton, nous écrirons le texte du champ

    &Sur le serveur
    Procédure lors de ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Fin de la procédure

Le type String se retrouve dans tous les langages de programmation. Il est primitif et dans 1C, il existe de nombreuses fonctions pour travailler avec. Dans cet article, nous examinerons en détail différentes manières de travailler avec les types de chaînes dans 1C 8.3 et 8.2 à l'aide d'exemples.

Doubler

Afin de convertir une variable de n'importe quel 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 chaîne, mais également d'autres, par exemple des éléments de répertoires et de documents.

SokrLP, SokrL, SokrP

Les paramètres d'entrée de ces fonctions sont une variable de type chaîne. Les fonctions suppriment les caractères insignifiants (espaces, retours chariot, etc.) : respectivement du côté gauche et droit, uniquement du côté gauche et uniquement du côté droit.

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

Lion, droite, moyen

Ces fonctions vous permettent de couper une partie d'une chaîne. La fonction "Left()" renverra la partie d'une chaîne de son côté gauche de la longueur spécifiée. La fonction "Right()" est similaire, mais recadre depuis la droite. La fonction « Avg() » permet de préciser le numéro du caractère à partir duquel la ligne sera sélectionnée et sa longueur.

Lev("Variable chaîne", 4) // renvoie "Str"
Right("String variable", 7) // renvoie "variable"
Medium("String variable", 2, 5) // renvoie "troko"

LongueurStre

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

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

Trouver

La fonction permet de rechercher une partie d'une chaîne dans une 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 la recherche est sensible à la casse. S'il y a plus d'une occurrence de la sous-chaîne recherchée dans la chaîne d'origine, 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 permet de déterminer si une chaîne est vide. Les caractères mineurs tels que l'espace, le retour chariot et autres ne sont pas pris en compte.

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

VReg, NReg, TReg

Ces fonctions sont très utiles lors de la comparaison et de la conversion de variables chaîne. "Vreg()" renverra la chaîne d'origine en majuscule, "HPreg()" en minuscules et "TReg()" la formatera de sorte que le premier caractère de chaque mot individuel soit en majuscule et que tous les caractères suivants soient en majuscule.

VReg("DIRECTEUR GÉNÉRAL") // valeur de retour - "DIRECTEUR GÉNÉRAL"
NReg ("PDG DIRECTEUR") // valeur de retour – "PDG"
TREG("CEO DIRECTOR") // valeur de retour – "Directeur Général"

PageRemplacer

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

StrReplace("rouge, blanc, jaune", ","", ";") // renvoie "rouge; blanc; jaune"

StrNombreLignes

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

La boucle de l'exemple ci-dessous effectuera trois tours car la fonction LineNumberRow renverra la valeur 3 :

Pour ind = 1 par StrNumber of Strings ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Cycle
<тело цикла>
Fin du cycle ;

StrGetString

Cette fonction fonctionne avec du 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 texte.

StrGetString("Chaîne1" + Caractères.PS + "Chaîne2" + Caractères.PS + "Chaîne3", 2) // renvoie "Chaîne2"

Occurrences de numéro de page

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

StrNumberAttachments("a;b;c;d; ", ";") // la fonction renverra le chiffre 4

Symbole et code de symbole

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

SymbolCode("A") // la fonction renverra le nombre 1 040
CharacterCode(1040) // la fonction renverra « A »

Tâches courantes lorsque vous travaillez avec des chaînes

Concaténation de chaînes

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

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

Conversion de types

Pour convertir un type en chaîne, par exemple un lien vers un élément de répertoire, un nombre, etc., il suffit d'utiliser la fonction « String() ». Des fonctions comme « ScrLP() » convertiront également les variables en chaîne, mais immédiatement en coupant les caractères insignifiants.

String(1000) // renvoie "1 000"

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

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

String(Format(1000,"HG=")) // renvoie "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 du texte de la requête écrit dans le configurateur, soit simplement d'une variable. Pour résoudre ce problème, il vous suffit de mettre deux guillemets.

Header = String("Horns and Hooves LLC - c'est nous !") // renverra "Horns and Hooves LLC - c'est nous !"

Multiligne, saut de ligne

Afin de créer du texte multiligne, ajoutez-y simplement des sauts de ligne (Symbols.PS).

MultilineText = « Première ligne » + Symbols.PS + « Deuxième ligne »

Comment supprimer des espaces

Afin de supprimer les espaces à droite ou à gauche, vous pouvez utiliser la fonction « ScrAP() » (ainsi que « ScrL() » et « ScrP() ») :

StringNoSpaces = Abbreviation(" Plusieurs lettres ") // la fonction retournera la valeur " Plusieurs lettres "

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

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

Les programmeurs utilisent aussi souvent la construction suivante, qui permet de supprimer ou de remplacer par un autre caractère tous les espaces dans une variable de texte :

StringNoSpaces = StrReplace("bonjour", "") // renvoie "bonjour"

Comparer les chaînes entre elles

Vous pouvez comparer les termes avec le signe égal habituel. La comparaison est sensible à la casse.

"Bonjour" = "bonjour" // renvoie False
"Bonjour" = "Bonjour" // renvoie True
"Bonjour" = "Au revoir" // renverra 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 extraire 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 qu'on peut faire avec des cordes.

Ajout de chaîne

Pour ajouter des lignes dans une requête, l'opération « + » est utilisée. Vous ne pouvez ajouter que des chaînes de longueur limitée.

SELECT "Nom : " + Nom AS Colonne 1 FROM Contreparties AS Contreparties WHERE Lien = &Lien.

Fonction de sous-chaîne

SOUS-CHAÎNE(<Строка>, <НачальнаяПозиция>, <Длина>)

Un analogue de la fonction Environment() du modèle objet. La fonction Substring() peut être appliquée aux données de chaîne et vous permet de sélectionner un fragment <Строки> , en commençant par le numéro du caractère <НачальнаяПозиция> (les caractères d'une ligne sont numérotés à partir de 1) et longueur <Длина> personnages. Le résultat d'un calcul de 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 des paramètres illimités <Длина> n'est pas une constante ou supérieure à 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. Au lieu de cela, il est préférable d'utiliser l'opérateur de conversion EXPRESS().

Fonction similaire

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

SELECT Contreparties. Nom AS Colonne 1 FROM Répertoire AS Contreparties OÙ Nom des contreparties = "Gazprom".

Mais que se passe-t-il si vous avez besoin d’une comparaison plus subtile ? Pas seulement l’égalité ou l’inégalité, mais la similitude avec un certain modèle ? C’est exactement pour cela que la fonction SIMILAIRE a été créée.

LIKE — Opérateur permettant de vérifier la similarité d'une chaîne avec un modèle. Analogue de LIKE en SQL.

L'opérateur SIMILAR vous permet de comparer la valeur de l'expression spécifiée à gauche 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, le résultat de l'opérateur sera VRAI, sinon il sera FAUX.

Les caractères suivants dans la chaîne 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 répertorié 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 autre que ceux listés après le signe de négation.

Tout autre symbole signifie lui-même et n'entraîne aucune charge supplémentaire. Si l'un des caractères répertoriés doit être écrit tel quel, il doit alors être précédé de<Спецсимвол>. Moi-même<Спецсимвол>(tout caractère approprié) est défini dans la même instruction après le mot clé SPECIAL CHARACTER.

Les lignes de 1C 8.3 dans le langage 1C intégré sont des valeurs de type primitif Doubler. 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 entourés de guillemets.

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

StringVariable = "Bonjour tout le monde !";

Fonctions pour travailler avec des chaînes en 1s 8.3

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

LongueurStre

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

Exemple 2. Comptons le nombre de caractères dans la ligne « Hello World ! »

String = "Bonjour tout le monde !"; Nombre de caractères = StrLength(String); Rapport (NombreCaractères);

Le résultat de l'exécution de ce code sera l'affichage du nombre de caractères dans la ligne : 11.

Abréviation

Abréviation(<Строка>) . Supprime 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 ajoutez-y la ligne « Bonjour ».

String = Abréviation("monde!"); Chaîne = "Bonjour" + Chaîne ; Rapport (Chaîne);

Le résultat de l'exécution de ce code sera l'affichage de la ligne « Hello world ! » à l'écran.

Abrégé

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

Exemple 4. Formulaire à partir des lignes « Bonjour » et « paix ! la phrase « Bonjour tout le monde ! »

Ligne = Abréviation("Bonjour ")+" "+ Abréviation("monde!"); Rapport (Chaîne);

AbréviationLP

AbréviationLP(<Строка>) . Supprime les caractères non significatifs à droite du premier caractère significatif de la chaîne, ainsi que 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 universelle.

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

Contrepartie = Répertoires Contreparties.Rechercher par détails("TIN", "0777121211"); AccountObject = Compte.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

un lion

Un lion(<Строка>, <ЧислоСимволов>) . Récupère 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 entrer la structure Employé contenir les noms, prénom et patronyme du salarié. Obtenez une chaîne avec le nom de famille et les initiales.

NomInitial = Lev(Employé.Nom, 1); Patronymique Initial = Lion(Employé. Patronymique, 1) ; Nom complet = Employé.Nom + " " + Initiale Prénom + "." + Initiale du milieu + "." ;

Droite

Droite(<Строка>, <ЧислоСимволов>) . Récupère les derniers caractères d'une chaîne, le nombre de caractères 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. Laissez une date au format « aaaammjj » être écrite à la fin d'une variable de chaîne, récupérez une chaîne avec la date et convertissez-la en type date.

String = « Date actuelle : 20170910 » ; StringDate = Droits (Chaîne, 8); Date = Date(ChaîneDate);

Mercredi

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

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

String = « Région : 99 Moscou » ; Région = Moy (Chaîne, 9, 2) ;

Recherche de page

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

  • Doubler. Chaîne source ;
  • Rechercher une sous-chaîne. Rechercher une sous-chaîne ;
  • Sens de recherche. Spécifie la direction dans laquelle rechercher une sous-chaîne dans une chaîne. Peut prendre des valeurs :
    • Direction de recherche. Depuis le début;
    • Recherche.Fin Direction;
  • Position initiale. Spécifie la position dans la chaîne à laquelle commence la recherche ;
  • NombreOccurrences. Spécifie le numéro d'occurrence de la sous-chaîne recherchée dans la chaîne source.

Exemple 9. Dans la ligne « Bonjour tout le monde ! Déterminez la position de la dernière occurrence du caractère « et ».

PositionNumber = StrFind("Bonjour tout le monde !", "et", SearchDirection.End); Rapport (PositionNumber);

Le résultat de l'exécution de ce code sera d'afficher le numéro de la dernière occurrence du symbole « et » : 9.

VReg

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

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

StringVreg = VReg("Bonjour tout le monde !"); Rapport (StringVreg);

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

NReg

NReg(<Строка>) . 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 = NReg("BONJOUR LE MONDE !"); Rapport (StringVreg);

Le résultat de l’exécution de ce code sera l’affichage de la ligne « hello world ! »

Treg

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

Exemple 12 : Mettez en majuscule les premières lettres des mots de la ligne « hello world ! »

StringTreg = TReg("Bonjour tout le monde !"); Rapport (StringTreg);

Le résultat de l'exécution de ce code sera l'affichage de la ligne « Hello World ! »

Symbole

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

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

StringWithStars = Symbole("9733")+"Bonjour tout le monde !"+Symbol("9733"); Rapport (ChaîneAvecÉtoiles);

Le résultat de l'exécution de ce code sera l'affichage de la ligne « ★Hello World !★ »

Symbole Code

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

Exemple 14. Découvrez le code du dernier caractère de la ligne « Hello World ! »

String = "Bonjour tout le monde !"; CharacterCode = CharacterCode (String, StrLength (String)); Notifier(CharacterCode);

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

Ligne vide

Ligne vide (<Строка>) . Vérifie si la 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.

Vide = Chaîne Vide(" "); Rapport (vide);

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

PageRemplacer

StrRemplacer(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Recherche toutes les occurrences de la sous-chaîne de recherche dans la chaîne source 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 = StrReplace("Bonjour tout 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 ! »

StrNombreLignes

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

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

Number = StrNumberString("Première ligne"+Characters.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 ligne 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 = "Première ligne" + Symboles PS + "Deuxième ligne" + Symboles PS + "Troisième ligne" ; LastRow = StrGetRow(Texte, StrNumberLines(Texte)); Rapport (DernièreLigne);

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

Occurrences de numéro de page

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . 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.

Ligne = "Lignes en 1s 8.3 et 8.2" ; NumberOccurrences = StrNumberOccurrences(Vreg(String), "Avec"); Rapport (Nombre d'occurrences);

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

PageDébutAvec

StrDébutAvec(<Строка>, <СтрокаПоиска>) . 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 NIF de la contrepartie sélectionnée commence par le chiffre 1. Introduisez la variable Contrepartie Contreparties.

TIN = Contrepartie.TIN ; StartsUNits = StrStartsWith(TIN, "1"); Si commence par des unités Alors //Votre code EndIf ;

Fin de page activée

StrEndsWith(<Строка>, <СтрокаПоиска>) . 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éterminer si le NIF de la contrepartie sélectionnée se termine par le chiffre 2. Introduire la variable Contrepartie une référence à un élément de répertoire est stockée Contreparties.

TIN = Contrepartie.TIN ; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Votre code EndIf;

Fractionnement de page

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

Exemple 22. Ayons une chaîne contenant des nombres séparés par le symbole « ; », récupérons un tableau de nombres à partir de la chaîne.

Chaîne = "1 ; 2 ; 3" ; Tableau = StrDivide(Chaîne, ";"); Pour Count = 0 Par Array.Quantity() - 1 tentative de cycle Array[Count] = Number(AbbrLP(Array[Count])); Tableau d'exceptions [Sch] = 0 ; EndAttemptsEndCycle ;

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

PageConnecter

StrConnect(<Строки>, <Разделитель>) . Convertit le 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 Account = 0 By Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); Fin du cycle ; Ligne = StrConnect(Array, "; ");



Avez-vous aimé l'article? Partager avec des amis: