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

  FORUM HardWare.fr
  Programmation
  C++

  [C] Question sur les fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Question sur les fichiers

n°340729
*LighTninG​*
Posté le 23-03-2003 à 13:48:12  profilanswer
 

Salut!
Je veux écrire un tableau de int dans un fichier et le récupérer après, le problème c'est qu'il est très gros (700 000 cases) et ses valeurs varient aléatoirement de 0 à 2000.
 
Si je l'enregistre en mode texte, je suis obligé de mettre un espace à chaque valeur écrite, avec un fprintf(fichier,"%i ",tab[i]); .Je les récupére ensuite avec un fscanf(fichier,%i ",tab[i]); .
 
Mais avec des espaces, le fichier devient presque 2 fois plus gros! Ya pas moyen de mettre autre chose qu'un espace entre chaque valeur et que ca prenne moins de place? (tout en récupérant le même tableau bien sur)  
sinon ya bien des autres commandes pour écrire dans un fichier comme fwrite et fputc, mais je sais pas trop m'en servir...aidez moi svp.

mood
Publicité
Posté le 23-03-2003 à 13:48:12  profilanswer
 

n°340745
Konar
Posté le 23-03-2003 à 14:18:59  profilanswer
 


Une méthode simple : (y a mieux, mais plus complexe)
Tes valeurs sont comprises entre 0 et 2000 => type unsigned short.
Le truc c'est d'écrire tes valeurs de cette facon :
(me souviens plus trop comment marche fwrite, mais ca doit ressembler a ca)
 

Code :
  1. USHORT val = 1500;
  2. fwrite((char*)&val, sizeof (USHORT), sizeof (USHORT), tonfichier);


 
ton fichier est plus trop en mode texte, et donc plus d'espaces... ensuite pour lire tu fais la meme chose :
 

Code :
  1. USHORT val;
  2. fread((char*)&val, sizeof (USHORT), sizeof (USHORT), tonfichier);


 
voila. c une solution simple, a optimiser, surtout qd on sait que dans un USHORT on peut mettre juska 65535, donc un nb x fois tes valeurs qui vont de 0 a 2000. (j'arrive plus a savoir combien vaut x la, j'ai mon cerveau en mode pause, et en plus j'ai fait epita alors je sais plus compter)
 
 
ps : désolé pour le "sizeof (USHORT)", mais ca me fait trop kiffer de mettre des trucs comme ca.

n°340761
*LighTninG​*
Posté le 23-03-2003 à 14:52:01  profilanswer
 

Merci :)
Et si jamais g des valeurs positives et négatives dans mon tableau ca marchera aussi?

n°340766
Konar
Posté le 23-03-2003 à 15:02:11  profilanswer
 

*LighTninG* a écrit :

Merci :)
Et si jamais g des valeurs positives et négatives dans mon tableau ca marchera aussi?  


 
moui ca devrait marcher aussi... meme si tu mets des float des nivos ou des bordels, du moment que tu ecris/lis des types dont tu t'es mis d'accord...


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

  [C] Question sur les fichiers

 

Sujets relatifs
[Delphi perso edition] Probleme avec la manip de fichiers.Question pour les ultra baleze de la prog XFree
Question con sur smarty (templates)PHP : question de base
répertoire, racourci réseau et ouverture de fichiers...[Access] Une grosse question car je suis perdu...
[JAVA] Une question sur la syntaxe..Petite question technique sur PowerBuilder (data type)
dernière question sur les webservices avec axis (c promis!)<input type=file> veut pas uploader mes fichiers
Plus de sujets relatifs à : [C] Question sur les fichiers


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