Chaînes de caractères


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")








(c) - CYBER@TOM ASSOCIATION 2000-2004