Boutons intelligents
Contrôles/éléments XML

Opération de chaîne <StringOperation>

StringOperation effectue plusieurs opérations sur du texte, telles que :

  • Coupe

  • Remplacement d’une partie du texte par un texte différent

  • Trouver un index d’éléments spécifiques dans le texte

  • Changer le texte en majuscules ou en minuscules

  • Trouver du texte spécifique à l’intérieur d’un texte avec regex.

Configuration

Pour configurer à l’aide de l’éditeur d’opération de chaîne :

  1. Ouvrez l’éditeur de boutons intelligents pour créer un script.

  2. Cliquez sur StringOperation <StringOperation> pour afficher l’éditeur StringOperation.

  3. Configurez les attributs.

    Attribut

    Description

    Source de chaîne

    Entrez l’une des options suivantes :

    Le texte statique que vous souhaitez modifier.

    Une variable de votre script entre crochets. Par exemple : [Adresses e-mail]

    Nom de la variable Entrez le nom de la variable qui contiendra le nouveau texte modifié (chaîne). Par exemple : UpdatedEmailAddress
    Type d’opération

    Cliquez sur la flèche Type d’opération pour sélectionner l’opération à effectuer sur le texte.

    • PersonnageBoîtier

      Remplace le texte en minuscules ou en majuscules.

    • StringLength

      Compte le nombre de caractères dans la chaîne. Compte tous les caractères, y compris les espaces.

    • Couper

      Permet de couper (couper) du texte/des caractères spécifiques à partir du début de la chaîne, de la fin ou des deux

    • Remplacer

      Remplace une partie de la chaîne par un texte alternatif.

    • Sous-chaîne

      Supprime une partie du texte et l’utilise comme nouveau texte (sous-chaîne).

    • IndexOf

      Recherche la position (Index) d’un caractère spécifique dans le texte. Si le(s) caractère(s) spécifié(s) n’est pas trouvé(s), « -1 » est renvoyé.

    • Regex

      Utilise des expressions régulières pour lire uniquement une partie spécifique du texte.

Exemples

Exemple 1

Pour utiliser le script suivant, assurez-vous de :

  • Remplacez le numéro de réservation de la ligne 2 par un vrai numéro de réservation.

  • Vérifiez que le Fichier de réservation contient au moins une adresse e-mail.

Copier
<ButtonConf ButtonName="Emails - String Operations - all" Description="" QuickCommand="">
<RunCommand>*VT58TD</RunCommand>
<Variable VarName="Emails">%EmailsList%</Variable>
<!--******************-->
<!-- Show the original string (text)-->
<!--******************-->
<ShowMessage>[Emails]</ShowMessage>
<!--******************-->
<!--Change the original text to Lower Case text -->
<!--******************-->
<StringOperation Type="CharacterCasing" VarName="LowerCaseText" Source="[Emails]">
<Arguments>
<Argument Name="Type">ToLowerCase</Argument>
</Arguments>
</StringOperation>
<ShowMessage>[LowerCaseText]</ShowMessage>
<!--******************-->
<!--Show the lenght of my text-->
<!--******************-->
<StringOperation Type="StringLength" VarName="Lenght" Source="[Emails]"></StringOperation>
<ShowMessage>Lenght of the string: [Lenght]</ShowMessage>
<!--******************-->
<!-- Show email addresses where @ is replaced with //-->
<!--******************-->
<StringOperation Type="Replace" VarName="EmailsWithSlashes" Source="[Emails]">
<Arguments>
<Argument Name="ReplaceFrom"><![CDATA[@]]></Argument>
<Argument Name="ReplaceTo"><![CDATA[//]]></Argument>
</Arguments>
</StringOperation>
<ShowMessage>[EmailsWithSlashes]</ShowMessage>
<!--******************-->
<!--Change text to new one, start to read text on 2nd charachter and read 10 charachters-->
<!--******************-->
<StringOperation Type="Substring" VarName="EmailsSubstring" Source="[Emails]">
<Arguments>
<Argument Name="StartFrom">2</Argument>
<Argument Name="Length">10</Argument>
</Arguments>
</StringOperation>
<ShowMessage>Substring, start from 2 and read 10 charachters: [EmailsSubstring]</ShowMessage>
<!--******************-->
<!--Show Index of "@"-->
<!--******************-->
<StringOperation Type="IndexOf" VarName="EmailsIndexOf@" Source="[Emails]">
<Arguments>
<Argument Name="Type">First</Argument>
<Argument Name="SearchString"><![CDATA[@]]></Argument>
</Arguments>
</StringOperation>
<ShowMessage>Index of first "@" : [EmailsIndexOf@]</ShowMessage>
<!--******************-->
<!--Cut only domain of my email addresse with regex-->
<!--******************-->
<StringOperation Type="Regex" VarName="EmailRegexDomain" Source="[Emails]">
<Arguments>
<Argument Name="Pattern"><![CDATA[(?:@)(\w{1,}\.\w{2,})]]></Argument>
<Argument Name="IgnoreCase">True</Argument>
<Argument Name="SingleLineMethod">False</Argument>
<Argument Name="SingleMatch">False</Argument>
<Argument Name="MatchGroups">GroupNumber</Argument>
<Argument Name="GroupNumberValue">1</Argument>
</Arguments>
</StringOperation>
<ShowMessage>[EmailRegexDomain]</ShowMessage>
</ButtonConf>

Exemple 2

Le script suivant vérifie si le texte saisi dans une zone de texte inclut le mot « ABC ».

Tout d’abord, nous vérifions l’index du mot « ABC » avec StringOperation, puis avec ConditionalAction, nous vérifions si l’index est supérieur à -1 (-1 signifie qu’il n’y a pas de texte de « ABC » trouvé dans la chaîne principale)

Copier
<ButtonConf ButtonName="INDEXoF -1" Description="This script allows to check if entered text include word ABC" QuickCommand="OK">
<TextBox VarName="Text" Question="Enter text that you want to check" Width="80"></TextBox>
<StringOperation Type="IndexOf" VarName="NewText" Source="[Text]">
<Arguments>
<Argument Name="Type">First</Argument>
<Argument Name="SearchString"><![CDATA[ABC]]></Argument>
</Arguments>
</StringOperation>
<ConditionalAction Condition="[NewText]&gt;-1">
<True>
<ShowMessage>YES,text that you entered include word "ABC"</ShowMessage>
</True>
<False>
<ShowMessage>NO,text that you entered does not include word "ABC"</ShowMessage>
</False>
</ConditionalAction>
</ButtonConf>