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

 


Dernière réponse
Sujet : [C++] Comment optimiser la place des données dans un ofstream?
Alload 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...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Alload 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...
LeGreg

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

Da True Clouseau

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()

Da True Clouseau Apparemment Ext2fs avait une limite de 2Go qui a été poussée à 4To par la suite.
Alload 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?
antp 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 ?
Alload Comment peut-on faire pour ne pas écrire en ASCII?
Da True Clouseau 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.
Alload 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)