Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment extraire une partie d'une chaîne ?
auteur : bbil

On retrouve les fonctions habituelles d'extraction d'une partie de chaîne de Visual basic :

  • Left(chaîne, NombreDeCaracteres) : Pour extraire la partie gauche de la chaîne donnée en paramètre
  • Right(chaîne, NombreDeCaracteres) : Pour extraire la partie droite de la chaîne donnée en paramètre
  • Mid(chaîne, posdepart, NombreDeCaracteres) : Pour extraire le nombre de caractères spécifiés, à partir d'un caractère donné (posdepart)
VBS
Dim st
st="Bienvenue sur DVP"
Wscript.Echo Left(st,9)
Wscript.Echo Mid(st,11,3)
Wscript.Echo Right(st,3)
Résultat
Bienvenue
sur
DVP
Nota: Pour la fonction Mid si le troisième paramètre (NombreDeCaracteres) est omis ou supérieur au nombre de caractères disponibles dans la chaîne après la position de départ, le caractère en position de départ et tous les caractères qui lui succèdent sont retournés.
ce qui donne :
VBS
Dim st
st="Bienvenue sur DVP"
Wscript.Echo Mid(st,11)
Wscript.Echo Mid(st,11,255)
Résultat
sur DVP
sur DVP

Comment connaitre la longueur d'un chaîne ?
auteur : bbil

En utilisant la fonction Len() :
VBS
Dim st
st="Bienvenue sur DVP"
Wscript.Echo Len(st)
Résultat

17

Comment concaténer deux chaînes ?
auteur : bbil

L'opérateur usuel de concaténation est : &
VBS
Dim st1
Dim st2
'
' Concaténation de la "valeur" de 2 variable
'
st1 = "Bienvenue "
st2 = "sur dvp"
Wscript.Echo st1 & st2
' Une chaîne et une variable :
Wscript.Echo st1 & " a vous"

ce qui donne :

Bienvenue sur dvp
Bienvenue  a vous

Il est aussi possible (mais déconseillé) d'utiliser l'opérateur : +
Celui-ci se comporte en opérateur de concaténation lorsque les 2 membres de l'opération sont des chaînes
VBS

Wscript.Echo "à voir " + st2
'Attention dans l'utilisation de l'opérateur +
Wscript.Echo "1" + "2"
Résultat
à voir sur dvp
12

et en opérateur d'addition lorsque l'un des opérantes est numérique
VBS
Wscript.Echo "3" + 2
Wscript.Echo 1+2
Résultat
5
3
warning
Une mauvaise utilisation de l'opérateur +, peut provoquer une erreur de type :
Erreur d'exécution Microsoft VBScript: Type incompatible: '[string: "a"]'


VBS
Wscript.Echo "a" + 1

la chaîne "a" ne pouvant pas être additionnée à la valeur numérique 1.


Comment "éclater" une chaîne dans un tableau ?
auteur : bbil

la fonction Split permet "d'éclater" le contenu d'une chaîne dans un tableau, en fonction d'un caractère séparateur
VBS
Dim st,i,tb
st="Antoine,Pierre,Jacques,Alain"
tb = split(st,",")
For i = lbound(tb) to ubound(tb)
  Wscript.echo tb(i)
next
Résultat
Antoine
Pierre
Jacques
Alain
  Nota: les fonctions Lbound et Ubound permettent de renvoyer les limites basse et haute des index d'un tableau. La fonction Split renvoyant un tableau dont l'index le plus bas est toujours 0, on aurai pu écrire :
For i = 0 to ubound(tb)

Comment transformer un tableau en une chaîne?
auteur : bbil

Il existe un pendant à la fonction Split :


la fonction Join qui permet de regrouper tous les éléments d'un tableau de chaîne en une chaîne, tout en précisant un séparateur :
VBS
Dim st,tb(3)
Tb(0)="Antoine"
tb(1)="Pierre"
tb(2)="Jacques"
tb(3)="Alain"

st = join(tb,",")
 Wscript.echo st
Résultat
Antoine,Pierre,Jacques,Alain
  Nota: Si le caractère de séparation est omis, un espace est utilisé.


Comment rechercher une chaîne de caractères dans une autre ?
auteur : Romain Puyfoulhoux
Instr(p,ch1,ch2) recherche la chaîne ch2 dans ch1 à partir de la position p. Si ch2 est trouvée, la valeur renvoyée est la position de son premier caractère dans ch1, sinon la fonction renvoie 0.
vb

pos = InStr(4, "Nous sommes au mois de Juillet.", "Juillet")    'renvoie 24
pos = InStr(27, "Nous sommes au mois de Juillet.", "Juillet")   'renvoie 0

Comment utiliser les expressions régulières ?
auteur : Romain Puyfoulhoux
La librairie Microsoft VBScript Regular Expressions permet d'utiliser des expressions régulières dans Visual Basic. Il faut l'ajouter dans les références du projet.

Le principe consiste à créer un objet RegExp, à le paramétrer en modifiant ses propriétés, puis à lancer la recherche en appelant la méthode Execute(). Vous devez passer en paramètre la chaîne de caractères dans laquelle vous souhaitez faire une recherche. La méthode Execute renvoie les occurrences dans une collection. Si vous avez donné la valeur True à la propriété Global de l'objet RegExp, cette collection contiendra toutes les occurrences, sinon seulement la première.

Voici comment vérifier la validité d'une adresse email. Ce code a été écrit avec la version 5.5 de la librairie.
vbs
Public Function EmailValide(ByVal email ) 
    Dim regEx , occurrences
    Set regEx = New RegExp
    regEx.Pattern = "^[a-z0-9_.-]+@[a-z0-9.-]{2,}\.[a-z]{2,3}$"
    regEx.IgnoreCase = True 'Ne pas distinguer les minuscules des majuscules
    regEx.Global = False 'Renvoyer seulement la première occurrence
    Set occurrences = regEx.Execute(email)
    EmailValide = (occurrences.Count = 1)
   
End Function

Comment tester une chaîne de caractères avec une expression régulière ?
auteur : Baptiste Wicht
Il faut pour cela utiliser l'objet RegExp qui va permettre de valider une chaîne de caractères en fonction d'un pattern :
vbs
Set RegularExpressionObject = New RegExp
Ensuite, il faut le paramétrer en fonction de la recherche :
With RegularExpressionObject
 .Pattern = Pattern
 .IgnoreCase = Boolean
End With
La pattern est l'expression régulière et IgnoreCase permet d'indiquer s'il faut prendre en compte ou non la casse.

Ensuite, une fois l'objet paramétré, il suffit d'utiliser la méthode Test avec la chaîne à tester en paramètre :
RegularExpressionObject.Test(aTester)
Cette méthode va nous renvoyer True ou False en fonction du résultat.


Voici par exemple, la méthode pour valider une adresse IP :
vbs
Set RegularExpressionObject = New RegExp
 
With RegularExpressionObject
 .Pattern = "^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)$"
 .IgnoreCase = False
End With
 
MsgBox RegularExpressionObject.Test("172.16.18.21")
MsgBox RegularExpressionObject.Test("300.22.194.37")

Ce qui nous retourne true pour la première chaîne et False pour la seconde.

fr III-B. Les expressions régulières


Comment interpréter une chaîne string ?
auteurs : Sadneth, shwin
En utilisant la méthode Eval :
vbs

Dim toto 
  
toto = "SUPER * 10" 
MsgBox Eval(Replace(toto, "SUPER", 500)) 

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com