begin process at 2012 05 29 23:01:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

lecture ecriture de tres gros fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lecture ecriture de tres gros fichiers

jeudi 14 juillet 2005 à 15:53:37 | lecture ecriture de tres gros fichiers

ddesbuis

y a t'il des regles à respecter pour la lecture et l'ecriture de tres gros fichiers texte ?

je parle de fichiers entre 100Mo et 4GO

je suis preneur de tous conseils car les outils traditionnels sont bien bien lent

pour l'instant j'utilise :

ofstream et << >>

David



jeudi 14 juillet 2005 à 16:09:10 | Re : lecture ecriture de tres gros fichiers

BruNews

Administrateur CodeS-SourceS
Sous Windows:
- ReadFile()
- WriteFile()

ciao...
BruNews, MVP VC++
jeudi 14 juillet 2005 à 16:23:51 | Re : lecture ecriture de tres gros fichiers

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Une règle c'est d'utiliser un tampon d'une taille assez grande (quelques ko) plutot que caractère par caractère, et d'écrire ce tampon
jeudi 14 juillet 2005 à 16:34:08 | Re : lecture ecriture de tres gros fichiers

ddesbuis

certe l'idée semble être la bonne mais comment implemente t'on une augmentation du buffer sur un ostream ?

je veux dire tres concretement si tu as un petit exemple de code ?

David

jeudi 14 juillet 2005 à 16:51:26 | Re : lecture ecriture de tres gros fichiers

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Tu n'utilises pas << et >> mais des méthodes permettant de spécifier la taille du buffer à lire ou a écrire (read et write).
jeudi 14 juillet 2005 à 17:25:32 | Re : lecture ecriture de tres gros fichiers

ddesbuis

read et write sont reservé au fichier binaire non ?

mes fichiers sont du texte pur et dur...

jeudi 14 juillet 2005 à 17:53:13 | Re : lecture ecriture de tres gros fichiers

ddesbuis

Réponse acceptée !
j'ai mis cela en place dans mon programme :

    std::ofstream f_out;     
    f_out.open ( nomfichier.c_str (), std::ios::out );
   
    char mybuffer [32768];
    f_out.rdbuf()->pubsetbuf(mybuffer,32768);

ensuite il suffit de ne pas utiliser std::endl mais seulement "\n"

car std::endl equivaut à "\n" + flush

flush vide le buffer dans le flux et sont utilisation ralentit donc l'opération d'ecriture

il vaut mieux donc eviter std::endl pour les operation d'ecriture massive sur un flux
par contre c'est recommendé pour les fichiers de debugging sinon on ne sait jamais vraiment ou c'est arreté le prog...

Avec tout cela j'ecrit au moins 10x plus vite COOL

je suis à l'ecoute des commentaires car c'est la premiere fois que j'utilise ces fonction :
rdbuf() et pubsetbuf ()

l'utilisation que j'en fait n'est pas forcement academique !!



jeudi 14 juillet 2005 à 18:40:16 | Re : lecture ecriture de tres gros fichiers

MuPuF

Pour l'écriture de buffer, j'ai pas trouvé mieux que le C ...
fwrite(Buffer,TailleD'uneUnitée,TailleTotale,Fichier);
on peux meme sauvegarder des structures avec, c'est sympa si on veux pas passer par les ini (qui sont plus long ...)

vendredi 15 juillet 2005 à 07:21:18 | Re : lecture ecriture de tres gros fichiers

ddesbuis

mais tu fais du binaire ou du texte avec ca ?
vendredi 15 juillet 2005 à 08:04:37 | Re : lecture ecriture de tres gros fichiers

Joky

Membre Club
Réponse acceptée !
Bah non c'est du texte ça !
Mais bon moi j'serais aussi parti sur un ReadFile comme j'arrive à m'en servir maintenant

void Aurevoir( void ); //Bonne journée


1 2

Cette discussion est classée dans : lecture, fichiers, gros, ecriture


Répondre à ce message

Sujets en rapport avec ce message

Lecture de 'gros fichiers' [ par jc_romeo ] Bonjourje dois faire un programme qui doit lire plusieurs fichiers, qui chacun font des dizaines de méga octets.etant donné que je n'ai pas assez de m Lecture ecriture de fichiers [ par unbreak ] bonjour, je cherche simplement comment creer un fichier avec des donnée d'une classe; un point par exemple ou un rationnel. Merci d'avance Andrei editbox, lecture des données ??? [ par gege1024 ] quel moyen a t'on pour recuperer les lignes d'un editbox ?j'ai rempli un editbox avec plusieurs fichiers (multiligne)et je desire faire un traitement lecture fichiers [ par toff86 ] Bonjour,J'ai fait un programme qui genere un fichier texte, dans le quel se trouve la date et la temperature: exemple: 20/12/2004 -- 15:44:12 18.60 lecture de fichiers binaires [ par psycho ] bonjour a tous. Je cherche a lire un fichier .obj (c a dire un fichier compile, mais l edition des liens n est pas encore faites) pour en extraire ses Transfert de gros fichiers via FTP [ par fabricioliking ] BonjoursVoila j'ai besoin d'un petit coup de main faute d'être un peu perdu.J'ai pour projet sous borland 6 de permettre à chaque utilisateurs de mon Visualiser gros fichiers ! [ par azamharir ] salut à tout le monde,j'ai une application mfc qui manipule des données géographiques importantes et qui crée des fichiers de grande taille (sous form tap ecriture -lecture [ par ingimy ] salut,c'est la première fois que j'écris dans ce forum.je suis dans dans une grande probleme et je demande d'aide urgent.mon PFE est sur le point de f comment désactiver lecture seul sur dique FAT32 [ par mikouRoux ] Salut,J'essaye d'installer indexHiBit (CMS très simple) en local pour pouvoir y faire des modificationsPour pouvoir l'installer (http://www.indexhibit Listage de fichiers en c [ par lectpe ] Bonjour à tous, je suis en train de créer un mini jeu en sdl avec la création d'une sauvegarde dans un répertoire nommé "svg". Le problème vient lorsq


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales