|
0) Introduction
On peut dire que Visual Basic est
très fort en matière de gestion des chaînes
de caractères. Ceci est particulièrement utile
car tous les traitements de variables dans les zones de
texte ou dans les tableaux s'opèrent dans le format
de chaînes de caractères.
Note : le caractère "dollar"$ àla fin de chaque fonction de traitement des chaînes de caractères
n'est pas obligatoire, vous pouvez donc remplacer Left$ par Left
si vos le souhaitez.
1) Suppression
des espaces
- L'instruction LTrim supprime
les espaces àgauche de la chaîne.
- L'instruction RTrim supprime les espaces àdroite
de la chaîne.
- L'instruction Trim supprime les espaces àgauche
et àdroite de la chaîne.
' ex: "sur
le web "donne "sur le web"
SansEspace$ = Trim(AvecEspace$)
2) Diviser les chaînes de caractères
- L'instruction Left copie un
certain nombre de caractères àgauche d'une chaîne.
- L'instruction Right copie un certain nombre de caractères
àdroite d'une chaîne.
- L'instruction Mid copie une portion quelconque d'une
chaîne.
Ancienne$ = "Sur le web"
' ex: renvoie "Sur"
Nouvelle$ = Left(Ancienne$, 3)
' ex: renvoie"web"
Nouvelle$ = Right(Ancienne$, 3)
' ex: renvoie
"le"
Nouvelle$ = Mid(Ancienne$, 5, 2)
3) Recherche
dans des chaînes de caractères
- La fonction Instr permet de
savoir si une chaîne se trouve dans une autre chaîne
de caractères. Vous pouvez aussi définir le point
de départ d'une recherche.
' recherche
d'un (b) àpartir du 5ème caractère
dans une chaîne
If Instr(5, "sur le web",
"b") Then
' "b"trouvé
End If
- La fonction Instr retourne la position
de la chaîne recherchée si elle est trouvée.
Par exemple, si vous désirez séparer la partie àgauche de la chaîne trouvée, voici un modèle
:
Chemin$ = "c:\windows\system"
Trouve% = Instr(Chemin$, "\")
Lecteur$ = Left(Chemin$, Trouve%-1)
' on obtient donc Lecteur$ = "c:"
- Instr effectue une recherche en partant
de la gauche. Si vous souhaitez que la recherche commence àdroite, vous devez créer une fonction personnalisée
sans l'aide de Instr. Par exemple, pour obtenir l'extension d'un
fichier àpartir d'un clic de souris sur une FileListBox,
on utilisera la fonction suivante :
Function
Exten(Chaîne$, what$)
For X&= Len(Chaîne$)
To 1 Step
-1
z$ = Mid(Chaîne$, X&, 1)
If z$ = what$ Then
X&= Len(Chaîne$) - X&
Exten = Right(Chaîne$, X&)
Exit Function
End If
Next X&
End Function
Private
Sub File1_Click()
rrp$ = LCase(Exten(File1.filename, "."))
End Sub
- La procédure d'événement
File1_Click recherche par l'intermédiaire de la fonction
Exten un point "."dans le nom du fichier (File1.filename).
La fonction Exten parcours le nom du fichier passéen chaîne
de caractères Chaîne$ àl'envers, et cherche
what$, ici en l'occurrence un point ".". Puis, quand
elle l'a trouvé, elle prend la longueur du nom de fichier
àl'aide de Len et lui soustrait la position du point.
On obtient une nouvelle valeur de x&. Puis Exten renvoie les
x&derniers caractères du nom de fichier, ce qui correspond
àl'extension du fichier.
' (exemple : dans
autoexec.bat, on a x&= 9. x&devient 12 (longueur du
nom) - 9 = 3. Exten renvoie les 3 derniers chiffres du nom de
ce fichier, soit bat.
- Avec la fonction Instr, vous
pouvez aussi limiter les caractères dans une zone
de texte. L'événement KeyPress renvoie le
code ANSI d'un caractère.
Private Sub
Text1_KeyPress(KeyAscii As Integer)
auto$ = "123456789"
If InStr(auto$, Chr(KeyAscii))
= 0 Then KeyAscii = 0
End Sub
- Dans cette procédure, les caractères
autorisés sont listés dans une chaîne de caractères
auto$ , et le code du caractère saisi est converti en un
caractère avec la fonction Chr. Une comparaison directe
entre les deux variables avec Instr et le tour est joué.
Si la valeur retournée est 0, cela signifie que le caractère
entrén'est pas autorisé, et donc la valeur KeyAscii
doit être remise àzéro, ce qui efface le
caractère saisi.
5) Longueur
d'une chaîne
- La taille d'une chaîne de caractères
est renvoyée par la fonction Len.
' ex: (sur le
web) donne 10
Longueur&= Len(Chaine$)
5) Conversion
majuscules/minuscules
- La fonction UCase convertit
une chaîne de caractères en majuscules.
- La fonction LCase convertit une chaîne de caractères
en minuscules.
Phrase$ = "Sur le web"
' ex: (Sur le web)
donne (SUR LE WEB)
Maj$ = UCase(Phrase$)
' ex: (Sur le web)
donne (sur le web)
Min$ = LCase(Phrase$)
- Si vous souhaitez faire une conversion
immédiate, dans une zone text par exemple, procédez
de la manière suivante :
Private
Sub Chemin_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(LCase(Chr(KeyAscii)))
End Sub
- L'événement Keypress
est déclenchéàchaque frappe d'un
caractère sur le clavier dans une zone de texte.
Le caractère saisi est passéàla procédure
d'événement sous forme de son code ASCII.
A partir de là, on convertit ce code en caractère
avec le mot cléChr. Puis, avec Lcase$, on convertit
ce caractère en minuscule. A partir de là,
on le reconvertit en code ascii avec le mot cléAsc
et on l'attribut àKeyascii.
6) Conversion
chaîne/nombre
- La fonction Val convertit une
chaîne de caractères contenant des nombres en une
valeur numérique.
- La fonction Str convertit une valeur numérique
en chaîne de caractères.
' ex: "1054"retourne 1054
A% = Val("1054")
' ex: 1054 retourne
"1054"
A$ = Str(1054)
7) Conversion
code de caractère/caractère
- La fonction Chr convertit un code de
caractère ASCII en un caractère.
- La fonction Asc convertit un caractère en code de caractère
ASCII.
' ex: 65 retourne
A
a$ = Chr("65")
' ex: A retourne
65
a$ = Asc("A")
|