Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1595 connectés 

  FORUM HardWare.fr
  Programmation
  C

  extraire une partie d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

extraire une partie d'un fichier

n°1471305
sandra771
Posté le 06-11-2006 à 18:21:35  profilanswer
 

Bonjour,
 
Je souhaiterais extraire une partie d'un fichier (en l'occurence, une image) comportant un entête.
Je connais la taille de mon entête en nombre de bits, et je ne voudrais récupérer que la partie image (et l'enregistrer dans un nouveau fichier).
J'ai pensé à :
1- ouvrir le fichier comportant entête + image
2- déplacer un pointeur au début de l'image
3- enregistrer la fin du fichier (partie image) dans une variable
4- stocker la variable dans un nouveau fichier
5- fermer les deux fichiers
 
Cependant, je bloque à l'étape 2, je ne vois pas comment déplacer mon pointeur au début de l'image (avec fseek, je ne peux pas faire cela).
Quelqu'un aurait-il une idée?
Merci d'avance!
Sandra

mood
Publicité
Posté le 06-11-2006 à 18:21:35  profilanswer
 

n°1471307
jesus_chri​st
votre nouveau dieu
Posté le 06-11-2006 à 18:24:32  profilanswer
 

si fseek marche bien ici : soit myFile ton fichier (FILE*) et K la taille de ton en-tête :
 
fseek( myFile, K, SEEK_SET);  
 
et voilà !

n°1471329
matafan
Posté le 06-11-2006 à 18:59:49  profilanswer
 

Pourquoi tu dis que fseek ne marche pas ? Sinon dd fait ca tres bien (sous linux/unix), pas besoin de recoder ca en C.

n°1471468
sandra771
Posté le 07-11-2006 à 09:41:55  profilanswer
 

Ah bon, je pensais que K était un long indiquant le nombre de caractères à passer (et non un nombre de bits!). Je vais essayer, merci jesus_christ
Sinon, si je n'y arrive pas comme ça, j'essaerai la méthode matafan (dd tu dis? je vais regarder cette commande en détail)
Merci pour vos conseils!

n°1471508
0x90
Posté le 07-11-2006 à 10:48:48  profilanswer
 

T'es sur que tu veut avancer d'un certain nombre de bits et pas d'un nombre d'octets ?

n°1471581
sandra771
Posté le 07-11-2006 à 13:28:40  profilanswer
 

Non, c'était bien un nombre de bits. J'ai testé, ça a l'air de bien marché.
 
Voilà  en gros les lignes de mon code:
 
FILE      *fic_in, *fic_raw;
int        K=21504;
char      ligne[512];
char      file_path[50];
 
fic_in = fopen(file_path,"r" );  /* file_path le path du fichier */
  if (fic_in == NULL)
  {
 
  }
 
fic_raw = fopen(file_path,"w" );  /* file_path le path du fichier */
  if (fic_raw == NULL)
  {
 printf("Error when openning file %s\n", fic_raw);
  }
   
  fseek(fic_in, K, SEEK_SET);
  while(fgets( ligne , 512, fic_in ) != NULL) {
   fprintf(fic_raw,"%s", ligne);
  }
 
  fclose(fic_in);
  fclose(fic_raw);

n°1471628
matafan
Posté le 07-11-2006 à 15:08:43  profilanswer
 

K est en octets (bytes).

n°1471630
_darkalt3_
Proctopathe
Posté le 07-11-2006 à 15:10:35  profilanswer
 

sandra771 a écrit :

Non, c'était bien un nombre de bits. J'ai testé, ça a l'air de bien marché.
 
Voilà  en gros les lignes de mon code:
 
FILE      *fic_in, *fic_raw;
int        K=21504;
char      ligne[512];
char      file_path[50];
 
fic_in = fopen(file_path,"r" );  /* file_path le path du fichier */
  if (fic_in == NULL)
  {
 
  }
 
fic_raw = fopen(file_path,"w" );  /* file_path le path du fichier */
  if (fic_raw == NULL)
  {
 printf("Error when openning file %s\n", fic_raw);
  }
   
  fseek(fic_in, K, SEEK_SET);
  while(fgets( ligne , 512, fic_in ) != NULL) {
   fprintf(fic_raw,"%s", ligne);
  }
 
  fclose(fic_in);
  fclose(fic_raw);


 
byte != bit !


---------------
Töp of the plöp

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  extraire une partie d'un fichier

 

Sujets relatifs
nom du fichier courantConversion de fichier html n .doc
Encodage: sauvegarder fichier en UTF-8[VB] Extraire une ligne excel dans un autre tableau
[RES] lire un gros fichier XML en php en évitant xml_parse_into_structDonner comme valeur a une variable le mot d'un fichier .txt
mot aleatoire dans un fichierUpload de fichier
recherche de valeur dans un fichier[excel] Parcours d'une colonne et copie d'une partie du contenu
Plus de sujets relatifs à : extraire une partie d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR