Symboles d'indice de chaîne

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 5


Introduction

Les symboles d'indice de chaîne sont les suivants :

Ces symboles sont utilisés pour désigner un caractère particulier dans une chaîne. Cette syntaxe vous permet de référencer un caractère dans un champ ou une variable de type Alpha ou Texte.

Note : Sous Mac OS, vous obtenez les deux premiers symboles en appuyant sur les touches Option+< et Option+>.

Lorsque les symboles d'indice de chaîne sont placés à gauche de l'opérateur d'affectation (:=), un caractère est affecté à la position référencée dans la chaîne. Par exemple, en postulant que la chaîne vsNom n'est pas une chaîne vide, le code suivant passe le premier caractère de la chaîne vsNom en majuscule :

   Si (vsNom#"")
      vsNom[[1]]:=Majusc(vsNom[[1]])
   Fin de si

Lorsque les symboles d'indice de chaîne apparaissent dans une expression, ils retournent le caractère auquel ils font référence sous la forme d'une chaîne d'un caractère. En voici un exemple :

      ` L'exemple suivant teste si le dernier caractère de vtText est le caractère "@"
   Si (vtText # "")
      Si (Code ascii(Sous chaine(vtText;Longueur(vtText);1))=Arobase)
         ` ...
      Fin de si
   Fin de si
   
      ` En utilisant la syntaxe des caractères d'indice de chaîne, vous écririez plus simplement :
   Si (vtText # "")
      Si (Code ascii(vtText[[Longueur(vtText)]]=Arobase)
         ` ...
      Fin de si
   Fin de si

Note avancée sur la référence à des caractères invalides

Lorsque vous utilisez les symboles d'indice de chaîne, il est de votre responsabilité de vous référer à des caractères existant dans la chaîne, de la même manière que pour les éléments d'un tableau. Si, par exemple, vous référencez le 20e caractère d'une chaîne, cette chaîne doit contenir au moins 20 caractères.

Ne pas respecter cette condition en mode interprété n'est pas signalé comme une erreur par 4D.

Ne pas respecter cette condition en mode compilé (sans options) peut entraîner une "corruption" de la mémoire, si, par exemple, vous écrivez un caractère au-delà de la fin d'une chaîne ou d'un texte.

Ne pas respecter cette condition en mode compilé est signalé lorsque le contrôle d'exécution est activé. Si, par exemple, vous exécutez le code suivant :

      ` Ne pas faire ça !
   vsToutTexte:=""
   vsToutTexte[[1]]:="A"

L'alerte suivante s'affichera :

Exemples

La méthode projet suivante ajoute une lettre capitale à tous les mots du texte passé en paramètre et retourne le texte modifié :

      ` Méthode projet de passage en capitale
      ` PasserEnCap ( Texte ) -> Texte
      ` PasserEnCap ( Texte source ) -> Texte avec des lettres capitales

   $0:=$1
   $vlLen:=Longueur($0)
   Si ($vlLen>0)
      $0[[1]]:=Majusc($0[[1]])
      Boucle ($vlChar;1;$vlLen-1)
         Si (Position($0[[$vlChar]];" !&()-{}:;<>?/,.=+*")>0)
            $0[[$vlChar+1]]:=Majusc($0[[$vlChar+1]])
         Fin de si
      Fin de boucle
   Fin de si

Une cette méthode placée dans la base, la ligne :

   ALERTE(PasserEnCap ("Bonjour, mon nom est Jean Bon et je me présente aux présidentielles !"))

... affiche l'alerte suivante :

Référence

Caractere, Code ascii, Codes ASCII.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant