Bonjour,
J'ai regardé les différents topics à ce sujet que j'ai pu trouvé, mais je n'ai pas réussi à l'adapter au code sur lequel je travaille.
En gros, j'ai des fichiers xml que je parcours, et je voudrais modifier toutes les lignes "commentaires".
Actuellement il y a ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Do While Not EOF(InputFileNumber) ' Loop until end of file. Line Input #InputFileNumber, TextLine 'Une fois la ligne commentaires trouvée on donne une valeur vide à value If InStr(1, TextLine, "<Prop InternalName=""COMMENTAIRES"" " ) Then Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaire"" />" Else Print #OutputFileNumber, TextLine End If Loop
Sauf que je voudrais si possible dire qu'à partir de <Prop InternalName="COMMENTAIRES" jusqu'à la fermeture de la balise />, il remplace tout par "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaire"" />".
Mon problème étant que ces lignes que je veux modifier peuvent se présenter de différentes manière :
sur plusieurs lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <Prop InternalName="COMMENTAIRES" Value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" Label="Commentaire" />ou sur une seule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <Prop InternalName="COMMENTAIRES" Value="xxxxxxxxx" Label="Commentaire" />
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Prop InternalName="COMMENTAIRES" Value="xxx" Label="Commentaire" />
D'où la nécessité d'aller chercher la fermeture de balise...
J'ai essayé ça puis j'ai vu que TextLine renvoyait la valeur de la ligne... y'a pas un moyen de regarder la ligne + 1 et - 1 si jamais je ne peux pas aller jusqu'à la fin de la balise ?
Dans mes recherches pour modifier un fichier XMl, j'ai trouvé comment modifier la valeur X d'une balise comme ça : <CD> X </CD>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'La ligne qu'on veut modifier peut se trouver sur plusieurs ou une seule lignes. 'On fait plusieurs tests pour le déterminer 'Une fois la ligne commentaires trouvée on donne une valeur vide à value If InStr(1, TextLine, "<Prop InternalName=""COMMENTAIRES"" Value=" ) Then 'Si la prochaine ligne est Label, on ne ferme pas la balise If InStr(1, TextLine + 1, "Label" ) Then Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""""; "" Else 'Et si ce n'est pas le cas, il faut la fermer Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaires"" />" End If Else Print #OutputFileNumber, TextLine End If
Mais je voudrais modifier une balise qui ressemble à ça : <CD=disk Value="128Mb" Label="plop">
En gros pour mettre Value="" pour chaque <CD=disk
....
Une idée ?
Merci pour votre aide
Partager