Pbl avec remplacement de chaîne

TP - 8 mars 2001 à 15:24
AlexLG Messages postés 9 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 9 août 2004 - 5 juin 2003 à 22:26
Je posséde un fichier Texte où je souhaite remplacer une chaîne par une autre. Le seul pbl c que cette chaîne est présente plusieurs fois ds ce fichier.
Comment puis-je sélectionner uniquement la chaîne qui m'intéresse à remplacer.

ex: <ville id="5044" nom="Limoges" idDep="87" codeDep="87" nomDep="Haute-Vienne">
<liste id ="18131" nom="Clérembaux" etiq="LCR" />
<liste id="17977" nom="Roussie" etiq="LO" /> etc ...

Je souhaite remplacer la chaine <liste id> aprés la ligne Ville id mais pas les autres liste id après la 1ere.

Par avance Merci
A+

2 réponses

Un exemple parmis plusieurs autres :

Private Sub Command1_Click()

Dim Chaine As String
Dim Temp As String
Dim lStart As Long
Dim lLength As Long
Dim lFile As Long
Dim Found As Boolean

Found = False

On Error Resume Next

lFile = FreeFile
Open "C:Mon Fichier.txt" For Input As #lFile

Do While Not EOF(lFile)

Line Input #lFile, Temp

lStart = InStr(1, Temp, "Chaine Rechercher")

If (lStart <> 0 And Found = False) Then

lLength = Len("Chaine Rechercher")

Chaine = Chaine & Mid$(Temp, 1, lStart) & "Nouvelle Chaine" & Mid$(Temp, lStart + lLength) & vbCrLf

Found = True

Else

Chaine = Chaine & Temp & vbCrLf

End If

Loop

Close #lFile

lFile = FreeFile
Open "C:Mon Fichier.txt" For Output As #lFile

Print #lFile, Chaine;

Close #lFile

End Sub
0
AlexLG Messages postés 9 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 9 août 2004
5 juin 2003 à 22:26
J'i trouvé une petite erreur dans ton code, voici la correction (il manquait -1 sur la fonction mid) :

Private Sub Command1_Click()

Dim Chaine As String
Dim Temp As String
Dim lStart As Long
Dim lLength As Long
Dim lFile As Long
Dim Found As Boolean

Found = False

On Error Resume Next

lFile = FreeFile
Open "C:Mon Fichier.txt" For Input As #lFile

Do While Not EOF(lFile)

Line Input #lFile, Temp

lStart = InStr(1, Temp, "Chaine Rechercher")

If (lStart <> 0 And Found = False) Then

lLength = Len("Chaine Rechercher")

Chaine = Chaine & Mid$(Temp, 1, lStart) & "Nouvelle Chaine" & Mid$(Temp, lStart + lLength) & vbCrLf

Found = True

Else

Chaine = Chaine & Temp & vbCrLf

End If

Loop

Close #lFile

lFile = FreeFile
Open "C:Mon Fichier.txt" For Output As #lFile

Print #lFile, Chaine;

Close #lFile

End Sub

@ +,
AlexLG
0
Rejoignez-nous