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

Turbo Pascal Discussion :

Supprimer le dernier élément d'un fichier


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut Supprimer le dernier élément d'un fichier
    Bonjour

    Voilà, j'ai un fichier de caractères et je veux supprimer le dernier composant ; j'ai essayé cette procedure mais j'ai trouvé qu'on ne peut pas lire le FF ( fin de fichier ) alors si vous pouviez m'aider. J'ai aussi essayé le truncate(fichier) ça n'a pas marché. MERCI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure suppres  (var f:file of char; j:longint);  
       { je veut supprimer le composant j }
    var c:char; k:longint; 
    begin
        for k := j to (filesize(f)-1) do
        begin
            seek(f,k+1);
            read(f,c);
            seek(f,k);
            write(f,c);
        end;
    end;

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    La fonction eof(File) te dis si le caractère sur lequel tu es positionné est ou non la fin du fichier.

  3. #3
    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
    Gao,

    L'aide de TP pour Truncate te donne un exemple d'utilisation, il n'y aucun problème pour l'adapter à ton cas, ça relève pratiquement du copier/coller.

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par Bibou_ini Voir le message
    Bonjour voila j'ai un fichier de caractére et je veux supprimer le dernier composant ; j'ai esseyé cette procedure mais j'ai trouver qu'on peut pas lire le FF ( fin de fichier ) alors si vous pouvez m'aider. j'ai aussi esseyé le truncate(fichier) ça na pas marché .MERCI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure suppres  (var f:file of char; j:longint);  
       { je veut supprimer le composant j }
    var c:char; k:longint; 
    begin
        for k := j to (filesize(f)-1) do
        begin
            seek(f,k+1);
            read(f,c);
            seek(f,k);
            write(f,c);
        end;
    end;
    Si tu veux atteindre le dernier caractere, je crois que c' est pas très difficile
    * filesize te donne la taile du fichier en octet or un caractere fait un octet.
    * pour atteindre le dernier caractere, il te suffit de faire seek(f,filesize(f)-1) puisque la premiere position dans le fichier est 0.

    A partir de là, tu peux faire le "truncate".

    Ou si tu veux faire complet, tu peux copier le contenu du fichier f dans un autre fichier excepté le dernier caractere. Tu pourras t' aider de filepos pour savoir si tu as atteint le dernier composant du fichier.

    Si c' est pour un composant "j" quelconque, tu ne peux pas utiliser truncate. Il te faut maintenant recopier le contenu de f dans un autre fichier sauf le composant "j". filepos peut te dire si tu as atteint le composant j.

  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
    Fae,
    Citation Envoyé par darrylsite Voir le message
    ...
    * filesize te donne la taile du fichier en octet or un caractere fait un octet.
    ...
    Eh non
    Citation Envoyé par TP help
    DESCRIPTION: F est une variable de type fichier. FileSize(F) renvoie le nombre d'éléments du fichier F. Si le fichier est vide, FileSize(F) renvoie 0.
    Il se trouve que pour un File of Char, c'est la même chose, à cause la taille d'un Char = 1.

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par droggo Voir le message
    Fae,

    Eh non


    Il se trouve que pour un File of Char, c'est la même chose, à cause la taille d'un Char = 1.
    +1.
    Je me suis fais avoir par le nom de la fonction.

  7. #7
    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
    Hai,
    Citation Envoyé par darrylsite Voir le message
    +1.
    Je me suis fais avoir par le nom de la fonction.
    Je le savais par coeur, pour m'être fait avoir aussi, dans le temps (quelque chose comme la préhistoire ).

Discussions similaires

  1. Supprimer le dernier élément d'une chaîne QString
    Par cedji dans le forum Débuter
    Réponses: 2
    Dernier message: 27/11/2012, 16h17
  2. Comment supprimer le dernier élément d'un combobox
    Par gryffondor8392 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/01/2011, 20h59
  3. Supprimer le dernier caractere d'un fichier
    Par dabaton dans le forum Débuter
    Réponses: 3
    Dernier message: 03/01/2009, 11h12
  4. Supprimer la derniere ligne d'un fichier texte
    Par tarmo57 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/02/2008, 13h55
  5. Réponses: 5
    Dernier message: 28/11/2007, 21h15

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