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

Delphi Discussion :

EReadError : Stream read error


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut EReadError : Stream read error
    Bonjour,

    Je n'ai pas beaucoup l'habitude de travailler avec les TStream et je coince sur une erreur sans pouvoir trouver de solution sur le net :

    J'ai une structure XML pour mes fichiers de sauvegarde et j'aimerais la sauvegarder via un TCompressionStream afin de minimiser la taille du fichier de sauvegarde et de le rendre plus difficilement lisible pour l'utilisateur lambda.

    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
     
    procedure ...
    var
      saveStream : TStringStream ;
      destStream : TFileStream ;
      zip : TCompressionStream ;
    begin
      saveStream := TStringStream.Create('') ;
      XMLDoc.SaveToStream(saveStream) ;
     
      destStream := TFileStream.Create('saveFile.sav', fmCreate) ;
      zip := TCompressionStream.Create(clMax, destStream) ;
     
      try
        zip.CopyFrom(saveStream, saveStream.size) ; // <-- EReadError ici !
      finally
        FreeAndNil(zip) ;
        FreeAndNil(saveStream) ;
        FreeAndNil(destStream) ;
      end ;
    end ;
    J'ai pensé que l'erreur venait du fait que j'utilise 2 TStream différents (stringStream et fileStream), mais j'ai essayé avec 2 TStringStream et j'ai la même erreur.

    Merci pour votre aide...

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    je dirais que ceci avant le CopyFrom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saveStream.Seek(0, soFromBeginning);
    car SaveToStream écrit et positionne le curser à la fin, tu veux relire le stream depuis le début donc tu dois retourner au début ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Merci c'est bon. Effectivement je n'avais plus pensé que la position du curseur était aussi déterminante dans l'utilisation des stream

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

Discussions similaires

  1. A disk read error occured
    Par Fanaudi dans le forum Composants
    Réponses: 0
    Dernier message: 10/04/2009, 19h39
  2. Timeout avec Stream.Read
    Par ttttnht dans le forum C#
    Réponses: 1
    Dernier message: 17/12/2008, 10h16
  3. "A disk read error occurred"
    Par hardredman dans le forum Composants
    Réponses: 14
    Dernier message: 25/09/2008, 00h41
  4. A disk read error occured
    Par fafabzh6 dans le forum Composants
    Réponses: 8
    Dernier message: 10/09/2007, 16h50
  5. [C#] Comment utiliser correctement Stream.Read ?
    Par ArChAnGe76 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/12/2005, 20h48

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