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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.