Malgré le passage@visuelbasic.net je continue à utiliser les fonctions vb.right et vb.left provenant de VB 6.
J'ai bien compris qu'il existe l'instruction suivante :
qui me permet de récupérer les quatre premiers caractères de dd = test.Substring(4)
Et si j'ai tout compris pour récupérer les quatre derniers caractères de droite il faudrait que je saisisse
dd = test.Substring(5,4)
si je considère que la zone test comprend neuf caractères.
N'y aurait-il pas quelque chose de plus simple pour récupérer les X ce dernier caractère de droite ?
Je sais bien que ma question est un peu basique mais je ne comprends pas pourquoi on n'a pas pu conserver les anciennes instructions left et Right
Bonjour
La méthode Substring a deux paramètres
- le premier indique la position du premier caractère de la sous-chaine à prendre comme résultat ( attention les positions commencent à 0)
- le second paramètre ( optionnel) indique le nombre de caractères à prendre en compte pour le résultat . Si ce paramètre est omis tout le reste de la chaine à partir de la position du premier caractère est prise en compte .
Ainsi
Dim chaine as String = "Visual Studio"
Dim SousChaine as String = Chaine.Substring(4) renvoit "al Studio"
Dim SousChaine as String = Chaine.Substring(8) renvoit "Studio"
Dim SousChaine as String = Chaine.Substring(2,4) renvoit "sual"
Dim SousChaine as String = Chaine.Substring(0,6) renvoit "Visual"
Maintenant si l'on sait connait pas la longueur de la chaine on peut se servir de la propriété Length qui renvoie le nombre de caractères de la chaine pour avoir la position de départ de la sous-chaine .
Dim SousChaine as String = Chaine.Substring(Chaine.Length - 4) renverra toujours les 4 derniers caractères de la chaine Chaine quelle que soit sa longueur ( il est évident que la chaine ne peut être d'une longueur inférieure à 4 sinon ça plante )
Maintenant pourquoi ne pas avoir gardé Left et Right de VB 6 : sûrement pour uniformiser avec C# qui utilise aussi la méthode Substring ( et n'oublions aussi que C# et VB NET dans la suite Visual Studio utilise le même FrameWork : la bibliothèque de classes autour de laquelle s'articule Visual Studio Net)
cela vient peut être aussi du fait qu'en Basic, la string n’était pas traitée comme dans de nombreux autres langages, à savoir un hybride entre une variable à part entière et un tableau de caractères
Dim toto As Char = "Coucou"(3)
toto vaut "c"c
On peut donc y appliquer tous les outils des collections
Dim envers As String = String.Join("", "Coucou".Reverse())