Supprimer les n premiers octet d'un fichier

Signaler
Messages postés
32
Date d'inscription
mardi 15 janvier 2002
Statut
Membre
Dernière intervention
24 mars 2011
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
Bonjour, dans mon programme de modification des ID 3 tag, je voudrai permettre à l'utilisateur de supprimer les Id3tag de version 2. Ces tag sont placés en debut de fichier. J'aimerai savoir comment supprimer les n premier octect d'un fichier sans passer par une copie des taille du fichier - n octect restatnt dans le fichier.

merci

2 réponses

Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
2
Pour suprimer une partie d'un fichier je connais qu'une seul solution c'est de faire une copie temporaire quelque part.
Sinon il faudrait aller modifier la gestion des fichiers par l'OS pour dire que tel fichier se trouve les n octects plus loin, mais à mon avis il t'en empêchera.
J'ai pas bien compris: "n octect restatnt dans le fichier." tu veux les suprimer ou les modifier?
Pour les modifier il te suffit de récrire par dessus.
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
C'est tout à fait exact !
Voici un code permettant simplement de faire la copie :

#include
#include <fstream>
using namespace std ;
const int N=5 ; //nombre d'octets à supprimer en-tête

int main(void){//Troncature d'un fichier
ifstream fi("In.dat",ios::in | ios::binary);
if (fi.fail()) { cout << "erreur fichier "<<endl; return 1;}
ofstream fo("Out.dat",ios::out | ios::binary);
fi.seekg(N, ios::beg);//décalage du pointeur de lecture
fo << fi.rdbuf();//ici la ligne de copie
return 0;
}