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

Lazarus Pascal Discussion :

Comment savoir si un fichier texte est fermé [Free Pascal]


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 407
    Points : 589
    Points
    589
    Par défaut Comment savoir si un fichier texte est fermé
    Bonjour toutes et à tous,

    J'enregistre des données dans un fichier Texte et j'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    F: TextFile
     
    AssignFile(F, 'MonFichie');
    ReWrite(F);
    ...
    CloseFile(F);
    J'aimerais savoir si après le CloseFile, mon fichier est fermé. CloseFile prend la variable F renvoie sa valeur après fermeture. En débogage, en cliquant sur F avant et après fermeture du fichier, on voit que son contenu a changé, notamment son Handle qui est passé à -1.

    Pour autant, je n'arrive pas à trouver de test basé sur ce F ou autre chose me montrant que le fichier est bien fermé.

    Comment fait-on ?

    Cordialement.

    Pierre

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    mars 2005
    Messages
    3 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : mars 2005
    Messages : 3 377
    Points : 9 862
    Points
    9 862
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Qu'entends-tu par fermé ? Libre d'être ouvert à nouveau, cad non verrouillé par l'OS ? Dans ce cas, je ne sais pas.
    Une précaution pourrait par contre être (si la fonction existe et est applicable à ce type de fichier) de faire un Flush(F) ou FlushFile(F) avant le Close, pour forcer l'OS à vider le tampon d'écriture avant de fermer, en cas d'écriture différée.
    Delphi 5 Pro - Delphi 10.3.2 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre confirmé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 407
    Points : 589
    Points
    589
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Bonjour,
    Qu'entends-tu par fermé ...
    Dans mon application, un click sur un premier bouton écrit dans un fichier puis le ferme. Un click sur un autre bouton désactive mon premier bouton et de ce fait, refait ce que vient de faire le premier ... c'est à dire écrire et fermer le fichier alors qu'il avait été déjà fermé, d'où plantage. Je m'en sors en plaçant des drapeaux qui vont bien. Mais je me demandais s'il n'y avait pas déjà un drapeau ou une variable qui m'aurait permis d'éviter d'en rajouter un.

    Cordialement.

    Pierre

  4. #4
    Membre éclairé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    juillet 2011
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 275
    Points : 717
    Points
    717
    Par défaut
    Bonjour,

    Et en utilisant IoResult (encadré par les {$I} qui vont bien...?

    Cordialement

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : février 2013
    Messages : 60
    Points : 125
    Points
    125
    Par défaut
    Voici la documentation pour IOResult https://www.freepascal.org/docs-html.../ioresult.html .

    Cette fonction est très ancienne et existait en Turbo Pascal bien avant que les exceptions et les classes aient été ajoutées au langage.

  6. #6
    Membre confirmé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 407
    Points : 589
    Points
    589
    Par défaut
    Citation Envoyé par acaumes Voir le message
    ... Et en utilisant IoResult (encadré par les {$I} qui vont bien...? ...
    Merci "acaumes" et "Pierre le Grand". J'avais envisagé cette solution, mais dans mon cas, cela revient à établir un drapeau.

    En effet, dans mon cas, je n'écris pas dans le fichier par inadvertance, en ne sachant pas si le fichier est ouvert ou non, mais par une logique d'enchaînement d'actions des différents boutons. C'est donc à moi de me prévenir de cela par un drapeau.

    Désolé, j'avais mal évalué mon problème.

    Cordialement.

    Pierre

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

Discussions similaires

  1. Comment savoir si un fichier (texte) existe ?
    Par snoopy69 dans le forum Débuter
    Réponses: 10
    Dernier message: 26/02/2009, 10h15
  2. Comment savoir si un fichier Excel est ouvert en lecture seul
    Par patate5555 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2007, 14h53
  3. Savoir si un fichier texte est ouvert ?
    Par devl83 dans le forum Administration système
    Réponses: 4
    Dernier message: 22/05/2007, 18h00
  4. Comment savoir si une fenêtre s'est fermée
    Par niuniuk36 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 12/05/2005, 15h49
  5. Comment savoir si un fichier/répertoire est en lecture seule
    Par Guigui_ dans le forum Général Python
    Réponses: 3
    Dernier message: 29/12/2004, 17h05

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