[vb6]

DevLGM Messages postés 5 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 12 juin 2007 - 11 juin 2007 à 10:32
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 11 juin 2007 à 11:35
Bonjour !!!

Voila j'aimerais pouvoir dans une chaine de caractere remplacer un et un seul caractere sans
remplacer un caractere de la meme chaine qui serait identique !!
Coment faire ?

Merci d'avance

Cordialement !

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 juin 2007 à 10:38
tu peux utiliser la fonction Mid$

Mid$(MaChaine,5, 1) = "a" 

exemple :

Dim sBuffer As String
Dim nPos As Long
   sBuffer = "Salut toto"
   nPos = InStr(sBuffer, "o")
   If nPos Then
       Mid$(sBuffer, nPos, 1) = "a"
   End If
   MsgBox sBuffer, ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
11 juin 2007 à 10:38
Salut, voir la fonction replace.

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 juin 2007 à 10:40
en passant, met un titre lus explicite, la prochaine fois qu etu postes sur le forum, c'est pas un truc égoïste, le forum, des gens cherchent sur le forum, avant de poser une question à laquelle on a répondu dix ou quinze fois...
si ton titre est adapté, les gens trouveront la réponse illico...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 juin 2007 à 10:40
Salut,
Ou bien Replace en utilisant le parametre Count

Dim sBuffer As String
  sBuffer = "Salut toto"
  sBuffer = Replace(sBuffer, "o", "a", , 1)
  MsgBox sBuffer
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 juin 2007 à 10:42
Dricke06 a raison, la fonction Replace te permet de faire ce changement...

Mais sur une longue chaine, je pense que le Mid est plus rapide, car il ne nécessite pas de nouvelle afectation de la chaine totale... a voir ...

Dim sBuffer As String
   sBuffer = "Salut toto"
   sBuffer = Replace(sBuffer, "o", "a", Count:=1)
   MsgBox sBuffer, ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
11 juin 2007 à 11:35
Bonjour,
Je partage l'opinion de RenField (emploi de mid)

On pourrait d'ailleurs écrire ceci également :

Private Sub Command3_Click()
   Dim sBuffer As String
   sBuffer = "Salut toto"
   If sBuffer Like "*o*" Then
      Mid(sBuffer, InStr(sBuffer, "o"), 1) = "a"
   End If
   MsgBox sBuffer
End Sub
0