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 :

IOResult 103 lors d'un AssignFile


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut IOResult 103 lors d'un AssignFile
    Bonjour,

    Je développe une petite application en Delphi5 sous Windows10.
    Je commence par créer un fichier séquentiel typé à partir d'un fichier texte et la création se passe bien.
    Après avoir fermé mon fichier, je l'ouvre dans la foulée en lecture seule, mais je ne comprends pas pourquoi AssignFile retourne alors un IOResult = 103 : "File not open.".
    Les paramètres en entrée des fonctions "Ouvrir_lFicCotTrieOUT" et "Ouvrir_lFicCotTrieIN" sont renseignés tous les deux avec la même concaténation du nom complet du répertoire et du nom de fichier, de la forme : "C:\ ... \NomFichier".

    Comment AssignFile peut-il retourner "103 File not open." ? Cela semble tout à fait normal que le fichier ne soit pas encore ouvert puisqu'on utilise AssignFile pour l'ouvrir.

    Le pire est que cela fonctionne parfois correctement.
    Si je modifie le code en supprimant la partie de création du fichier, l'ouverture du fichier créé lors de l'exécution précédente s'effectue à chaque fois sans problème.

    Pour que cela fonctionne correctement, y a-t-il donc quelque chose de particulier à faire entre la fermeture de mon fichier en création et son ouverture en lecture ?

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    Bonjour,
    peut être que l'écriture n'est pas terminée dans le fichier quand tu essayes de le ré ouvrir ?
    Essaye de séparer les 2 opérations si ce n'est pas fait ?

    A+
    Charly

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 938
    Par défaut
    Citation Envoyé par momofr Voir le message
    Après avoir fermé mon fichier
    Il n'y a pas de fermeture (CloseFile)...

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut Le fichier est bien fermé
    Je n'ai pas joint toute la source, mais il y a bien un CloseFile.
    (d'ailleurs le code renvoyé IOResult = 103 signifie normalement "File not open")

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 938
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Dans function TForm1.Ouvrir_lFicCotTrieOUT (lNomFicCotOUT : string) : integer; //Ouverture en création,
    le fichier est créé avec un nom qui n'est pas celui passé en paramètre : AssignFile (lFicCotTrieOUT, lNomFicCotTrieJ); ;
    Est-ce la cause ?
    Delphi 5 Pro - Delphi 11.3 Alexandria 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 !

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut Les noms de fichiers sont bien les mêmes
    En exécutant pas à pas dans l'EDI Delphi, j'ai pu constater que les noms de fichiers en création puis en consultation sont bien les mêmes.
    Je vais quand même rectifier pour une meilleure lisibilité.

  7. #7
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    à la compilation : lNomFicCotTrieJ n'est pas déclaré dans Ouvrir_lFicCotTrieOUT ?

    A+
    Charly

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut Ajout attente de 10 secondes avant l'ouverture en consultation
    Le fichier en création était bien fermé mais cela ne fonctionnait pas (comme je l'ai déjà expliqué).
    J'ai ajouté un second CloseFile de ce fichier juste avant de l'ouvrir en lecture et pourtant l'IOResult retourné est = zéro, et maintenant cela fonctionne correctement comme je le souhaite.

    Je vais attendre un peu avant de passer cette discussion à l'état "résolu" pour le cas où l'amélioration ne serait que passagère,
    car ce n'est pas logique qu'il faille 2 CloseFile pour fermer le fichier en création.

    Merci à tous !

Discussions similaires

  1. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33
  2. Des déformations pas jolie lors du deplacement de la cam
    Par scorpiwolf dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/11/2002, 13h12
  3. [VB6] [Install] Que se passe-t-il lors du setup?
    Par petit scarabée dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/10/2002, 08h26
  4. Réponses: 5
    Dernier message: 06/08/2002, 20h08
  5. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31

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