Effacer des block de texte dans un fichier

cs_gmorin Messages postés 1 Date d'inscription lundi 1 novembre 2004 Statut Membre Dernière intervention 12 juin 2006 - 12 juin 2006 à 12:37
clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 - 12 juin 2006 à 14:32
Bonjour,

je cherche à effacer des block de texte spécifiques dans un fichier.  Je connais la première ligne et la dernière, mais je ne peux jamais savoir à quel endroit dans le fichier ce block ce retrouve.  Le fichier est un fichier XML, mais en fait, je l'ouvre comme un fichier texte car le reste de l'info ne m'intéresse pas.
J'ai essayé de lire le fichier ligne par ligne et de les inclure dans un tableau et écrire un nouveau fichier seulement avec les lignes qui m'intéresse, avec la fonction split dans un tableau, et les charactères spéciaux comme "é" ou "è" sortent très mal.  Je ne sais donc plus quoi faire. De plus, deux des lignes du bloc sont utilisées ailleur dans le fichier, dans un autre contexte et je ne dois pas les effacer.  Je dois les enlever seulement si ces lignes ce retrouvent dans la structure de texte identifiée plus bas.

Voici donc le bloc de texte, il est toujours le même;

<RelatedProduct>
<RelatedCode>SomeText</RelatedCode>
SomeText

Texte de 10 ou 13 Charactère

</RelatedProduct>

Alors soit que je m'y prend très mal ou bien quelqu'un sait comment préserver les charactères spéciaux dans le cas on utilise un tableau et qu'on écris un fichier de sortie(outputfile)

Quelqu'un peut m'aider?

Merci,

G

1 réponse

clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 1
12 juin 2006 à 14:32
Salut,

Essaies ce code, je ne l'ai pas testé mais l'idéé est là:


Private Const sBlock = "<RelatedProduct>" & vbCrLf & _
"<RelatedCode>SomeText</RelatedCode>" & vbCrLf & _
"SomeText

" & vbCrLf & _
"Texte de 10 ou 13 Charactère

" & vbCrLf & _
"</RelatedProduct>"

Private Sub Command1_Click()

Dim sFic As String
Dim sBuff As String

sFic = "Chemin du fichier à modifier"

Open sFic For Binary As #1
sBuff = Space(LOF(1))
Get #1, , sBuff
Close #1

sBuff = Replace(sBuff, sBlock, "")
Kill sFic

Open sFic For Binary As #1
Put #1, , sBuff
Close #1

End Sub



Dis-moi si ça marce, A+, Clm.
0
Rejoignez-nous