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 :

plantage routine test existence fichier


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 44
    Points
    44
    Par défaut plantage routine test existence fichier
    Bonsoir a tous!
    voilà, pour mon projet j'ai besoin de savoir si un fichier est ouvert, j'ai trouvé ici le code suivant:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
     function FichierOuvert(NomFichier : string; CodeRetour:Integer):Boolean;
    //Test si un fichier est ouvert ou indisponible
    // CodeRetour = 0 pas ouvert - 32 : violation de partage - sinon autre erreur
    Var
       F:TextFile;
    begin
      FichierOuvert := True ;
      // Test du fichier
      AssignFile(F,NomFichier);
      {$I-}
      Reset(F);
      {$I+}
      CodeRetour := IOResult ;
      Case IOResult Of
        // Pas d'erreur
        0 :Begin
             CloseFile(F);
             FichierOuvert := False ;
    //         ShowMessage('Le fichier existe et n''est pas ouvert.');
           End;
    //         L'erreur 32 est une violation de partage
        32:
           Begin
    //          ShowMessage('Le fichier est déjà ouvert.');
           End ;
      Else
        // Autre erreur
    //    ShowMessage('Erreur '+IntToStr(IOResult));
      End;
    End;
    le programme se plante avec l'erreur 'E/S 103'.

    que se passe-t-il? ou est l'erreur?

    merci

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonsoir,

    Extrait de l'aide de Delphi :
    103 Fichier non ouvert Rapportée par CloseFile, Read Write, Seek, Eof, FilePos, FileSize, Flush, BlockRead ou BlockWrite si le fichier n'est pas ouvert.
    Le fichier n'existe pas : mauvais nom, mauvais chemin.

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 783
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 783
    Points : 13 418
    Points
    13 418
    Par défaut
    C'est parce que cette routine est fausse. IOResult ne peut être lu qu'une seule fois. Sa lecture entraîne sa remise à zéro immédiate.
    Sur le case et puisque IOResult vaut à nouveau 0, un CloseFile est lancé sur un fichier qui n'est pas ouvert (E/S 103).

    J'aivais déjà mentionné cela ici avec quelques autres remarques.

    CodeRetour devrait également être déclaré en out.

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 44
    Points
    44
    Par défaut
    merci a tous!!!

    bonne soirée!

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

Discussions similaires

  1. Test existance fichier réseau
    Par microb07 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 12/01/2010, 16h30
  2. test existence fichier
    Par NPortmann dans le forum SQL
    Réponses: 3
    Dernier message: 19/03/2008, 16h30
  3. [XI] Test existance fichier
    Par dim07 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 07/03/2007, 10h17
  4. test existance Fichier
    Par ons dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 09/02/2007, 16h09
  5. debutante - test existence fichier
    Par coco21 dans le forum Débuter
    Réponses: 9
    Dernier message: 12/02/2006, 12h07

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