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 :

Probleme pour effacer un fichier texte (DeleteFile)


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut Probleme pour effacer un fichier texte (DeleteFile)
    Bonjour,
    Je souhaite lire dans un fichier txt, enregistrer ce qui m interesse dans un autre, puis effacer le 1er fichier, et renommer le second avec le nom du premier (ca revient à modifier mon 1er fichier texte, j´ai rien trouvé de plus simple,..)

    Le probleme est que je n arrive pas a supprimer le fichier texte.
    Voici mon code :

    AssignFile(F5,'syscopia.txt'); //fichero temporar
    Rewrite(F5);
    AssignFile(F2,'fichier.txt');
    {$I-} //para evitar errores si el fichero no existe
    Reset(F2);

    {ici, j ai mon algorithme qui choisit les lignes a copier, et qui les met dans le fichier temporaire}


    CloseFile(F2);
    CloseFile(F5);
    if not DeleteFile('syscopia.txt','fichier.txt') then
    begin
    ShowMessage('File not deleted!');
    end;
    RenameFile(syscopia.txt,);


    Et la, ca me dit qu il n arrive pas a le fermer.
    Quelqu un sait il pourquoi, ou conait il une fonction pr le forcer à le supprimer.
    Merci beaucoup d avance. (Mon tp est a rendre demain ...)
    A bientot
    Julie

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 158
    Points : 103
    Points
    103
    Par défaut
    tu peux déjà, pour deletefile, mettre le nom long des fichiers a supprimer, ca évite bien des erreurs...
    Essayes déjà ca: si les fichiers a supprimer son dans ton répertoire de projet, alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    deleteFile(ExtractFilePath(application.exeName)+'nomFichier.ext') 
    //éventuellement un autre fichier en 2ème paramètre comme tu l'as fais.
    Mais si, les fichiers ne sont pas dans le répertoire courrant de ton projet, alors, tu indique simplement le chemin relatif ou absolu des fichiers a supprimer + les noms de fichiers.

    Tiends nous au courrant.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Salut,
    Merci pour la reponse.
    J´ai deja essaye cela, ca ne marche pas (mettre le nom du fichier long). De plus, le nom change a chaque fois qu on lance le programme, car le nom du fichier texte depend de plusieurs trucs (pas important ici).

    Bref, deletefile(nom_entier_de_mon_fichier) ne marche, et je pense que le probleme vient du fait que mon fichier est encore actif (c´est possible ca?).
    Il ne faut pas faire autre chose que CloseFile(fichier) avant de le supprimer?

    Le message http://www.developpez.net/forums/sho...d.php?t=167516
    decrit exactement mon probleme, helas, il est marque en resolu, mais ne m explique pas vraiment pourquoi ca ne amrche aps. De plus, je n arrive pas a mettre la fonction try .. finally. Le programme saute a la fonction suivante, me mettant une erreur de compilation.

    Une autre idée?
    Merci
    A+ Julie

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 158
    Points : 103
    Points
    103
    Par défaut
    essayes en faisant des showmessage(''), tu pourra voir l'état des différentes proc grace a des booléens.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonsoir,

    En remplacant les comandes dans ce sens, cela fonctionne de mon coté


    AssignFile(F5,'syscopia.txt'); //fichero temporar
    Rewrite(F5);
    AssignFile(F2,'fichier.txt');
    {$I-} //para evitar errores si el fichero no existe
    Reset(F2);

    {ici, j ai mon algorithme qui choisit les lignes a copier, et qui les met dans le fichier temporaire}

    CloseFile(F2);
    CloseFile(F5);
    if not DeleteFile('fichier.txt') then
    showmessage('File not deleted!') else RenameFile('syscopia.txt','fichier.txt');


    A+

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    salut,
    pitango, qu as tu changé? je ne vois aps la difference avec mon code!
    Merci

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    tu avais tapé

    if not DeleteFile('syscopia.txt','fichier.txt') then
    begin
    ShowMessage('File not deleted!');
    end;
    RenameFile(syscopia.txt,);

    que j'ai transposé en

    if not DeleteFile('fichier.txt') then
    writeln('File not deleted!') else RenameFile('syscopia.txt','fichier.txt');

    en suivant la logique de ton énnoncé, code que j'ai testé et qui pour moi
    focntionne

    A+

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Salut,
    Merci. C´est fou, ca marche pas chez moi! Ca doit venir de mon algo de traitement que je vous ai pas mi, mais je ne fais que des boucles, des writeln et des readln.

    Y a un "truc" que je pourrais faire la dedans qui bloque le deletefile ?
    Je ne vois vraiment aps quoi!
    Julie

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Repart depuis le début en sortant les traitements intermédaires

    car si tu t'en tiens au code que tu as posté et que j'ai testé avec quelques modifs, cela doit fonctionner. Sinon poste nous ton code entier.

    Bon courage

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    onjour à tous,
    Pour commencer, merci à tous pour toutes ses réponses.
    J´ai enfin trouver le bug :
    Bien avant de de realiser cete conftion de deletefile, j ouvrais ce même fichier, et fermais le fichier grace a un closefile, mais dans un boucle, qui n etait pas tjrs executer. Du coup, le fichier restait ouvert, et meme si je le re-ouvrais et le re-fermé, je ne pouvais pas le supprimer.

    En sortant le closefile de la boucle, mon deletefile, appele 15 fonctions plus loin marche sans probleme !

    J´esoère que ca pourra aider d´autre personne. J´ai cherche a supprimer le fichier après chaque ouverture et fermeture, jusqu á ce qu´a un moment, ca ne marche pas. Et c´est dans cette fonction que le closefile était mal placé.

    A +
    Julie

  11. #11
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    786
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 786
    Points : 505
    Points
    505
    Par défaut
    Salut juste une question , pour eviter tes manip d'effacer, renommer ...

    pourquoi ne pas utiliser par exemple un Tmemo.

    LoadFromFile du memo pour charger ton fichier.
    2° Traitement du fichier directement dans le memo.
    savetofile pour le sauver le fichier modifier sous le meme nom.

    bye

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/07/2006, 10h39
  2. Pb pour importer un fichier texte
    Par sam01 dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/09/2005, 14h16
  3. Un programme "p2p" pour échanger des fichiers text
    Par Cthulhu 22 dans le forum Développement
    Réponses: 2
    Dernier message: 17/02/2005, 16h51
  4. Probleme pour lire un fichier Ini
    Par Sebinou dans le forum C++Builder
    Réponses: 11
    Dernier message: 11/03/2004, 00h22
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 12h17

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