Remplacer les espace dans une variable

Signaler
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
-
cs_MyC
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003
-
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.

8 réponses

Messages postés
148
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
14 février 2005
5
Par exemple :

chaine = a
i = InStr(1, chaine, " ")
Do Until i = 0
Mid$(chaine, i, 1) = "_"
i = InStr(i, chaine, " ")
Loop

@+

pelw
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
3
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
Messages postés
148
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
14 février 2005
5
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
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003

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é !
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003

>
>
> -------------------------------
> 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.
> > > >
> > >
> >
>
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003

> > -------------------------------
> > 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.
> > > > >
> > > >
> > >
> >
>
Messages postés
148
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
14 février 2005
5
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...

@+

pelw
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003

Sorry, j'avais déjà envoyé le message quand je l'ai vu !

Ta réponse est très bien dans ce cas !