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 :

Ecrire et lire dans un fichier


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 67
    Par défaut Ecrire et lire dans un fichier
    Bonjour ,
    j'ai crée un active X , dans cet active X je veux écrire dans fichier afin d'avoir un historique des différentes fonctions me retournant des codes d'erreur.
    moi mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    AssignFile(FileLog, LogCamera);   { File selected in dialog box }
    if FileExists(LogCamera) then
           append(FileLog) //Ajoute à la suite du fichier FileLog et garde ainsi les données existantes
    else
    rewrite(FileLog);//supprime le fichier FileLog s'il existe et réécrire par dessus
    writeln(FileLog,'Connexion: '+ inttostr(open)+' ; '+Date+' ; '+Heure);
    CloseFile(FileLog);
    lors de l'éxécution j'ai une erreur "Le projet à provoqué une classe d'exception EINOUTERROR avec le message 'Erreur E/S 32'. Processus stoppé"

    Je ne comprends pas ma démarche m'a l'air bonne pour écrire dans un fichier

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Comme ça je ne vois pas grand' chose. Tu as regardé en debug à quelle ligne ça plante ?

  3. #3
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    A la place des "+", je mettrais des "," dans le writeln (réflexe turbo pascal)

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    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 937
    Billets dans le blog
    6
    Par défaut
    ce qui me chagrine, pê à tort, c'est le FileExists() après l'AssignFile() !

    mais surtout, Error 32 = fichier déjà ouvert : n'aurait'il pas été clos lors d'une précédente exécution ???
    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 !

  5. #5
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    j'ai compris le pourquoi du comment de ton message d'erreur

    Si je ne me trompe, ton code, celui que tu nous expose ici, se trouve dans une procedure de ton activeX, que tu appelles plusieur fois depuis ton programme, c'est ça ?

    Comme ton appli et ton ActiveX ne sont pas situés dans le même thread d'execution ton activeX et ton appli delphi ne se déroulent pas de façon synchrone; Ors je suppose que ton programme appelle (au moins) deux fois de suite le code de ton ActiveX...

    Au premier appel, le fichier est ouvert, le code de l'activeX se déroule, mais cette dernière n'a pas le temps d'aller jusqu'au CloseFile (écrire dans un fichier prend du temps ), et ton appli appelle la procédure une deuxième fois, alors qu'en fait, la première n'est pas terminé.

    Du coup, au deuxième passage, il y a une tentative d'ouverture alors que le premier passage n'a pas "libéré" sa main mise sur le fichier.

    ça doit être un truc dans'l'style genre...

    Si quelqu'un arrive à mieux expliquer que moi sur ce coup, je lui en serais éternellement reconnaissant

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 67
    Par défaut
    waskol, je penses bien que c'est ca surtout que cette tache est réalisé dans un thread, je devrais vérifier que le thread est cours avant de le rappeler

Discussions similaires

  1. [Qt] Ecrire et lire dans un fichier
    Par guyguy333 dans le forum Qt
    Réponses: 4
    Dernier message: 02/06/2008, 22h57
  2. Réponses: 4
    Dernier message: 13/03/2008, 18h37
  3. Lire et ecrire des variables dans un fichier texte
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2007, 14h16
  4. [VC++] creer, ecrire et lire dans des fichiers .ini
    Par ksoft dans le forum Visual C++
    Réponses: 11
    Dernier message: 06/09/2006, 10h18
  5. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 16h57

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