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

Pascal Discussion :

[GPC-FPC] Suppression-Copie Fichier


Sujet :

Pascal

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par d�faut [GPC-FPC] Suppression-Copie Fichier
    Bonsoir!

    J'esp�re que vous pourrez me donner une r�ponse � la question que voici, apr�s une br�ve explication.

    Dans une proc�dure, je dois supprimer un paragraphe (chaque paragraphe commen�ant par un caract�re sp�cial donn�) provenant d'un fichier texte. Je ne peux pas utiliser de tableau, le nombre de paragraphes dans le fichier �tant non fix�. Le fichier en question est pass� en param�tre de ma proc�dure (pr�c�d� d'un var, bien entendu).

    La m�thode que j'ai imagin� et impl�ment� est la suivante:
    1. Je prends un fichier temporaire (d�claration dans la proc�dure + assignation du type assign(tmp, 'tmp.txt'))
    2. Je copie les lignes qui ne doivent pas �tre supprim�es dans ce fichier.
    3. Je recopie le contenu du fichier temporaire dans le fichier de d�part.
    4. Je supprime le fichier temporaire.

    Cependant, je trouve cela assez couteux en m�moire (deux fichiers) et en temps de calcul (copy-copy). N'y a-t-il pas moyen de faire mieux?
    J'ai essay� de trouver mieux mais � chaque fois que je mettais en place mes id�es dans mon code...Ca n'aboutissait pas au r�sultat convenu.

    Merci d'avance.

    Akushiro

  2. #2
    Membre chevronn�
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Par d�faut
    On va dire que in.txt est ton fichier d'entr�e.
    1 : tu generes un fichier out.txt contenant les lignes devant �tre conserv�es.
    2 : tu renommes in.txt en in.bak par exemple
    3 : tu renommes out.txt en in.txt
    4: si tu veux tu effaces in.bak mais en cas d'erreur �a peu �tre bien de le garder.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par d�faut
    D'abord, merci pour la r�ponse

    Ensuite, je reprends pour voir si j'ai bien compris:

    1 : tu generes un fichier out.txt contenant les lignes devant �tre conserv�es.
    2 : tu renommes in.txt en in.bak par exemple
    3 : tu renommes out.txt en in.txt
    4: si tu veux tu effaces in.bak mais en cas d'erreur �a peu �tre bien de le garder.

    -->

    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
     
    program test;
     
    var texte1,texte2;
     
    procedure editfile(var f1,f2:text);
    begin
            assign(f2,'out.txt');
            rewrite(f2);
            {Remplissage de f2 à partir de f1}
            close(f2);
            rename(f1,'in.bak');
            rename(f2,'in.txt');
            erase(f1);
    end;
     
    begin
            assign(texte1,'in.txt');
            editfile(texte1,texte2);
    end.
    Est-ce bien cela que tu voulais dire? Si oui, je n'ai pas droit � deux fichiers dans le programme principal...Donc je ne peux pas appliquer cette m�thode. Sinon, peux-tu pr�ciser s'il-te-pla�t?

  4. #4
    Membre chevronn�
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Par d�faut
    C'est bien � ce genre de chose que je pensais.

    Pourquoi cette limitation � une seul fichier ? C'est un exercice ?

  5. #5
    Expert confirm�

    Inscrit en
    Ao�t 2006
    Messages
    3 970
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 3 970
    Par d�faut
    Geo,
    Citation Envoy� par batyann811 Voir le message
    Pourquoi cette limitation � une seul fichier ? C'est un exercice ?
    Probablement, c'est d'ailleurs un exercice assez classique pour apprendre - un peu - � g�rer des fichiers (ajouter, modifier, supprimer ...).

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par d�faut
    En effet, il s'agit d'une sorte d'exercice, disons que je ne peux pas me permettre (c'est plus un projet qu'un exercice) d'utiliser deux fichiers dans le programme principal. La solution que j'ai avanc� est-elle donc la plus 'efficiente' en prenant la contrainte en consid�ration?

Discussions similaires

  1. Copie, suppression de fichier sur le serveur
    Par maxr397 dans le forum Servlets/JSP
    R�ponses: 5
    Dernier message: 13/03/2008, 10h32
  2. [BATCH]Suppression de fichier
    Par alxkid dans le forum Scripts/Batch
    R�ponses: 2
    Dernier message: 21/04/2004, 13h25
  3. R�ponses: 4
    Dernier message: 16/04/2004, 08h20
  4. Auto suppression de fichier
    Par pato dans le forum Langage
    R�ponses: 4
    Dernier message: 05/03/2004, 09h09
  5. Suppression de fichiers
    Par wasch dans le forum C++Builder
    R�ponses: 6
    Dernier message: 20/11/2003, 16h37

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