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

  FORUM HardWare.fr
  Programmation

  Format de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Format de fichier

n°16920
haahhahaha​ha
Posté le 04-03-2001 à 14:31:02  profilanswer
 

struct t
{
   int n;
   char t[255];
};
 
WriteFile (..., t, ....);
 
Le prob c ke en écrivant ce fichier, 255 bytes dans le fichier seront vide si la chaine de caractère n'en fait pas autant
Comment faire qq chose de mieux ?

mood
Publicité
Posté le 04-03-2001 à 14:31:02  profilanswer
 

n°16924
eristoff
Posté le 04-03-2001 à 14:59:53  profilanswer
 

en ecrivant le fichier en binaire, ca marche ptet...

n°16927
Dost67
Posté le 04-03-2001 à 15:26:49  profilanswer
 

En C++ c'est mieux avec les flots. En C je vois pas.

n°16946
haahhahaha​ha
Posté le 04-03-2001 à 19:13:32  profilanswer
 

en fait je programme en C++ mais j'ai pas trouver un autre moyen et c'est le moyen utiliser pour d'autres fichiers (bitmap).
C koi les flots ? et merci de ne pas me mettre d'exemples MFC car je connais et j'aime po

n°16948
Roswell_
Posté le 04-03-2001 à 19:33:39  profilanswer
 

En C:
 
FILE *f=fopen("monfichier","wb" );//tu ouvres tonfichier en écriture en mode binaire
apres il y a des primitice comme
fputc(int ton_octet,FILE *f) pour ecrire dedans.


---------------
http://www.cheata.net le site qui vous donne la banane!
n°16977
darkoli
Le Petit Dinosaure Bleu
Posté le 04-03-2001 à 23:44:15  profilanswer
 

bonjour j'ai un exemple qui marche à proposer (pour enregistrer des bmp) j'espere que ce sera utile :
 

Citation :

// Enregistre une image dans un fichier : format bmp
int Save_BMP_Ex(char* nom_fichier,int largeur,int hauteur,GLubyte* mem) {
 // Fichier bmp non compressé 24bits
  FILE*         fichier;
  int           position_tampon=54;
  int           position_image=0;
  int           taille_donnees_fichier=0;
  int           complement=0;
  GLubyte*      tampon=(GLubyte*)NULL;
 
 // initialisation des données
  complement=(largeur*3)%4;
  if (complement>0) {
    complement=4-complement;
    }
  taille_donnees_fichier=54+((largeur*3)+complement)*hauteur;
 
 // création du tampon
  tampon=(GLubyte*)malloc(sizeof(GLubyte)*taille_donnees_fichier);
  if (tampon==(GLubyte*)NULL) {
    return(0);
    }
 
 // remlissage du tampon
 // entete
  tampon[ 0]='B';
  tampon[ 1]='M';
 // taille du fichier
  tampon[ 2]=taille_donnees_fichier & 255;
  tampon[ 3]=(taille_donnees_fichier >> 8) & 255;
  tampon[ 4]=(taille_donnees_fichier >> 16) & 255;
  tampon[ 5]=(taille_donnees_fichier >> 24) & 255;
 // inutilisé
  tampon[ 6]=0;
  tampon[ 7]=0;
  tampon[ 8]=0;
  tampon[ 9]=0;
 // adresse des données
  tampon[10]=54;
  tampon[11]=0;
  tampon[12]=0;
  tampon[13]=0;
 // taille de l'entete
  tampon[14]=40;
  tampon[15]=0;
  tampon[16]=0;
  tampon[17]=0;
 // taille image : largeur et hauteur
  tampon[18]=largeur & 255;
  tampon[19]=(largeur >> 8) & 255;
  tampon[20]=(largeur >> 16) & 255;
  tampon[21]=(largeur >> 24) & 255;
  tampon[22]=hauteur & 255;
  tampon[23]=(hauteur >> 8) & 255;
  tampon[24]=(hauteur >> 16) & 255;
  tampon[25]=(hauteur >> 24) & 255;
 // nombre de plan
  tampon[26]=1;
  tampon[27]=0;
 // nombre de couleur
  tampon[28]=24; // 24 bits
  tampon[29]=0;
 // format de compression (aucune=0)
  tampon[30]=0;
  tampon[31]=0;
  tampon[32]=0;
  tampon[33]=0;
 // taille de l'image : ta mère
  tampon[34]=0;
  tampon[35]=0;
  tampon[36]=0;
  tampon[37]=0;
 // resolution horizontale : 2834ppm
  tampon[38]=18;
  tampon[39]=11;
  tampon[40]=0;
  tampon[41]=0;
 // resolution verticale : 2834ppm
  tampon[42]=18;
  tampon[43]=11;
  tampon[44]=0;
  tampon[45]=0;
 // nombre de couleurs utilisées : ?
  tampon[46]=0;
  tampon[47]=0;
  tampon[48]=0;
  tampon[49]=0;
 // nombre de couleurs importantes : ?
  tampon[50]=0;
  tampon[51]=0;
  tampon[52]=0;
  tampon[53]=0;
 // image
  for (int i=0;i<hauteur;i++) {
    for (int j=0;j<largeur;j++) {
      tampon[position_tampon  ]=mem[position_image+2];
      tampon[position_tampon+1]=mem[position_image+1];
      tampon[position_tampon+2]=mem[position_image  ];
      position_tampon=position_tampon+3;
      position_image=position_image+3;
      }
    position_tampon=position_tampon+complement;
    }
 
 // Ouverture du fichier
  fichier = fopen(nom_fichier,"wb" );
  if (fichier==(FILE*)NULL) {
    free(tampon);
    return(0);
    }
 
 // Ecriture du fichier
  fseek(fichier,0,0);
  if (fwrite(tampon,1,taille_donnees_fichier,fichier)!=taille_donnees_fichier) {
    free(tampon);
    return(0);
    }
 
 // fin
  free(tampon);
  fclose(fichier);
  return(1);
}

 

--Message édité par darkoli--

n°17138
haahhahaha​ha
Posté le 05-03-2001 à 20:51:15  profilanswer
 

Désolé pour l'exemple je sais déjà enregistrer une image BMP.
Moi ce ke je veux c enregistrer la structure entière. Mais il faut ke la variable char soit dim (255 par ex). Mais si la chaine fait moins, c va po (c po bien)
QQ a un autre moyen sinon je vire la struct et je fait chaque variable a part...


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

  Format de fichier

 

Sujets relatifs
fichier global.asa et LOGON_USERpeut on decripter les fichier SAM de winnt et win2000 ???
portable toshiba 300cdt format partitioncomment faire un fichier bat ?
[PHP]Upload de fichierComment passer du PDF a un format exploitable ??
[Vb6] Lire des caractères dans un fichier binaire[PHP] upload de fichier et NT4
Couper un gros fichier en petits[VB ou autres]Extraire le texte d'un fichier au format DOC
Plus de sujets relatifs à : Format de fichier


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