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

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 293
    Points : 531
    Points
    531

    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 294
    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 294
    Points : 9 502
    Points
    9 502
    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.2 Tokyo Community Edition - CodeTyphon 6.50 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 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 293
    Points : 531
    Points
    531

    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
    257
    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 : 257
    Points : 651
    Points
    651

    Par défaut

    Bonjour,

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

    Cordialement

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

    Informations forums :
    Inscription : février 2013
    Messages : 48
    Points : 106
    Points
    106

    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 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 293
    Points : 531
    Points
    531

    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, 09h15
  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, 13h53
  3. Savoir si un fichier texte est ouvert ?
    Par devl83 dans le forum Administration système
    Réponses: 4
    Dernier message: 22/05/2007, 17h00
  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, 14h49
  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, 16h05

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