Chaine de caracteres : remplacer "chr" en "xchose"

Résolu
Signaler
Messages postés
91
Date d'inscription
mercredi 6 novembre 2002
Statut
Membre
Dernière intervention
20 mars 2009
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Salut,

Ya t'il une solution pour ce problème :

J'ai une chaine de caracteres, j'arrive a changer

la valeure "1" en "2" mais pas "1" en "xchose" :

'''''''''''''''''''''''''''''''''

Private Sub Command1_Click()

'

Text1.text = "1x1x1x1x1x1x1x1x1x1x"

'

On Error Resume Next

Dim a As String

a = Text1.Text

For i = 0 To Len(a)

n1 = (InStr(a, "1"))

If n1 i Then a Left(a, n1 - 1) & "2" & Right(a, Len(a) - n1) 'ici avec "xxxx" a la place de "2" ca ne marche pas...

Next i

'

Text1.Text = a

End Sub

'''''''''''''''''''''''''''''''''

Ce code fonctionne qu'avec une decimale, j'ai essayé

de changer beaucoup de valeurs (Len, +1, -1, ect.)

mais sans succés...

Quelqu'un aurait'il une idée ?

Merci
-----------------

8 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Esseye plutôt ça :





Dim Str as String

Dim NewStr as String
Const TxtRemplace as String = "xchose"



Str = "1x1x1x1x1x1x1x1x1x1x"

NewStr = ""

Dim i as Integer

For i = 1 to Len(Str) - 1

If Mid(Str,i,1) = "1" Then

NewStr = NewStr & TxtRemplace

Else

NewStr = NewStr & Mid(Str,i,1)

End If


Next i

Str = NewStr







ChRb
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Simplifie toi la vie : Utilise Replace : n1 = Replace(a, "1", "9")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,

As-tu essayé la fonction replace ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
M'enfin Charles, à quoi bon utiliser une boucle
lorsqu'on peut utiliser la fonction "Replace" !!!!!!! (bon, ceci dit
c'est vrai que c'est une alternative qui fonctionne aussi et qui est
meilleurs que la tienne!!!)



Non non, tu as juste besoin d'écrire ceci :




Private Sub Command1_Click()


On Error Resume Next

Text1.Text = Replace(
Text1.Text, "1", "2")


End Sub




Mais au fait, en quel langage programmes-tu ??? Il faut toujours le dire!!!


Enjoy



<hr size="2" width="100%">

(Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée")
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
ScSami >> pourquoi un On Error Resume Next ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Pour respecter son code d'origine


Mais c'est clair que ça n'a aucun intéret s'il n'y a pas d'autres instructions après!!!

Donc, dans ce cas tu peux l'enlever Gmni!
Messages postés
91
Date d'inscription
mercredi 6 novembre 2002
Statut
Membre
Dernière intervention
20 mars 2009

En fait "replace" c'est bien mais pour un carractère seulement.

Par ex. si je replace "&" en "-&-" je ne pourai plus utiliser "&"

pour d'autres carracteres.

Replace "remplace" mais remplace tout ! alors qu'une boucle

s'occupe de chaque carractere en un temps "t".



Merci ChRb d'avoir compris mon inttention et surtout pour ton exellent code (j'ai enlevé -1 dans "For..").



ScSami il me semble que mon code indique sa nature...


Sinon merci à tous pour vos réponses éclaires !

Bonne prog;

Gmni
------
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Le code de ChRb est bon (sauf le -1) mais il fait exactement la même chose que la fonction replace. Essaie, tu verras.
D'autre part, replace n'est pas seulement "bien pour un caractère seulement", tu peux remplacer 1 car par une chaine et inversement.
Mais bon, c'est ton choix et n'oublie pas de valider la réponse de ChRb en cliquant sur "réponse acceptée".

@+

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?