pelw
Messages postés148Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention14 février 20056 12 févr. 2003 à 02:12
Voici quelques explications supplémentaires :
On recherche la position du 1er espace, à partir de la position 1 (début) de la chaîne
i = InStr(1, chaine, " ")
On boucle jusqu'à ce qu'on ne trouve plus d'espace
Do Until i = 0
On remplace le dernier espace trouvé (sa position étant donnée par i) par "_"
Mid$(chaine, i, 1) = "_"
On recherche la position de l'espace suivant, à partir de la position du dernier espace trouvé
i = InStr(i, chaine, " ")
Si on trouve un espace (i > 0), on fait une nouvelle itération dans la boucle. Si on ne trouve plus d'espace (i = 0), on quitte la boucle et le traitement est terminé
Loop
cs_MyC
Messages postés94Date d'inscriptionlundi 23 septembre 2002StatutMembreDernière intervention22 avril 2003 12 févr. 2003 à 09:53
Salut,
Je pense qu'il y a beaucoup plus simple pour remplacer des espace (ou autres caractères ou même une chaîne) dans une chaîne donnée. Cela ce fait par le billais de la fonction "replace".
Exemple : replace(chaîneSource, chaîneARemplacer, chaîneDeRemplacement,...)
Voilà, je pense que c'est bcp plus simple de cette façon.
J'espère que ça t'aura aidé !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MyC
Messages postés94Date d'inscriptionlundi 23 septembre 2002StatutMembreDernière intervention22 avril 2003 12 févr. 2003 à 10:00
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Voici quelques explications supplémentaires :
> >
> > On recherche la position du 1er espace, à partir de la position 1 (début) de la chaîne
> > i = InStr(1, chaine, " ")
> >
> > On boucle jusqu'à ce qu'on ne trouve plus d'espace
> > Do Until i = 0
> >
> > On remplace le dernier espace trouvé (sa position étant donnée par i) par "_"
> > Mid$(chaine, i, 1) = "_"
> >
> > On recherche la position de l'espace suivant, à partir de la position du dernier espace trouvé
> > i = InStr(i, chaine, " ")
> >
> > Si on trouve un espace (i > 0), on fait une nouvelle itération dans la boucle. Si on ne trouve plus d'espace (i = 0), on quitte la boucle et le traitement est terminé
> > Loop
> >
> >
> > @+
> >
> > pelw
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > merci
> > >
> > > rapide et efficace, je vais plancher sur instr et mid car je suis novice et comprend pas tous alors si qq peu m expliquer!!!
> > >
> > > Sinon le code marche nikel
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Par exemple :
> > > >
> > > > chaine = a
> > > > i = InStr(1, chaine, " ")
> > > > Do Until i = 0
> > > > Mid$(chaine, i, 1) = "_"
> > > > i = InStr(i, chaine, " ")
> > > > Loop
> > > >
> > > >
> > > > @+
> > > >
> > > > pelw
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > slt
> > > > >
> > > > > je voudrai remplacer les espaces dans ma variable a par des _.
> > > > >
> > > > > Genre "mon nom est" devient "mon_nom_est"
> > > > >
> > > > > G ce code la mais il me donne mon_nom est"
> > > > >
> > > > > chaine = a
> > > > > temp = (InStr(chaine, " "))
> > > > > remplace = "_"
> > > > > resultat = Left(chaine, temp - 1) & remplace & Right(chaine, Len(chaine) - temp)
> > > > >
> > > > > Je precise que g vb5 et donc pas replace.
> > > >
> > >
> >
>
pelw
Messages postés148Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention14 février 20056 12 févr. 2003 à 10:01
Tout à fait d'accord, mais la fonction replace() n'existait pas avant vb6 et il est bien mentionné dans le message d'origine que pcpunch utilise vb5...