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 :

Suppression d'un fichier .txt


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 116
    Points
    116
    Par défaut Suppression d'un fichier .txt
    Après avoir travailler sur deux fichiers .txt, je veux supprimer le premier et renommer le second.
    Code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Repertoire:=ExtractFilePath(Application.ExeName);
    AssignFile(tempF2,Repertoire+'Temporaire.txt'); //Association à tempF2
    AssignFile(tempF,Repertoire+'Messages.txt');    //Association à tempF
    (traitement des 2  fichiers)
    CloseFile(tempF2);  //Fermeture Association à 'Temporaire.txt' 
    CloseFile(tempF); //Fermeture Association à 'Messages.txt' 
    DeleteFile(Repertoire+'Messages.txt');
    RenameFile(Repertoire+'Temporaire.txt',Repertoire+'Messages.txt');
    Les 2 dernières lignes ne se font pas; normalement les fichiers devraient être fermés après fermeture de l'association ???
    Si j'exécute seulement ceux-ci, pas de prob. le premier est supprimer et le second est renommé... Y a t'il quelqu'un qui sache ce qui cloche avec mon code ou comment fermer ces fichiers.


    Merci
    Duan

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    C'est plutot bizarre, il doit nous manquer un élément, car le code suivant fonctionne très bien :
    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
    procedure TForm1.btn1Click(Sender: TObject);
    var
      tempF,
      tempF2: TextFile;
      vLigne,
      Repertoire: string;
    begin
      Repertoire := ExtractFilePath(Application.ExeName);
     
      AssignFile(tempF2,Repertoire+'MessagesTmp.txt'); //Association à tempF2
      AssignFile(tempF,Repertoire+'Messages.txt'); //Association à tempF
     
      Reset(tempF);
      Rewrite(tempF2);
     
      while not eof(tempF) do
        begin
          ReadLn(tempF, vLigne);
          WriteLn(tempF2, vLigne);
        end;
     
      WriteLn(tempF2, 'Toto');
     
      CloseFile(tempF2); //Fermeture Association à 'Temporaire.txt'
      CloseFile(tempF); //Fermeture Association à 'Messages.txt'
     
      DeleteFile(Repertoire+'Messages.txt');
      RenameFile(Repertoire+'MessagesTmp.txt',Repertoire+'Messages.txt');
    end;
    Quel version de delphi as-tu ? Quel windows ?
    N'y aurait-il pas un autre logiciel qui prendrait la main quelques secondes sur des fichiers textes pour je ne sais quelles raisons ?

  3. #3
    Membre actif Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Points : 201
    Points
    201
    Par défaut
    Salut,
    ce que tu peux essayer de faire c'est de mettre ton code dans un try...finally :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Repertoire:=ExtractFilePath(Application.ExeName);
    AssignFile(tempF2,Repertoire+'Temporaire.txt'); //Association à tempF2
    AssignFile(tempF,Repertoire+'Messages.txt'); //Association à tempF
    Try
      (traitement des 2 fichiers)
    finally
      CloseFile(tempF2); //Fermeture Association à 'Temporaire.txt'
      CloseFile(tempF); //Fermeture Association à 'Messages.txt'
    end;
    DeleteFile(Repertoire+'Messages.txt');
    RenameFile(Repertoire+'Temporaire.txt',Repertoire+'Messages.txt');
    comme ça, tu est sur que tes 2 fichiers sont fermés avant l'execution des 2 lignes suivantes.

  4. #4
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 116
    Points
    116
    Par défaut
    Merci Neilbr et SILK pour vos suggestions et commentaires. En fait, je crois que l'erreur venait que cette partie de code était incluse dans une procédure 'FaitTri' qui comme le nom l'indique faisait un tri de mon fichier principal dans un fichier temporaire. Il est appelé durant une procédure d'ajout d'un message et ma variable tempF était toujours active même à la fermeture de 'FaitTri' ce qui semble , empêchait la suppression de mon fichier. J'ai ajouté le Try de SILK par précaution supplémentaire.

    Encore une fois merci à vous deux ainsi qu'à tous ceux qui se donnent la peine de répondre à nos discussions.

    Duan

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

Discussions similaires

  1. [Débutant] Suppression de données fichier .txt
    Par cand67 dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/08/2012, 12h56
  2. Tri et suppression d'un fichier txt avec vbs
    Par chenJedi dans le forum VBScript
    Réponses: 2
    Dernier message: 01/06/2011, 00h35
  3. Suppression de ligne dans un fichier txt
    Par charlix dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 10/06/2008, 15h38
  4. Suppression de la premiere ligne d'un fichier txt
    Par ninsekh dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/08/2007, 19h31
  5. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 18h58

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