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

Langage Pascal Discussion :

[LG]supprimer un enregistrement dans un fichier


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [LG]supprimer un enregistrement dans un fichier
    quelqu'un autrait il un bout de code pour supprimer un enregistrement d'un fichier ?

    Je travailles sur Delphi 3.0 en pascal

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    peu tu preciser ce que tu dois supprimer ?

  3. #3
    Membre averti Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Points : 358
    Points
    358
    Par défaut
    pour suprimer une partie d un fichier , tu le charges , le lis , la stock dans une variable , suprime ce qui ne te plauis par et l overwrite
    6*8 =42

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    je crée un carnet d'adresse, enregistré sur fichier. Il faut que je fasses une suppression d'un enregistrement qui se compose d'une variable de type structure ( nom, prénom ... ).

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Comme l'a dit Charly, tu charges le fichier entièrement, dans un tableau par exemple, ou une liste chaînée... Ensuite il suffit de réécrire ce même fichier sans l'enregistrement que tu ne veux plus !
    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci pour les conseils, mais moi je voudrais bien avoir un exemple de code pour cela.

    Voyez le nombre de messages que j'ai posté, je suis débutant alors ça me dit pas trop de passer 6 heures pour trouver 5 lignes

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut supprimer un enregistrement dans un fichier
    Salut,

    Avoir un bout de code pour ca me parait superflu. Voici la démarche algorithmique :

    crée un fichier temporaire ex. "temp.dat"
    ouvrir ton carnet ("carnet.dat") en lecture
    ouvrir "temp.dat" en ecriture
    faire une boucle pour le lire "carnet.dat" jusqu'a la fin
    ex. "Tant que non fin de fichier faire"
    debut
    si le nom lu est different du nom à supprimer,
    le copier à la fin de "temp.dat"
    fin
    apres la boucle, supprimer "carnet.dat"
    renommer "temp.dat" en "carnet.dat".

    A manipuler avec precaution.

    Bon developpement

  8. #8
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Ce sujet a DEJA été traité dans le forum. C'est une certitude, alors moins qu'il y ait eu du ménage depuis, je t'engage à aller consulter la fonction Rechercher du forum.

    Ca coûte pas plus cher.

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  9. #9
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 37
    Points : 41
    Points
    41
    Par défaut
    Salut
    La methode par Mcoder n'est utile que l'orsque tu communique avec une grande base de donnees.
    La methode que je te conseille pour ton cas (petite base de donnes)
    suis la demarche suivante :

    {Supposons que n correspond à l'emplacement de l'enregistrment a supprimer
    Totalrecords au nombre d'enregistrement dans le fichier ou precisement
    filesize(My_file) si et seulement si My_file est de type : file of Rec)}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Procedure Delete_Data;
    Var i : byte; 
    Begin 
    for i:= n to Totalrecords - 1 do Begin 
    seek(my_file,i); 
    read(My_file,Rec); 
    seek(My_file,i-1); 
    write(My_file,Rec); 
    End; 
    Seek(My_file,totalrecords -1); 
    Truncate(My_file); 
    Dec(totalrecords); 
    End;
    Desole de ne pas commenter l'exemple

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci pour le coup de main le code marche bien

  11. #11
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 37
    Points : 41
    Points
    41
    Par défaut ok man
    On est la que pour s' aider

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

Discussions similaires

  1. Comment faire pour supprimer définitivement un enregistrement dans un fichier
    Par gryffondor8392 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/02/2011, 19h12
  2. Supprimer un enregistrement dans un fichier
    Par Enzymus dans le forum C
    Réponses: 1
    Dernier message: 09/01/2010, 17h35
  3. Réponses: 1
    Dernier message: 28/01/2006, 12h36
  4. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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