IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] [WinForms] Lecture d'un fichier dans une archive ZIP


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [C#] [WinForms] Lecture d'un fichier dans une archive ZIP
    Bonjour,

    Je cherche a lire ligne à ligne un fichier texte contenu dans un archive ZIP.
    J'ai donc developpé un fonction tres simple basé sur la Librarie ICSharpCode.SharpZipLib.dll

    voici sa déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public System.IO.Stream GetFromPackage(string zippedf, string fileToFind)
    Cette methode fonctionne bien dans le cas du chargement d'une image a partir de cette même archive.

    Mais lorsqu'il s'agit de charger un fichier texte c'est un autre probleme.

    Voici ma methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void ReadFile()
    {
    	string sCurrentLine;
    	int iCounter = 0;
    	System.IO.StreamReader sr = new System.IO.StreamReader(this.meshFile,true);
    	while ((sCurrentLine = sr.ReadLine()) != null)
       {
         System.Console.WriteLine("Read line {0} {1}", iCounter, sCurrentLine);
         iCounter++;
       }
       if(iCounter == 0)
    	    System.Console.WriteLine("Could'not read the stream");
    }
    Edit : Le stream est crée dans un autre methode de ma classe et est stockée dans la variable de classe privée meshFile



    Le compteur ne s'incrémente pas et mon message "Could'not read the stream" s'affiche systématiquement.

    Je ne vois pas du tout ce qui peux se passer et je voudrais savoir si quelqu'un ici pourrais m'apporter ses lumieres.

    Merci d'avance.

    aegypius
    IDE : SharpDevelop 1.0.1
    .NET Framework : 1.1

  2. #2
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai poursuivi mes tests et j'ai pu eclaircir un temps sois peu ma situation.

    meshFile est un System.IO.Stream j'ai donc afficher dans la console la proporiété Length qui me retourne correctement la taille du fichier correspondant.

    J'ai également vérifié que mon System.IO.Stream était lisible grace a la propriété CanRead qui me retourne True.

    Je pense donc que l'acces au stream ne pause pas de probleme en revanche, il m'est toujours impossible d'afficher les chaines qui compose ce fichier.

    Est Il possible de lire un Stream pour obtenir directement la ligne en cours et la traiter ?

    J'avoue ne pas tout comprendre ! J'ai jeté un coup d'oeil sur MSDN et j'ai testé les methode Read et BeginRead sans succès.

    Merci de bien vouloir m'aider.

    aegypius
    IDE : SharpDevelop 1.0.1
    .NET Framework : 1.1

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai trouvé la réponse à mon soucis voici donc le code source corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void ReadFile()
    {
    	string lineBuffer 	= "";
    	string[] fileBuffer	= null;
    	byte[] aByte = meshFile.ToArray();
    	for(int iCounter = 0; iCounter < aByte.Length; iCounter++)
    	{
    		lineBuffer += System.Convert.ToChar(aByte[iCounter]);
    	}
     
    	fileBuffer = lineBuffer.Split(new System.Char[] {'\n'});
    	meshFile.Close();
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction pour lire des fichiers dans une archive MPQ
    Par MegaBigBoss dans le forum Débuter
    Réponses: 0
    Dernier message: 28/01/2012, 22h02
  2. Ajouter un fichier dans une archive zip existante
    Par dawadam dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 31/05/2010, 12h19
  3. [Encodage] Noms de fichiers accentués dans une archive Zip
    Par micetf dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2010, 20h50
  4. créer une arborescence de dossiers et de fichiers dans un archive zip
    Par khaldoune_inf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 04/06/2007, 23h30
  5. Lecture d'un fichier dans un archive '.zip'
    Par Ja_buzz dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2006, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo