Détécter un espace dans un nom

Détécter un espace dans un nom - VB/VBA/VBS - Programmation

Marsh Posté le 22-11-2005 à 08:58:59    

Bonjour ,
 
Je crée un script de modification de certains paramètres des utilisateurs de mon AD.
Je dois crée comme mail ( alias ) Prénom + Nom @domain.com .  
Mais je rencontre un petit problème, car dans certains noms il y à des espaces.
J'ai donc su récupérer la valeur giveName ( nom ) mais je sais pas comment faire pour détecter un espace et le modifier.
 
Quelqu'un sait m'aider svp ?  
 
Bien à vous  
JuVeNaL

Reply

Marsh Posté le 22-11-2005 à 08:58:59   

Reply

Marsh Posté le 22-11-2005 à 09:51:13    

L'instruction Instr() permet d'obtenir l'emplacement d'une sous-chaine dans une chaine. Pour un espace dans une chaine, on aura donc :

i_sp = Instr(nom, " " )

Puis pour remplacer cet espace par autre chose, il faut prendre la gauche de la chaine (avec left()) et la partie droite (avec right()). On peut aussi éventuellement mettre au milieu une chaine de substitution. Si l'espace est à la fin, il ne faut pas prendre la partie droite.

Code :
  1. i_sp = Instr(nom, " " )
  2. If (i_sp > 0) Then
  3.    nom2 = Left(nom, i_sp - 1)
  4.    nom2 = nom2 & chaine_de_substitution
  5.    If (i_sp + Len(" " ) - 1 < Len(nom)) Then
  6.       nom2 = nom2 & Right(nom, Len(nom) - i_sp - Len(" " ) + 1)
  7.    End If
  8. End If

Reply

Marsh Posté le 22-11-2005 à 09:52:25    

Bonjour,
 
Il existe la fonction InStr() qui renvoie la position d'une sous-chaine dans une chaine.

Reply

Marsh Posté le 22-11-2005 à 10:05:06    

Bonjour ,
 
Je vous remercie à tout les deux de m'avoir aidé .
la programmation c'est toujours super mais pour avoir l'information ( doc ) pas évident.
 
Merçi a vous les gars sans un forum et des gars comme vous je pense que beaucoups abandonerais .
 
Bien à  vous  
JuVeNaL

Reply

Marsh Posté le 22-11-2005 à 11:10:42    

D'abors, utilise Trim$() pour enlever les espaces de début et de fin (seuls ceux entre les mots resteront).
Ensuite utilise la fonction Replace() pour remplacer tes espaces par autre chose.
InStr() ne me semble pas forcément le plus simple ici.
Sauf si tu fais des traitements plus spécifiques sur les espaces (pas toujours remplacé par le même caractère).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed