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

  FORUM HardWare.fr
  Programmation

  [C++] Comment optimiser la place des données dans un ofstream?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Comment optimiser la place des données dans un ofstream?

n°103794
Alload
Posté le 22-02-2002 à 23:16:34  profilanswer
 

Alors voilà l'affaire, j'ai besoin de copier un grand nombre de float dans un fichier (plus de 300 000). Le problème c'est que ça fait planter mon programme.
 
Je suis sûr que ça vient du flux avec le fichier, parce que si je remplace l'écriture dans le fichier par une copie de ces données dans des floats il n'y a aucun problème.
 
Si quelqu'un a déjà rencontré ce type de problème, ou si quelqu'un a une idée... Merci.
 
 
Edit: la nouvelle question est comment faire pour utiliser seulement la taille de la variable pour la sauvegarder dans un fichier? Par exemple que la sauvegarde d'un int ne prenne que sizeof(int) comme place.

 

[jfdsdjhfuetppo]--Message édité par Alload--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 22-02-2002 à 23:16:34  profilanswer
 

n°103796
Da True Cl​ouseau
It's good to be true
Posté le 22-02-2002 à 23:22:49  profilanswer
 

Sous linux et win la taille d'un fichier est limitée à 4Go (enfin je crois, sans bidouille particulière)
Donc si t'écris (en ASCII) des centaines de milliers de flottants, tu risques de dépasser cette taille.

n°103801
Alload
Posté le 22-02-2002 à 23:29:24  profilanswer
 

Comment peut-on faire pour ne pas écrire en ASCII?

n°103802
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-02-2002 à 23:32:59  profilanswer
 

FAT16/32 : fichier de 2 Go maxi
FAT16 sous NT4 : peut-être 4 Go (vu qu'on peut faire des FAT16 de 4 Go sous NT4)
NTFS : "pas de limite" dans la taille de fichier
Linux : je sais plus quelle était la limite, mais c'était assez haut quand même. Genre 64 Go pour le ext2 ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°103804
Alload
Posté le 22-02-2002 à 23:39:38  profilanswer
 

Comment faire pour écrire en utilisant le moins de donnée possible? C'est à dire n'utiliser que la taille d'un float pour écrire un float?

n°103806
Da True Cl​ouseau
It's good to be true
Posté le 22-02-2002 à 23:43:57  profilanswer
 

Apparemment Ext2fs avait une limite de 2Go qui a été poussée à 4To par la suite.

n°103810
Da True Cl​ouseau
It's good to be true
Posté le 23-02-2002 à 00:08:44  profilanswer
 

Alload a écrit a écrit :

Comment faire pour écrire en utilisant le moins de donnée possible? C'est à dire n'utiliser que la taille d'un float pour écrire un float?  




Par exemple:
 
float a = 1.2654;
ofstream fout;
fout.open("toto", ofstream::binary);
fout.write((char *)(&a), sizeof(float));
fout.close()

n°104116
LeGreg
Posté le 23-02-2002 à 23:57:28  profilanswer
 

DA TRUE CLOUSEAU a écrit a écrit :

Sous linux et win la taille d'un fichier est limitée à 4Go (enfin je crois, sans bidouille particulière)
Donc si t'écris (en ASCII) des centaines de milliers de flottants, tu risques de dépasser cette taille.  




hum si un float a besoin d'un ordre de 20 caracteres,  
pour 300.000 flottants = 6.000.000 caracteres.
Est-ce qu'il faudrait plus de 20 caracteres pour stocker un float(32bits)?
 
Il doit surement y avoir un autre probleme..
(tu as plus de 6 Mo sur ton Disque dur?)
A+
LEGREG

n°104137
Alload
Posté le 24-02-2002 à 09:45:14  profilanswer
 

Je me doute que le problème venait d'autre part, mais ça m'a permit de chercher la méthode avec les function write et read que vous m'avez conseillé.
 
Donc voilà, c'est déjà un plus. :)
 
Pour le problème, il venait surement du code de mon exportateur 3DSMax... J'en ai marre de ce putain de logiciel qui me donne des trucs imcompréhensibles...


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

  [C++] Comment optimiser la place des données dans un ofstream?

 

Sujets relatifs
récuperer les données d'un formulaire [javascript] ds un fichier[PHP] - Mise en place phpBB...
Mise a jour d'une base de données a distance ASP / IISrecherche de soft de recuperation de données !
[PHP] Optimiser site : fichiers textes.. mais comment les verrouillerc/unix cherche a optimiser un client/serveur.
[PHP] comment formater une date sur base de donnéesrecuperation de donnees pour mise en page sur un formulaire
crypter des données sur le réseauComment rapatrier une base de données MySQL
Plus de sujets relatifs à : [C++] Comment optimiser la place des données dans un ofstream?


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