Réécrire un fichier en écrasant son contenu.
Bonjour.
Je veux ouvrir un fichier en mode exclusif, travailler sur son contenu et le réécrire. Le problème est que s'il y avait plus de caractères initialement, ils restent derrière le nouveau contenu.
Le fichier doit rester ouvert entre la lecture et l'écriture.
Voici un bout de code exemple.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
int nb;
AnsiString as;
handle = FileOpen(FICHIER, fmOpenReadWrite | fmShareExclusive);
if(handle == -1) { Beep(); return; }
nb = FileSeek(handle,0,2);
FileSeek(handle,0,0);
char *buffer = new char[nb];
int res = FileRead(handle,buffer, nb);
as = buffer; // Je lis "11111\n22222"
FileSeek(handle,0,0);
as = "33333";
nb = as.Length();
FileWrite(handle, as.c_str(), nb); // J'obtiens "33333\n22222"
FileClose(handle); |
Ca fait un moment que je cherche le moyen de remplacer complétement le contenu de ce fichier, sans succès.
Merci pour toute suggestion.