2010-07-29 6 views
0

Je suis vraiment surpris de ne pas trouver de réponse à cette question sur Google. D'autant plus que les fichiers xml se prêtent à être zippés car ils sont si verbeux.Utilisation de SAXXMLReader avec de gros fichiers xml compressés

J'implémente le lecteur sax à partir de la bibliothèque msxml dans mon programme VB6 pour lire des fichiers xml de plusieurs gigaoctets à partir d'un fichier zip. Décompresser ces fichiers sur le disque dur, puis les lire n'est pas le chemin à parcourir, car dézipper vers le disque n'est pas nécessaire et si lent. C'est là que mon problème entre en jeu.

Je peux utiliser zlib pour lire des blocs de données à partir du fichier zip et les traiter, mais je ne vois aucun moyen dans le SAXXMLReader de traiter les morceaux. J'ai lu que la méthode pars accepte IStream, mais je n'ai pas été en mesure de trouver une méthode utilisant Google pour obtenir un IStream à partir d'un fichier zip.

Quelqu'un peut-il s'il vous plaît me donner une réponse à ce problème ou un pointeur dans la bonne direction? Merci beaucoup pour votre temps.

Répondre

1

L'idée d'obtenir un flux à partir du fichier zip est certainement la façon dont je traiterais cela en Java.

Je ne suis pas un développeur .Net, donc c'est difficile pour moi de le certifier, mais il ressemble à SharpZipLib peut avoir ce que vous cherchez.

+0

Malheureusement, c'est .NET et j'utilise l'ancien VB6. Si je ne trouve pas de solution bientôt, je vais devoir utiliser cette méthode et l'appeler depuis VB6 en utilisant COM. – dmaruca

+0

Aucune idée pour VB6. J'ai codé VB6, mais il y a longtemps, et jamais de flux. –