Modification d'un gros fichier texte sans <CR><LF>
cs_Kloun
Messages postés23Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention23 octobre 2003
-
20 mars 2003 à 11:02
JMC70
Messages postés77Date d'inscriptionsamedi 9 novembre 2002StatutMembreDernière intervention 6 juillet 2014
-
14 nov. 2004 à 18:52
Bonjour,
J'ai un très gros fichier XML à lire en VB en mode texte.
Le problème est qu'il n'y a pas de retour chariot dans le fichier. Quand je lis la ligne, ça fait tout planter.
Mon but est de rajouter des retours chariot (entre chaque balise XML par exemple).
Comment faire sans avoir à récupérer toute la ligne ?
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 20 mars 2003 à 15:59
Bonjour
Voici un petit code qui te recopie le fichier d'origine (sans le modifier) dans un nouveau fichier en ajoutant un VbCrLf après chaque fin de balise (de début ou de fin)
Dim Octet As String * 1, Ligne As String
Open "C:\CheminOrigine\FichierOriginal.xml" For Binary As #1
Open "C:\CheminDestination\FichierModifié.xml" For Output As #2
Do While Not EOF(1)
Get 1, , Octet
Ligne = Ligne & Octet
If Octet = ">" Then
Ligne = Ligne & vbCrLf
Print #2, Ligne
Ligne = ""
End If
Loop
Close
Vous n’avez pas trouvé la réponse que vous recherchez ?
JMC70
Messages postés77Date d'inscriptionsamedi 9 novembre 2002StatutMembreDernière intervention 6 juillet 2014 14 nov. 2004 à 18:52
il n'y a pas de retour à la ligne dans les fichiers xml. C'est le navigateur ou le parseur qui doit interpréter les balises.
Ceci fait qu'il est difficile de l'attaquer depuis VB comme fichier texte pur (à moins de l'ouvrir en binaire comme le suggère rene38). Aussi, il est préférable d'utiliser le DOM pour lire les données.
Voir http://www.vbfrance.com/code.aspx?id=27570 pour la gestion des fichiers xml en vb6.
JMC70