cs_arc59
Messages postés32Date d'inscriptionmardi 15 janvier 2002StatutMembreDernière intervention24 mars 2011
-
14 janv. 2003 à 13:35
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 2004
-
16 janv. 2003 à 09:11
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.
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 15 janv. 2003 à 16:01
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.
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 16 janv. 2003 à 09:11
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;
}