phenrent76
Messages postés13Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention 3 mars 2005
-
30 janv. 2005 à 20:34
phenrent76
Messages postés13Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention 3 mars 2005
-
1 févr. 2005 à 00:20
bonjour - je cherche dans un fichier texte, à remplacer une chaîne de caractères qui commence et qui fini toujours par trois caractères identiques. j'ai testé un morceau de code
découvert sur le site, mais j'ai une erreur, du au fait que cette fameuse chaîne, mème si le milieu est différent, présente des similitudes quant au début et à la fin de la chaîne, et qu'elle
se répète à plusieurs reprises. quelqu'un peut t'il me donner un petit coup de pouce. merci
Function RemplA()
res = vbNullString
txt = RichTextBox2.Text
remp1 = "dbl"
remp2 = "fdl"
remp3 = "ma chaine de remplacement"
'Function Remplacer(Dans, De, JusquAu, Par)
RichTextBox5.Text = res
res = Remplacer(txt, remp1, remp2, remp3)
Open nomfich For Output As #1
Print #1, res
Close #1
End Function
précision, cette chaîne à une longueur fixe de 60 caractères.
phenrent76
Messages postés13Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention 3 mars 2005 1 févr. 2005 à 00:20
Vu, ok, merci pour tout tes conseils, j'ai réussi en mettant stringtoreplace = Mid(Dans, pos1, pos2 - pos1 + 3), le 3 correspondant à la longueur de ma balise. par contre contrairement à tes prévisions, je t'assure que la chaîne recherchée se répète environ 90 fois, et sans boucle, la mise à jour se fait sans problèmes par ma balise de remplacement, et ce dans le texte entier. ne me demande pourquoi, mais ca fonctionne.
encore un grand merci à toi - cordialement
phenrent76
Messages postés13Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention 3 mars 2005 31 janv. 2005 à 00:32
Désolé, mais je suis totalement novice alors .... beaucoup de compréhension .. je met le code original
Private Sub Command1_Click()
res = vbNullString txt RichTextBox2.Text ( qui contient le texte à modifier ) Dans remp1 Text4.Text ( normalement DBL- ) De remp2 Text5.Text ( ... -FDL ) JusquAu remp3 Text6.Text ( ... ;@EN) Par
RichTextBox5.Text = res ( qui me réaffiche le texte modifié )
'res = Remplacer(txt, "DBL-", "-FDL", ";@EN")
res = Remplacer(txt, remp1, remp2, remp3)
Open nomfich For Output As #1
Print #1, res
Close #1
MsgBox " Remplacement(s) éffectué(s) ! "
End Sub
el la fonction ...
Function Remplacer(Dans, De, JusquAu, Par)
Do While InStr(Dans, De) <> 0 And InStr(Dans, JusquAu) <> 0
Gauche = Left(Dans, InStr(Dans, De) - 1)
Droite = Right(Dans, Len(Dans) - InStr(Dans, JusquAu) - Len(JusquAu) + 1)
Dans = Gauche & Par & Droite
Loop
Remplacer = Dans
'Mavar = Remplacer(Page, "<", ">", "")
End Function
voilà, si tu peux modifier ces quelques lignes en gardant mes critères, çà m'aiderait beaucoup , pour une boucle, je pense pouvoir y arriver, mais pour le reste .... je galère
...
merci
phenrent76
Messages postés13Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention 3 mars 2005 31 janv. 2005 à 01:11
Ok - je vais me coucher un peu plus tard mais j'ai trouvé çà fonctionne, mais j'ai une petite erreur :
Private Sub Command5_Click()
res = vbNullString
txt = RichTextBox2.Text remp1 Text4.Text ' "DBF" '"" remp2 Text5.Text ' "FDL" '"" remp3 Text6.Text ' "xxxxx" ' "ma chaine de remplacement"
RichTextBox5.Text = res
res = Remplacer(txt, remp1, remp2, remp3)
Open nomfich For Output As #1
Print #1, res
Close #1
End Sub
mais çà me donne cette réponse : DBFxxxxxDL alors qu'il ne
devrait rester que xxxxx
merci à toi nhervagault Si quelqu'un à une solution. cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
comme critère ceux là : DBF (De) - FDL (Jusquau) - xxxxx (Par) et comme nouvelle réponse au lieu de DBFxxxxxDL , j'ai maintenant
xxxxxDL, je sens que ça devient bon, il manque pas grand chose - merci nhervagault
je précise que même sans boucle, à part l'erreur ci-dessus, la modif s'applique jusqu'à la fin du fichier !