<< Retour au sommaire

 

La fonction StringSegment

 

 

 

Le sommaire Table des matières:

  1. Présentation ;
  2. Un exemple ;
  3. Variables et StringSegment ;
  4. La fonction StringSegmentCount ;
  5. La fonction StringSegmentIndex.

 

Présentation

 

La fonction StringSegment permet d’extraire une sous chaîne de caractères contenue dans une chaîne.

Mais pour que cela soit possible, il faut que la chaîne de caractères dans laquelle la recherche est effectuée contienne des caractères communs qui jouent le rôle de séparateurs de sous chaîne.

Un indice est également utilisé dans la fonction StringSegment. Il permet de pointer la sous chaîne à extraire, les sous chaînes devant impérativement être distinctes grâce à un séparateur commun.

 

La syntaxe :

StringSegment (« chaîne à traiter », »séparateur », indice)

 

La description :

 

Remarque :


Un exemple

 

Ici, nous allons créer une variable de type String qui contiendra une liste de villes séparées par un point virgule en guise de séparateur.

Puis, la fonction SayString permettra la lecture de la sous chaîne se trouvant en deuxième position :

 

Script TableauDeVilles ()

; Déclaration de la variable Villes

Var String Villes

; Affectation de plusieurs villes dans la variable

; Chaque ville est séparée de la suivante par un point virgule

Let Villes = "PARIS;MARSEILLE;BORDEAUX;TOULOUSE;ROCHEFORT"

; Lecture de la deuxième ville

SayString (StringSegment (Villes,";",2))

EndScript

 


Variables et StringSegment

 

Avec le langage script, vous pouvez créer plusieurs variables que vous affectez dans une seule variable.

Ainsi, grâce à la fonction StringSegment, la variable contenant les autres variables pourra être utilisée comme un tableau.

 

D’abord, nous devrons créer les variables de base et leur affecter les données appropriées.

Ensuite, nous affecterons ces variables de base dans une variable en concaténant le nom des variables de base avec un séparateur, par exemple barre verticale.

Du coup, la variable tableau contiendra le contenu de toutes les variables de base séparées par une barre verticale.

Alors, ultérieurement, la fonction StringSegment permettra de lire l’un des différents segments de la variable tableau grâce à l’indice et au séparateur…

 

Voici un exemple :

 

Script SaisirPersonne ()

; Déclaration des 3 variables qui seront contenues dans le tableau

Var String Nom,

String Prenom,

String Ville,

; Déclaration de la variable qui sera utilisée comme tableau

String Personne

; Saisie des infos

InputBox ("Veuillez saisir votre Nom ","Nom",Nom)

InputBox ("Veuillez saisir votre prénom ","Prénom",Prenom)

InputBox ("Veuillez saisir votre ville ","Ville",Ville)

   ; Affectation des 3 variables dans le tableau, utilise la technique de concaténation

Let Personne = Nom+"|"+Prenom+"|"+Ville

; Lecture des infos depuis le tableau

sayString ("Vous vous appelez")

SayString (StringSegment(Personne,"|",1))

SayString (StringSegment(Personne,"|",2))

sayString ("et vous habitez dans la ville de")

SayString (StringSegment(Personne,"|",3))

SayString ("N'est-ce pas ?")

EndScript

 


La fonction StringSegmentCount

 

Cette fonction retourne un entier correspondant au nombre de segments contenus dans une chaîne.

 

La syntaxe :

StringSegmentCount (« chaîne », « Séparateur »)

 

La description :

 

Exemple :

 

Var String chaine

Let chaine = "Bonjour;madame;la;marquise"

SayString ("Le nombre de mots est :")

SayInteger (StringSegmentCount (chaine, ";"))

 

 


La fonction StringSegmentIndex

 

Extra !

Cette fonction permet de localiser un segment dans une chaîne.

 

La syntaxe :

StringSegmentIndex (« Chaîne », « Séparateur », « Sous chaîne », Mode de recherche)

 

La description :

Cette fonction retourne un entier qui correspond à l’index du segment contenant la sous chaîne à rechercher.

 

Les paramètres :

·   « Chaîne », C’est le String dans lequel doit avoir lieue la recherche ;

·   « Séparateur », C’est le caractère qui délimite les segments ;

·   « Sous chaîne », C’est le ou les caractères à rechercher ;

·   Mode de recherche, Il s’agit d’un entier qui permet de préciser si le ou les caractères à rechercher doivent correspondre en partie ou à l’intégralité d’un segment :

0, ou la constante FALSE, si la sous chaîne à rechercher ne peut correspondre qu’à une partie du texte contenu dans le segment recherché ;

1, ou la constante TRUE, si la sous chaîne ne peut pas être une partie d’un segment, mais un segment dans sa totalité.

 

Remarque :

·   Si vous décidez d’avoir recours aux constantes « TRUE » et « FALSE », vous devez impérativement inclure le fichier d’en-tête des constantes intégrées dès la première ligne du fichier source.

Include "HJCONST.JSH"

 

Exemple :

 

Dans le code présenté ci-après, nous recherchons à connaître l’index du segment contenant le caractère « % ». Comme il est impossible que ce caractère occupe l’intégralité d’un segment, le troisième paramètre de la fonction sera 0, donc représenté par la constante FALSE.

 

Script RechercheProgression ()

; Déclaration de la variable qui contiendra le texte depuis lequel la recherche aura lieue

Var String LigneProgression

Let LigneProgression = "Progression de l'opération: 14% 18 Minutes restantes"

; Recherche et annonce de l'index du segment contenant le caractère %

SayInteger (StringSegmentIndex (LigneProgression," ","%",FALSE))

; JAWS annonce l'index 4

EndScript

 

Puisse que nous sommes désormais en mesure de localiser l’index du segment contenant le caractère « % », pourquoi ne pas faire lire la progression, c’est-à-dire le segment entier ?

 

Script RechercheProgression ()

; Déclaration de la variable qui contiendra le texte depuis lequel la recherche aura lieue

Var String LigneProgression

Let LigneProgression = "Progression de l'opération: 14% 18 Minutes restantes"

; Recherche et annonce de la progression contenue dans la variable

SayString (StringSegment (LigneProgression," ",StringSegmentIndex (LigneProgression," ","%",FALSE)))

; JAWS annonce "14%"

EndScript

 

Philippe BOULANGER