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
peu tu preciser ce que tu dois supprimer ?
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
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+
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
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 fonction Rechercher 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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager