Les fichiers

Cormz0r Messages postés 1 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 14 janvier 2009 - 14 janv. 2009 à 21:16
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 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.

Est-ce possible de seulement supprimer une ligne?

merci

2 réponses

fbalien Messages postés 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016
14 janv. 2009 à 21:59
bonjour

une première voie
charger le fichier dans un tableau dynamique
supprimer la ligne du tableau
puis sauvegarder le tableur dans le fichier

Valable si fichier pas trop gros bien sur
a+
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
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)

Voila
0