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

Composants VCL Delphi Discussion :

TFileStream et LoadFromStream


Sujet :

Composants VCL Delphi

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut TFileStream et LoadFromStream
    Bjr

    je rencontre une difficulté dans l'utilisation de la méthode LoadFromStream. Voici le code d'ouverture d'un fichier par TFileStream.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Procedure CreateLog(FileName:shortstring);
    begin
    LogFileName:=FileName; 
    if fileexists(FileName,) then
     LogFile:=TFileStream.Create(FileName,fmOpenReadWrite+fmShareDenyWrite) else
      LogFile:=TFileStream.Create(FileName,fmCreate);
    LogFile.Seek(LogFile.Size,soFromBeginning);
    end;
    Ce code est sans histoire.

    Dans une autre partie du code en revanche je tente ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.Items.LoadFromStream(LogFile);
    et là, rien ne se passe, le TListBox reste vide.

    Pour que cela fonctionne, je dois d'abord fermer le TFileStream puis le réouvrir ce qui est dommage en terme de performance.

    Merci de votre retour d'expérience !

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LogFile.Seek(LogFile.Size,soFromBeginning);
    Tu te places à la fin du flux là, non ?

    Je verrais plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LogFile.Seek(0,soFromBeginning);
    pour se placer au début.

    @+

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Je me place en effet à la fin du flux pour que toute nouvelle écriture soit bien placée à la fin du fichier.

    Effectivement, le fait de positionner le curseur du flux au début résout le problème. Il suffit de le repositionner à la fin après le LoadFromStream.

    Merci

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

Discussions similaires

  1. TFilestream, Exception et methode Free
    Par cpdump dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2011, 11h02
  2. [TFileStream] : LoadFromStream et read : incompatible ?
    Par jmdeffet dans le forum Langage
    Réponses: 4
    Dernier message: 18/11/2004, 10h30
  3. TFileStream et Array of char
    Par busy999 dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2004, 21h00
  4. TFileStream et les fichiers de plus de 2Go
    Par naikon dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/06/2004, 16h11
  5. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 13h06

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