-
[LG]modifier un fichier
salut
voila j'aimerai savoir comment ajouter une donnée a un fichier ss efffacer les données existantes car c'est ce que fait rewrite et reset ne permet que de lire.
J'ai pensé recopier ce que contient le fichier faire lezs modifications et recopier ds la fichier les nvelles données mais ce sera un peu trop pour un nbre important de données.
merci
d'avance
golchi :lol:
-
Bonjour !
S'il s'agit un fichier d'enregistrements de taille fixe, tu peux positionner le pointeur de fichier sur l'enregistrement à modifier (fonction Seek), lire l'enregistrement, le modifier dans le buffer, repositionner le pointeur de fichier à l'endroit de départ et réécrire l'enregistrement modifié.
Mais s'il s'agit d'enregistrements de taille variable ou d'un fichier texte, tu peux créer un nouveau fichier, lire le fichier de départ et écrire dans le nouveau fichier au fur et à mesure, en effectuant les modifications nécessaires.
A la fin, tu détruis le fichier de départ et tu renommes le nouveau fichier.
De cette manière, tu ne seras pas limité par la quantité de mémoire dont ton programme dispose.
D'autres intervenants auront peut-être de meilleures idées ?
Bonne prog !
-
Non pas d'autre idée, c'est parfait Alcatîz :D
-
A noter que depuis Dos 3.0, les fichiers ouvert avec Reset sont par défaut ouverts en lecture ET écriture, contrairement à ce qu'on peut lire la plupart du temps.
Tu peux donc ajouter directement des données à ton fichier en te positionnant à la fin de celui-ci avec [b]Seek[b]. De la même manière, si tes données sont sauvées en mémoire, tu peux tout à fait remplacer le fichier original, ou bien utiliser une copie sur disque comme Alcatiz le propose (tu renommes le fichier original, tu crées un nouveau fichier avec l'ancien nom, et tu copies le nécessaire).
A+