Complments chanes de caractres Introduction Une variable de
Compléments: chaînes de caractères
Introduction • Une variable de type Char peut contenir un caractère. • Une variable de type String peut contenir une chaîne de caractères ou des données alphanumériques. • Pour travailler avec les 'String', on peut: – Utiliser les méthodes de la librairie String. – Utiliser les fonctions du Basic.
• • • Pour déclarer une chaîne de caractères : dim Str as string Str= "TOTO" On peut afficher le contenu de la chaîne dans un label (zone présente dans une fenêtre et où on peut afficher du texte) par exemple : Label. text = Str Cela affiche 'TOTO' Remarque : Une variable de type string contient la valeur NOTHING à sa création. Cette valeur est différente de la chaîne vide "". DIM Str As String 'Str ne contient rien Str= " " 'Str contient " " Str= "TOTO" 'Str contient "TOTO"
• Remarque : le caractère " permet de représenter une chaîne de caractères. Si nous voulons considérer " comme un caractère de cette chaîne il faut le doubler pour qu'il ne soit pas considéré comme caractère de fin de chaîne. – A=" Bonjour ""Monsieur"
• Les String sont une Classe du Framework qui contiennent entre autres les fonctions suivantes : –. Split –. Starts. With –. To. Upper –. Trim
• To. Upper : Mise en majuscules d’une chaîne de caractères – Dim str as string – Str = "abc" – Str = Str. To. Upper() – ‘ Comme Str contenait "abc" il contiendra "ABC"
• To. Lower : transforme la chaîne en minuscule. – Dim str as string – Str = "ABC " – Str = Str. To. Lower() – ‘ Comme Str contenait "ABC" il contiendra "abc"
Intérêt de To. Upper et de To. Lower • Supposons qu’on ait deux chaînes de caractères dont une a été saisie par un usager. Ne sachant pas si cet usager a saisi en majuscules ou en minuscules et pour savoir si les deux chaînes sont égales il faut les convertir en majuscules ou en minuscules. – A = "Vb" et B = "vb" – A et B sont différentes. – A. To. Lower() et B. To. Lower() sont égales.
• Trim : Permet de supprimer des caractères en début et fin de chaîne. – – – Dim A As String = "#Informatique#" Dim B As Char = "#" A=A. Trim(B) ‘Donne A= "Informatique" A=" Bonjour " A=A. Trim(" ") 'donne A="Bonjour" • Remarque : Il existe aussi Trim. Start et Trim. End pour agir seulement sur le début ou la fin de la chaîne.
• Length : Taille d’une chaîne en nombre de caractères. – Dim S as String= "VB" – Console. Write. Line(S. Length) ‘Affiche 2
• Concat : Concaténation de plusieurs chaînes : mise bout à bout : – S= string. Concat(A, B) • Il est plus rapide de faire : S=A&B
• Insert : Insère une chaîne dans une autre. – Dim S as string= "Visual. Basic" – S= S. Insert(6, " " ) ‘Donne S= "Visual Basic" Caractères insérés
• Replace : Remplace partout dans une chaîne de départ, une chaîne par une autre. • Resultat=Chaine. Depart. Replace(Chaine. ARemplacer, Chaine Qui. Remplace) – Dim S as string= "Visual_Basic" – S= S. Replace("_", " " ) ‘Donne S= "Visual Basic" • Autre exemple: – Dim La. Date as string= "12. 02. 1990" – La. Date= La. Date. Replace(". ", "/" ) ‘Donne S= "12/02/1990"
• Split : Découpe en plusieurs sous Chaînes une chaîne de départ, cela par rapport à un séparateur. – – – – Dim S as string= "Philippe ; Jean ; Toto" Dim Separateur as Char = "; " Dim Nom() as String Nom=S. Split(Separateur) Donne : Nom(0)= "Philippe" Nom(1)= "Jean" Nom(2)= "Toto" • Remarque: Quand on déclare le tableau Nom(), on ne donne pas le nombre d'éléments, c'est Split qui crée autant d'éléments qu'il faut.
• Index. Of (Last. Index. Of) : Indique la position de la première occurrence d’un caractère (respectivement la position de la dernière occurrence). – Dim A as String= "LDF. EXE" – Dim R as Char()={". "} – A. Index. Of(R) ‘retourne 3 • Si le caractère n’est pas présent -1 est retourné.
• Compare : Compare 2 chaînes : – String. Compare(a, b) – Retourne un entier négatif si a<b, 0 si a=b, positif si a>b.
• Substring : Extrait une partie d’une chaîne – Dim A as string= "Informatique" – Console. writeline (A. Substring(2, 3)) ‘Affiche for • Le premier paramètre indique la position du caractère (en commençant à la position 0) où doit commencer la sous-chaîne dont la dimension est donnée par le deuxième paramètre.
• Chars : permet d’extraire un caractère particulier en faisant référence à l'index de ce caractère par l'intermédiaire de la propriété Chars. – Dim ma. String As String = "ABCDE" – Dim mon. Char As Char – mon. Char = ma. String. Chars(3) ' mon. Char = "D"
• Pad. Right : Aligne les caractères de cette chaîne à gauche et remplit à droite en ajoutant un caractère Unicode spécifié pour une longueur totale spécifiée. – – – Dim str As String Dim pad As Char str = "Nom" Pad = convert. To. Char(". ") Console. Write. Line(str. Pad. Right(15, pad)) ' Affiche Nom. . . • Pad. Left fait l'inverse.
• Starts. With() (Ends. With()) : Permettent de tester si une string commence (ou se termine par une string), retourne TRUE ou FALSE. – Dim A As String = "Informatique" – Console. Write. Line(A. Starts. With("Inf"))
• Mid: Permet de récupérer une sous-chaîne. – Ma. String = "Mid Demonstration" – A = Mid(Ma. String, 1, 3) ' Retourne "Mid". – Retourne 3 caractères à partir du premier. Pour cette fonction la première position est à 1 et non à 0. Le premier paramètre indique la position du caractère où doit commencer la souschaîne, en commençant à la position 1. (les caractères sont comptés 1, 2, 3. . . ; on rappelle qu'avec Sub. String la sous-chaîne, commence à la position 0). • Remarque 1 : – A = Mid(Ma. String, 14) – Retourne "tion": du 14ème à la fin (pas de 3ème argument) • Remarque 2 : – Mid permet aussi de remplacer une string dans une string – Mid(Ma. String, 1, 3) = "Fin" – Retourne : Ma. String="Fin Demonstration"
• Left (ou Right) : Retourne x caractères de gauche ou de droite: – A = Right(Ma. String, 2) 'A="on" – A= Microsoft. Visual. Basic. Left (Ma. String, 2) 'A="Mi" • Remarque : Pour lever toute ambiguïté avec les méthodes left d'autres librairies, il faut indiquer Microsoft. Visual. Basic. Left au lieu de Left.
• Len : Retourne la longueur de la chaîne – My. Len = Len(Ma. String) ' Retourne 17.
• LTrim (ou RTrim) : Enlève les espaces à gauche ou à droite d'une chaîne. – A=LTrim(" RRRR") ' A="RRR"
• In. Str : Retourne un entier spécifiant la position de début de la première chaîne à l'intérieur d'une autre. Position-de-départ détermine à partir de quel caractère la recherche doit se faire. – N = In. Str(position-de-depart, "aaaa. Raa", "a. R") 'retourne 4 • Si la chaîne n'est pas trouvée, retourne 0.
• Str. Comp : Compare 2 chaînes. – Str. Comp ("aaaa. Raa", "a. R") • Si les chaînes sont égales alors 0 est retourné sinon c’est 1.
• Space : Retourne une chaîne d'espaces: – Space(10) ‘retourne " "
• Str. Dup : Retourne une chaîne de caractères par duplication d'un caractère dont on a spécifié le nombre. – ma. String = Str. Dup(5, "P") ' Retourne "PPPPP"
• Asc : Retourne le code ASCII du caractère entré. – x=Asc("A") 'retourne 65 – x=Asc("ABCD") 'retourne 65 : Seul le premier caractère est pris en compte • Asc. W : retourne le code Unicode du caractère entré. Il peut être compris entre 0 et 65 535.
• Chr et Chr. W : Retourne le caractère associé au code de caractère. – Chr(65) retourne "A" • Remarque : Chr. W retourne le caractère correspondant à l'Unicode.
• Get. Char : Retourne le caractère d'une chaîne à une position donnée. – Dim ma. String As String = "AIDE" – Dim mon. Char As Char – mon. Char = Get. Char(ma. String, 3) ' mon. Char = "D"
• LCase (Ucase) : Retourne la chaîne en minuscule (ou majuscule).
• Lset (Rset) : Retourne une chaîne alignée à gauche avec un nombre de caractères. – Dim ma. String As String = "gauche" – Dim R As String – R = LSet(ma. String, 2) ' Retourne "ga" • Si la chaîne de départ est plus courte que la longueur spécifiée, des espaces sont ajoutés. – R = LSet(ma. String, 8) ' Retourne "gauche "
• Str. Revers : Retourne une chaîne où les caractères ont été inversés. – Dim ma. String As String = "election" – Dim rev. String As String – rev. String = Str. Reverse(my. String) ' Retourne "noitcele"
• Like: compare une chaîne String avec un patron, elle permet de voir si la chaîne contient ou ne contient pas un ou des caractères, ou une plage de caractères. Selon : ? veut dire tout caractère unique * veut dire un ou plusieurs caractères. # veut dire tout chiffre. [caractères] veut dire tout caractère présent dans la liste. [!caractères] veut dire tout caractère NON présent dans la liste. – - permet de spécifier un début et une fin de plage. – result = Chaine Like Pattern – – –
Exemples • • • Dim R As Boolean R = "D" Like "D" R = "F" Like "f" R = "F" Like "FFF" R = "c. BBBc" Like "c*c" R = "J" Like "[A-Z]" R = "I" Like "[!A-Z]" R = "a 4 a" Like "a#a" R = "b. M 6 f" Like "b[L-P]#[!c-e]" => True. => False. => True
- Slides: 36