Cormz0r
Messages postés1Date d'inscriptionmercredi 14 janvier 2009StatutMembreDernière intervention14 janvier 2009
-
14 janv. 2009 à 21:16
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 2013
-
14 janv. 2009 à 22:56
Bonjour,
Je travaille sur un projet personnel en ce moment qui implique la gestion de fichier.
J'ai créer des element de type "Record" que je sauve dans un fichier.
Je suis capable d'ajouter des éléments et de modifier sans probleme.
Par contre, je voudrais savoir s'il existe un moyen de supprimer une ligne en particulier dans un fichier.
Je connais la fonction "truncate", mais elle élimine tout ce qui se trouve apres l'endroit défini dans le fichier.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 14 janv. 2009 à 22:56
Deuxième solution :
dans ton record tu ajoute un champ (n'importe quoi) disons Type : byte
Type vaut toujours 1 , sauf quand tu veux que cet enregistrement ne soit pas lu ...
Donc si tu veux effacer un record bien précis , tu y accède avec ta recherche et tu mets une valeur differente de 1 à Type ( ou un boolean True si doit lire , false si doit être passé )
-> C'est un effacement logique (ton enregistrement existe encore mais tu ne le lis plus, c'est "comme si" il était effacé)
Bien sur Après un certain nombre (que tu décides) d'enregistrement effacé logiquement , tu réorganises ton fichier en effaçant physiquement tous les record effacés logiquement (ceux dont Type:=0)
-> plusieurs manières : soit comme l'a dit fBalien avec un tab dynamique
(donc tu parcours ton fichier et tu remplis le tableau qu'avec des enregistrements présents )
Soit (j'ai pas testé mais je pense pas que sa poserais problème ) :
tu lis ton fichier , et tu en créé un autre en même temps (tjs en passant au moment de la lecture les record avec Type:=0)