|
Nécessité de ces traitements
Les
données manipulées par un programme sont essentiellement de type
numérique ou
chaîne de caractères.
Si les
types numériques sont très utilisés par les programmes scientifiques,
le type chaîne est incontournable pour des étudiants en Lettres et
Sciences Humaines.
Une
variable chaîne de caractères se déclare de type String.
Exemple 1 :
Dim
MotProposé As String
La
variable contient alors une chaîne de longueur
variable selon l'affectation qui
suivra.
Exemple 2 :
Dim
Lettre As String * 1
La
variable contient alors une chaîne de longueur 1 c'est à dire
un seul caractère.
Exemple 3 :
Dim
Adresse As String * 30
La
variable contient alors une chaîne de
longueur 30. Si l'on n'affecte que 18 caractères dans une telle
chaîne, le reste est rempli d'espaces. Si l'on affecte plus de 30
caractères le surplus est tronqué.
Comparaison des chaînes de caractères
Longueur d'une chaîne :
La
longueur d'une chaîne est donnée par la fonction
Len.
Exemple :
Phrase = "Alea jacta
est."
La
fonction Len(Phrase)
retournera la valeur 15.
Il est
évident que si deux chaînes de caractères n'ont pas la même longueur elles
sont différentes. Par contre deux chaînes de même longueur ne sont pas
forcément identiques.
Comparaison
binaire :
On
compare deux chaînes par la fonction StrComp.
Elle
renvoie la valeur numérique 0
si les deux chaînes sont rigoureusement identiques et la valeur
numérique 1 si les chaînes
diffèrent même par un seul octet.
Exemple :
Phrase1 =
"My tailor is rich."
Phrase2 =
"My Tailor is rich."
Phrase3 =
" My tailor is rich."
La
fonction
StrComp(Phrase1,Phrase2) retournera
la valeur …
La
fonction
StrComp(Phrase1,Phrase3) retournera
la valeur …
Recherche d'une chaîne de caractères
- La
fonction InStr permet de rechercher si
une chaîne de caractères existe à
l'intérieur d'une autre chaîne de caractères. Cette fonction retourne la
position de la première
occurrence de la chaîne recherchée.
Syntaxe :
InStr(Chaîne1, Chaîne2)
Chaîne1
est la chaîne de caractères à traiter
(sur laquelle porte la recherche).
Chaîne2
est la chaîne de caractères recherchée
dans Chaîne1.
Exemple :
Chaîne1 = "Sed lex dura
lex" ' Auteur inconnu
Chaîne2 = "lex"
Chaîne3 = "gex"
La
fonction
InStr(Chaîne1,Chaîne2) retournera la
valeur "………."
La
fonction
InStr(Chaîne1,Chaîne3) retournera la
valeur 0.
- La
fonction Ucase met tout le texte en
majuscules et permet de rechercher indépendamment une lettre minuscule
ou majuscule.
- La
fonction Lcase met tout le texte en
minuscules et permet…
Extraction d'une chaîne de caractères
- La
fonction Right donne la partie
droite d'une chaîne de caractères. Le
nombre de caractères de cette partie doit être précisé.
Exemple :
Chaîne =
"To be or not to be"
'Shakespeare
La
fonction
Right(Chaîne,5) retournera la valeur
"………."
- La
fonction Left donne la partie
gauche d'une chaîne de caractères. Le
nombre de caractères de cette partie doit être précisé.
Exemple :
Chaîne =
"To do is to be"
'Platon
La
fonction Left(Chaîne,5)
retournera la valeur "………."
- La
fonction Mid extrait une
partie d'une chaîne de caractères.

Le
nombre de caractères de cette partie doit être précisé ainsi que la
position du premier caractère extrait.
Syntaxe :
Mid(Texte, Position,
Nombre)
Texte
est la chaîne de caractère à traiter.
Position
est la position dans la chaîne à partir
de laquelle il faut extraire des caractères.
Nombre
est le nombre de caractères à extraire.
Exemple :
Chaîne =
"Do bee do bee do"
'Frank Sinatra
La
fonction Mid(Chaîne,4,2)
retournera la valeur "…."
La
fonction Mid(Chaîne,8,9)
retournera la valeur "………..."
Applications
La
plupart des problèmes sur les chaînes de caractères se traitent à l'aide
des fonctions ci-dessus. Leur maniement est assez délicat et les résultats
quelquefois difficiles à prévoir. Seule la pratique de leur programmation
vous permettra d'en vérifier l'efficacité.
Exemple1 :
Que fait ce programme :
Dim
Vers, Mot As String
Dim
Position
As Integer
Vers = "Pour qui sont
ces serpents qui sifflent sur vos têtes ?"
Mot = InputBox("Taper
le mot à rechercher")
Position = InStr(Vers,
Mot)
If
Position = 0 Then
MsgBox("Pas trouvé !")
Else
MsgBox("Trouvé à la
position " & Position)
End If
Exemple2 :
Ce programme compte le nombre d'espaces dans une
phrase.
Dim
Phrase, Caractère As String
Dim
Compteur, Longueur, i As Integer
Phrase = InputBox("Tapez
votre phrase")
Longueur = Len (Phrase)
For
i = 1 To Longueur
Caractère = Mid(Phrase,
i, 1)
If
Caractère = " " Then Compteur = Compteur +
1
Next
i
MsgBox("Cette phrase
contient " & Compteur & " espaces.")
|