quelqu'un autrait il un bout de code pour supprimer un enregistrement d'un fichier ?
Je travailles sur Delphi 3.0 en pascal





quelqu'un autrait il un bout de code pour supprimer un enregistrement d'un fichier ?
Je travailles sur Delphi 3.0 en pascal
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





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 ... ).
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+





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
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
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 fonctionRechercher du forum.
Ca coûte pas plus cher.
A+








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)}
Desole de ne pas commenter l'exemple
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;





merci pour le coup de main le code marche bien








On est la que pour s' aider![]()
Partager