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

Langage Delphi Discussion :

Textfile : garder ouvert ou l'ouvrir à chaque écriture


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut Textfile : garder ouvert ou l'ouvrir à chaque écriture
    Bonjour

    J'ajoute des données, une cinquantaine d'octets, à toutes les ~5 secondes à un Textfile, pendant une vingtaine d'heures consécutives. Vaut-il mieux le garder ouvert ou bien l'ouvrir, écrire dedans, puis le fermer à chaque fois. Le fichier se trouve sur un RAMdisque.

    D'autre programme peuvent lire le fichiers mais pas l'écrire.

    Est-ce que dans ce cas un filestream serait préférable.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    A une fréquence aussi faible, un FileStream juste instancié au moment de l'écriture en ShareDenyWrite (laissant la lecture possible) est préférable
    TextFile cela fonctionne bien aussi, idem, le Reset/Append juste au moment opportun, juste qu'avec un TFileStream on peut gérer plus librement l'encodage.
    Ne pas oublier le Seek à la fin avant d'écrire.

    EDIT : tiens un TSLTSimpleLogger.WriteLog issu d'un vieux code D5 légèrement modernisé mais encore en file (j'avais arrêté le TextFile)
    Ce genre de fonction pouvait être appelé plusieurs fois par seconde pendant plusieurs jours, juste un fichier différent par jour
    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 averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Merci Shai

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

Discussions similaires

  1. Garder ouvert un div après un PostBack
    Par Roken62 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/08/2010, 16h13
  2. garder les 2eres lettres de chaque mot dans une colonne
    Par infiniti dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2008, 17h01
  3. [formulaire][vba] garder ouvert mais non visible
    Par mystikgirl30 dans le forum IHM
    Réponses: 18
    Dernier message: 26/04/2007, 14h00
  4. Réponses: 2
    Dernier message: 05/01/2007, 14h17
  5. Comment garder la même adresse IP à chaque connection internet ?
    Par Matt2094 dans le forum Dépannage et Assistance
    Réponses: 37
    Dernier message: 24/07/2006, 17h22

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