Traitement des chaines de
caractères en Visual Basic
Chapitre 6
Introduction
Parmi les données manipulées par un
programme, en général, on peut citer les
chaines de caractères qui peuvent se
présenter comme des tableaux à une
dimension de caractères.
Ces caractères peuvent être :
Des lettres de l’alphabet, majuscules (A…Z)
ou minuscules (a…z);
Des chiffres(0…9) ;
Un espace;
Des codes d’opérations (+,-,*,/,…);
Des caractères de ponctuation(_ ,-,!,…);
Des caractères spéciaux (&,@,#,§,…);
Etc.
Déclarations d’une chaine de caractère
Les variables chaines de caractères se
déclarent en utilisant le type String de la
manière suivante :
Dim CH As String * L
CH étant la variable à déclarer ,L est le
nombre de caractère de la chaine
(facultatif)
Si la langueur n’est pas spécifiée alors la
variable contiendra une chaine de
longueur variable selon l’affectation qui
va suivre la déclaration.
Exemples
Dim CH1 As String
La variable CH1 est de longueur variable, elle
peut contenir une chaine quelconque.
Dim CH2 As String * 1
La variable CH2 est de longueur 1, elle peut
contenir un seul caractère.
Dim CH3 As String * 25
La variable CH3 est de longueur 25, elle peut
contenir une chaine de longueur 25 caractères.
Remarques
Si la chaine affectée à CH3 est de
longueur inférieure à 25 , les case
complémentaires contiendront des
espaces.
Si la chaine affectée à CH3 est de
longueur supérieur à 25 , les caractères
supplémentaires sont simplement ignorés
par la variable CH3.
Longueur d’une chaine
La longueur d’une chaine est le nombre de
caractère de la chaine, elle est renvoyée par
la fonction standard : Len avec la syntaxe
suivante: L=Len (CH)
Ch= ‘’ Ali va au marché !’’
L = Len ( Ch)
La variable L contiendra la valeur 18.
Comparaison de deux chaines de
caractères
La comparaison de deux chaines de
caractères commence par les longueurs :
deux chaines de caractères de longueurs
différentes sont évidemment différentes,
alors que deux chaines de même longueurs
ne sont pas nécessairement identiques.
Comparaison de deux chaines de
caractères
On peut faire la comparaison de deux
chaines de caractères a l’aide de
l’instruction Option Compare ;
Option Compare Binary : pour tenir
compte des majuscules et des minuscules.
Option Compare Text : pour ne pas tenir
compte des majuscules et des minuscules.
Comparaison de deux chaines de
caractères
Pour comparer deux chaines ,on utilise la
fonction StrComp avec la Syntaxe suivante :
StrComp(CH1,CH2)
Cette fonction retourne la valeur 0 si les
deux chaines sont identiques et la valeur -1
dans le cas contraire.
Exemple :
Ch1=’’Au revoir les amis ’’
Ch2=’’Au Revoir les amis ’’
Ch3=’’Au revoir mes amis ’’
A=StrComp(Ch1,Ch2)
B=StrComp(Ch1,Ch3)
La variable A contiendra la valeur 0, alors que
la variable B contiendra la valeur -1.
Concaténation de chaines de caractères
Pour concaténer deux chaines de caractères, on
utilise l’opérateur « & » de la manière suivante :
CH3 = CH1 & CH2
Exemple :
Ch1= ’’ Bonjour ’’
Ch2=’’ les amis ’’
La
Ch3=Ch1 & contiendra
chaine Ch3 Ch2 & ’’de la :classe’’
la chaine ’’ Bonjour
les amis de la classe’’
Recherche d’une chaine de caractère dans
l’autre
On peut chercher si une chaine CH2 existe à
l’intérieur d’une autre chaine CH1 en
utilisant la fonction InStr qui retourne la
position de la première occurrence de la
chaine cherchée. La syntaxe de cette fonction
est la suivante :
InStr(CH1, CH2)
Recherche d’une chaine de caractère dans
l’autre :
Exemple
Ch1= ’’Au revoir mes amis’’
Ch2=’’mes’’
Ch3= ’’Ali’’
C= InStr(Ch1,Ch2)’C retourne 11
D=variable
La InStr(Ch1,Ch3)’D retourne
C contiendra la valeur 0 la
11, qui est
position de la première occurrence de la chaine
‘’mes ’’ dans la chaine Ch1.
Convertir une chaine de
caractère
Pour mettre tous les caractères
alphabétiques d’une chaine de caractères en
majuscules, on utilise la fonction Ucase de la
manière suivante : Ch2=Ucase
(Ch1)
Pour mettre tous les caractères
alphabétiques d’une chaine de caractères en
minuscules, on utilise la fonction Lcase de la
manière suivante : Ch2=Lcase
(Ch1)
Extraction d’une chaine de caractères
Pour avoir une chaine de caractères
constituée des n caractères situés à droite
dans une autre chaine de caractères, on
utilise la fonction Right de la manière
suivante :
Ch2 = Right(Ch1,n)
Ch1= ‘’Au revoir mes amis‘’
Ch2= Right(Ch1,8) ‘ Ch2 contiendra
‘’mes amis’’
Extraction d’une chaine de caractères
Pour avoir une chaine de caractères
constituée des n caractères situés à gauche
dans une autre chaine de caractères, on
utilise la fonction Left de la manière suivante
:
Ch2 = Left(Ch1,n)
Ch1= ‘’Au revoir mes amis‘’
Ch2= Left(Ch1,8) ‘ Ch2 contiendra
‘’Au revoi’’
Extraction d’une
Pour avoir une chaine
chaine de caractères
de caractères constituée
des n caractères situés à partir du caractère à la
position m dans une autre chaine de caractères,
on utilise la fonction Mid de la manière
suivante :
Ch2 = Mid(Ch1,n,m)
Ch1= ’’Au revoir mes amis’’
Ch2= Mid(Ch1,4,10) ‘ Ch2 contiendra ‘’
revoir mes’’
Ch3= Mid(Ch1,4) ‘ Ch3 contiendra ‘’
revoir mes amis’’
Extraction d’une chaine de caractères
Mid(Ch1, 11)= ‘’les’’
La chaine CH1 contiendra la chaine de
caractères : « Au revoir les amis ». On a
pu modifier les caractères « mes » de la
chaine Ch1 par les caractères « les ».
Enlever des espaces d’une chaine de
caractères
Pour supprimer tous les espaces situés à
gauche d’une chaine de caractères
donnée dans une autre chaine de
caractères, on utilise la fonction Ltrim de
la manière suivante :
CH2=LTrim (CH1)
Enlever des espaces d’une chaine de
caractères
Exemple :
Ch1= ’’ Bonjour ’’
Ch2= LTrim(Ch1)
La chaine Ch2 contiendra la chaine de
caractères
’’Bonjour ’’
Enlever des espaces d’une chaine de
caractères
Pour supprimer tous les espaces situés à
droite d’une chaine de caractères donnée
dans une autre chaine de caractères, on
utilise la fonction Rtrim de la manière
suivante :
CH2=RTrim (CH1)
Enlever des espaces d’une chaine de
caractères
Exemple :
Ch1= ’’ Bonjour ’’
Ch2= RTrim(Ch1)
La chaine Ch2 contiendra la chaine de
caractères
’’ Bonjour’’
Enlever des espaces d’une chaine de
caractères
Pour supprimer tous les espaces situés à
droite et à gauche d’une chaine de
caractères donnée dans une autre chaine de
caractères, on utilise la fonction Trim de la
manière suivante :
CH2=Trim (CH1)
Enlever des espaces d’une chaine de
caractères
Exemple :
Ch1= ’’ Bonjour ’’
Ch2= Trim(Ch1)
La chaine Ch2 contiendra la chaine de
caractères
’’Bonjour’’
Construction d’une chaine de caractères
Pour construire une chaine de caractères
formée de N espaces, on utilise la fonction
Space de la manière suivante :
Ch1=Space(N)
Exemple: Ch1 = Space ( 15 )
La chaine Ch1 contiendra une chaine de
caractères de 15 espaces : ’’ ‘’
Construction d’une chaine de caractères
Pour construire une chaine de caractères
formée de N caractères (caractère
spécifique), on utilise la fonction String de la
manière suivante :
Ch1=String(N, ’’*’’)
Exemple: Ch1=String(15, ’’*’’)
La chaine Ch1 contiendra une chaine de
caractères de 15 astérisques ’’*’’ :
’’****************‘’
Pour avoir une chaine de caractères à une
longueur fixe, cadrée à gauche et complétée à
droite par des espaces, on utilise la fonction
Lset de la manière suivante :
Lset CH2 = ’’Chaine’’
Exemple
Dim Ch1 As String
Dim Ch2 As String * 15
Rset Ch2 = ’’Bonjour’’
Ch1= ’’D’’ & Ch2 & ’’F’’
La chaine Ch1 contiendra la chaine de
caractères suivante : ’’Dbonjour--------F’’, les ’’-’’
marquent des espaces.
Pour avoir une chaine de caractères à une
longueur fixe, cadrée à droite et complétée à
gauche par des espaces, on utilise la fonction
Rset de la manière suivante : Rset Ch2 =
’’Chaine’’
Exemple
Dim Ch1 As String
Dim Ch2 As String * 15
Rset Ch2 = ’’Bonjour’’
Ch1= ’’D’’ & Ch2 & ’’F’’
La chaine Ch1 contiendra la chaine de
caractères suivante : ’’D--------bonjourF’’, les ’’-’’
marquent des espaces.
Formatage de chaines de caractères
Pour avoir une chaine de caractère formatée
selon un format spécifié, on utilise la fonction
Format de la manière suivante :
Format ( chaine, format)
Les caractères de formatage utilisés pour les
données numériques sont :