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

C# Discussion :

ca ne marche pas -> decompression stream


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 943
    Par défaut ca ne marche pas -> decompression stream
    Bonjour,

    ca ne marche pas.
    Decompression marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    static void Main(string[] args)
            {
     
                MemoryStream memzip = new MemoryStream();
                {
     
                    MemoryStream mem = new MemoryStream();
                    mem.Seek(10000, SeekOrigin.Begin);
                    byte[] buf = new byte[16];
                    for (int i = 0; i < 16; i++)
                        buf[i] = (byte)i;
                    mem.Write(buf, 0, 16);
                    mem.Position = 0;
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Compress);
                    mem.CopyTo(ds);
     
                    ///ds.Close();
                //    mem.Close();
                }
                memzip.Position = 0;
                {
                    MemoryStream mem = new MemoryStream();
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Decompress);
                    ds.CopyTo(mem);
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
                    byte[] buf = new byte[20];
                   int ci= mem.Read(buf, 0, 16);
                    ds.Close();
     
                }
                memzip.Close();
            }
        }
    ci égal à 0 et ca ne lit aucune données
    buf[2] doit étre égal à 0
    buf[3] doit être égal à 1

    Merci

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 943
    Par défaut
    Désolé,
    mais je pense que le composant gzipstream est buggé !
    Excusez- moi mais ca ne marche pas !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    static void Main(string[] args)
            {
     
                MemoryStream memzip = new MemoryStream();
                {
     
                    MemoryStream mem = new MemoryStream();
     
                    byte[] buf = new byte[16];
                    for (int i = 0; i < 16; i++)
                        buf[i] = (byte)i;
                    mem.Write(buf, 0, 16);
                    mem.Seek(10000, SeekOrigin.Begin);
                    mem.Write(buf, 0, 16);
                    mem.Position = 0;
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Compress);
                    mem.CopyTo(ds,10016);
                    ds.Flush();
     
                    //ca marche là
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
                    int ci = mem.Read(buf, 0, 16);
                    ///
                    ci = ci;
                    ///ds.Close();
                //    mem.Close();
                }
                memzip.Position = 0;
                {
                    MemoryStream mem = new MemoryStream(100000);
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Decompress);
                    byte[] buf = new byte[20];
                    int ci = mem.Read(buf, 0, 16); //ci doit être à 16 !!!!! ET IL EST  à 0
                    ds.CopyTo(mem,);
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
     
                    ci= mem.Read(buf, 0, 16);
                    ds.Close();
     
                }
                memzip.Close();
            }
    Probléme NON résolut !

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 943
    Par défaut
    Pour conclure ca ne marche même avec ceux-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    static void Main(string[] args)
            {
     
                MemoryStream memzip = new MemoryStream();
                {
     
                    MemoryStream mem = new MemoryStream();
     
                    byte[] buf = new byte[16];
                    for (int i = 0; i < 16; i++)
                        buf[i] = (byte)i;
                    mem.Write(buf, 0, 16);
                    //mem.Seek(10000, SeekOrigin.Begin);
                    //mem.Write(buf, 0, 16);
                    mem.Position = 0;
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Compress);
                    mem.CopyTo(ds);
                    ds.Flush();
     
                    //ca marche là
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
                    int ci = mem.Read(buf, 0, 16);
                    ///
                    ci = ci;
                    ///ds.Close();
                //    mem.Close();
                }
                memzip.Position = 0;
                {
                    MemoryStream mem = new MemoryStream(100000);
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Decompress);
                    byte[] buf = new byte[20];
                    int ci = mem.Read(buf, 0, 16); //ci EST EGAL à ZERO , IL DOIT ETRE EGAL à 16 !!!
                    ds.CopyTo(mem);
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
     
                    ci= mem.Read(buf, 0, 16); //ci doit être égal à 0 car la taille est de 16 octets 
                    ds.Close();
     
                }
                memzip.Close();
            }
    probléme non résolut;;;

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 943
    Par défaut
    Veuillez m'excuser un ligne mal placé à la décompression mais probléme toujours pas corrigé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     MemoryStream mem = new MemoryStream();
                    GZipStream ds = new GZipStream(memzip, CompressionMode.Decompress);
                    ds.CopyTo(mem);
                    mem.Position =0;
                    byte[] buf = new byte[20];
                    int ci = mem.Read(buf, 0, 16); //ci doit être égal à 16 et il est à 0
     
                    mem.Seek(10000 - 2, SeekOrigin.Begin);
     
                    ci= mem.Read(buf, 0, 16); //ci doit être égal à 0
                    ds.Close();
                    mem.Close();

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    943
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 943
    Par défaut
    Ca fonctionne ,
    exemple pour une bonne utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    MemoryStream memzip = new MemoryStream();
                {
     
                    MemoryStream mem = new MemoryStream();
     
                    byte[] buf = new byte[16];
                    for (int i = 0; i < 16; i++)
                        buf[i] = (byte)i;
                    mem.Write(buf, 0, 16);
                    mem.Seek(10000, SeekOrigin.Begin);
                    mem.Write(buf, 0, 16);
                    mem.Position = 0;
                    using (GZipStream ds = new GZipStream(memzip, CompressionMode.Compress,true))
                    {
                        mem.CopyTo(ds);
                        ds.Flush();
     
                        //ca marche là
                        mem.Seek(10000 - 2, SeekOrigin.Begin);
                        int ci = mem.Read(buf, 0, 16);
                        ///
                        ci = ci;
                    }
                    ///ds.Close();
                //    mem.Close();
                }
                memzip.Position = 0;
                {
                    MemoryStream mem = new MemoryStream(100000);
                    using (GZipStream ds = new GZipStream(memzip, CompressionMode.Decompress,true))
                    {
                        ds.CopyTo(mem);
                        mem.Position = 0;
                        byte[] buf = new byte[20];
                        int ci = mem.Read(buf, 0, 16); 
     
                        mem.Seek(10000 - 2, SeekOrigin.Begin);
     
                        ci = mem.Read(buf, 0, 16);          
                        ci = ci;
                    }
     
                }
                memzip.Close();
    Pour conclure : il faut appeler la méthode Dispose lors de la fin de la compression.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par yann458 Voir le message
    mais je pense que le composant gzipstream est buggé !
    une bonne idée serait de se dire que quand on est un noob le problème vient de soi plutot que de microsoft, non ?
    s'il y a un problème c'est que tu n'as juste pas compris comment ca s'utilise et/ou comment ca fonctionne
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. MediaElement: pourquoi le streaming ne marche pas ?
    Par Chekov dans le forum Silverlight
    Réponses: 1
    Dernier message: 29/10/2010, 16h28
  2. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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