écrire dans un fichier sans réécraser

Signaler
Messages postés
34
Date d'inscription
jeudi 19 octobre 2006
Statut
Membre
Dernière intervention
13 juin 2007
-
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
-
Salut,

Pour mettre à jour un fichier F1 (modification d'un caractère en plein milieu par exemple), existe-t-il une manière de procéder "simple" en interventant directement sur F1, ou est-il obligatoire de créer un 2ème fichier F2, effacer F1, et renommer F2 en F1 ? 

Merci, bonne journée

5 réponses

Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
salut,

oui tu peux agir sur F1 sans créer un deuxième fichier.
le principe est d'ouvrir le fichier, le charger en mémoire donc.
ensuite modifier ce que tu veux et enfin remettre le contenu sur disque dur, donc dans le fichier.

Pour cela il faut l'ouvrir une fois en lecture puis refermer et après ouvrir en écriture avec écrasement et le tour est joué.
En fait ça recrée un fichier mais on n'y voit que du feu.

ça répond à ta question ?

Loki
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
La modif d'1 octet (ou de plus si meme nbr) ne pose aucun probleme, on se positionne devant et on écrit.

ciao...
BruNews, MVP VC++
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
BruNews > on peut modifier un caractère en plein milieu directement sur disque ?

Loki
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
évidemment.
où donc serait le prob si on écrit le même nbr d'octets que ceux qu'on écrase ???

REMPLACE OCTET DE FICHIER (WIN32)
http://www.cppfrance.com/code.aspx?id=18924

ciao...
BruNews, MVP VC++
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
ok, je regarde. thanks.

Loki