Supprimer des données d'un fichier

Résolu
ytillang30400 Messages postés 35 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 27 juillet 2013 - 19 mars 2009 à 11:47
ytillang30400 Messages postés 35 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 27 juillet 2013 - 20 mars 2009 à 13:45
Bonjour à tous.


Pour ajouter des données dans un fichier, on a "write", "append", etc... Mais pour supprimer des données sans avoir recours à un autre fichier (fichier A > read > write fichier B en supprimant données en cours de route), est-ce que c'est possible ?


Merci d'avance.

4 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
20 mars 2009 à 00:12
Salut,

ce code retire 20 octets de la fin du fichier (Project1.data)

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TFileStream.Create('project1.data', fmOpenReadWrite) do
  try
    Size := Size - 20;
  finally
    Free;
  end;
end;

y'a pas plus simple

 
@+
Cirec

<hr siz="" />
3
Utilisateur anonyme
19 mars 2009 à 12:27
Salut,

Non pas de fonction toute faite pour supprimer des données, mais faire une telle fonction est possible et simple à faire (TStringList est un moyen d'y parvenir).
0
ytillang30400 Messages postés 35 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 27 juillet 2013
19 mars 2009 à 22:32
Je te remercie de ta réponse. Mais il s'agit de données binaires ajoutées en fin de fichier. Quelques données d'une vingtaine de bits en fin de fichier que j'aimerais supprimer sans y mettre des espaces vides à la place, mais en rediminuant la taille du fichier. Et sans créer un autre en remplacement car trop long pour transférer un fichier volumineux.
0
ytillang30400 Messages postés 35 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 27 juillet 2013
20 mars 2009 à 13:45
SUPER MERCI! Je croyais que cette propriété était en lecture seule, ça m'apprendra...
0
Rejoignez-nous