begin process at 2010 03 22 09:57:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Lecture d un gros fichier texte


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

Lecture d un gros fichier texte

vendredi 3 février 2006 à 14:56:09 | Lecture d un gros fichier texte

Amanobuo

Membre Club
Salut !
J aimerai savoir quoi utiliser pour ouvrir un "gros" fichier texte (environ 5ko)
avec fread, ca passe pas, ou j ai mal passe mes parametres... ?

Sinon, savez vous comment ouvir un fichier texte d'une lettre ou un mot definie a un autre mot ou lettre definie (ex : de '@' à ';').

vendredi 3 février 2006 à 16:37:08 | Re : Lecture d un gros fichier texte

CoyoteVsBeepBeep

Membre Club

methode bourin si tu cherche pas les perfs :

FILE *file;
 char c;
 char buffer[5*1024]; //allocation en fonction de la taille de fichier (malloc)
UINT i=0;

 m_text="";
 m_hexa="";

 file=fopen(m_file_path,"rb"); //read only

 if(file==NULL)
 {
  return FALSE;
 }

 while(fscanf(file,"%c",&c)!=EOF)
{
   buffer[i]=c,
   i++;
}

fclose(file);



sinon t'as quoi pour fread ?

size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
tu a mis la bonne valeur dans size et count ?

vendredi 3 février 2006 à 20:28:08 | Re : Lecture d un gros fichier texte

KeniiyK

Membre Club

5Ko un gros fichier ????, enfin... :

// ouvre le fichier
FILE *file=fopen("fichier.txt","rb");
// deplace le curseur a la fin
fseek(file,0,SEEK_END);
// taille du fichier
long sizeFile=ftell(file);
// on se repositionne au debut
fseek(file,0,SEEK_SET);
// allocation
char * buffer=(char*)malloc(sizeFile);
// lecture
fread(buffer,1,sizeFile,file);
// ferme le fichier
fclose(file);

KeniiyK
samedi 4 février 2006 à 10:39:04 | Re : Lecture d un gros fichier texte

Matt67

Réponse acceptée !
Bonjour,

D'accord pour ta methode Kenilyk mais pour le malloc je ferais :

char * buffer = (char*)malloc(sizefile + 1);

memset(buffer, 0, sizefile + 1);
ou
buffer[sizefile] = '\0';  /* apres la lecture */

car c'est un fichier texte et donc je pense qu'il va s'en servir comme tel...

Matt...
samedi 4 février 2006 à 19:36:02 | Re : Lecture d un gros fichier texte

Amanobuo

Membre Club
ok, merci pour ces info !
cela marche tres bien,
cependant,  quand je declare un char * buffer = (char*)malloc(sizefile + 1); dans ma fonction main, comment y acceder dans toutes mes autres fonctions (je ne peut pas declarer buffer en global, puisque il faut passer par main ou une autre fonction pour determiner sa taille).

Merci d avance :)
dimanche 5 février 2006 à 17:58:02 | Re : Lecture d un gros fichier texte

Matt67

Bonsoir,

Tu passes ton buffer dans l'appel de tes fonctions.N'oublie pas de liberer buffer quand tu ne t'en sers plus.

Matt...
lundi 6 février 2006 à 09:40:34 | Re : Lecture d un gros fichier texte

KeniiyK

Membre Club

Je ne suis pas du tout d'accord avec le '\0' en fin de buffer pour 2 raisons :
   - on connait la taille donc pas besoin d'info en plus.
   - imagine qu'il y ai déjà un '\0' dans le buffer par exemple dans un fichier binaire, ton '\0' ne sert plus a rien.

KeniiyK

lundi 6 février 2006 à 19:40:25 | Re : Lecture d un gros fichier texte

Matt67

bonsoir,

Ce n'est pas un fichier binaire, mais un fichier texte apparement... (et je l'ai précisé)

Matt...
lundi 6 février 2006 à 21:43:11 | Re : Lecture d un gros fichier texte

Amanobuo

Membre Club
re

C'est un fichier texte en effet.
Merci a vous tous pour ces info qui se completes bien ! j ai pu terminer cette partie de mon programme (en attendant de l optimiser, c'est deja un grand pas)

PS : 5Ko c'est pas mal pour un fichier texte (en nombre de caracteres), et le \0 fonctionne.

++




Cette discussion est classée dans : fichier, lecture, texte, passe, gros


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'un fichier texte pour mettre dans une liste chainée [ par webgladiator ] Merci de prendre du temps à me lire.J'ai un projet d'info dont le but est d'effectuer le plus court itinéraire dans le metro parisien (opimisation).J' lecture d'un fichier texte [ par mig73 ] je travaille sous Visual c++ .netApplication SDImon projet est le suivant:je dois ouvrir un fichier avec: Menu/Fichier/Ouvrir...C'est un fichier texte Lecture d'un fichier texte en C [ par toto000 ] Bonjour, j'ai un fichier texte avec un mot par ligne et je voudrai mettre ces mots dans un tableau de telle sorte que le premier mot soit dans la prem Lecture Fichier texte --> Variable [ par Guidelor ] BonjourJ'ai un fichier texte dans lequel il y a 2 lignes:12345678J'aimerais que mon prog lise le 1er chiffre et le mette dans la variable int Chiffre1 LECTURE ET RECUPERATION DES DONNEES DANS UN FICHIER TEXTE EN LANGAGE C [ par FOSTA ] Bonjour,je souhaite recupérer des données dans un fichier texte. Nous considéronsqu'un enregistrement du fichier contient onze(11) champs séparés les lecture de fichier texte [ par isirnet ] CFileDialog  me permet d'ouvrire le dialogue "Ouvrire" pour selectionner un fichier, mais mais comment faire pour recuperer le contenu d'un fichier  s Lecture ligne par ligne d'un fichier texte [ par Aldarek ] Bonjour à tous, je sais comment on fait pour lire un fichier ligne par ligne mais je cherche à lire une ligne particulière pour ensuite récupérer sa v lecture fichier texte [ par coubiak ] Salut,je cherche comment faire pour lire des valeurs dans un fichier texte. Je m'explique: j'ai fais un prog en c++ qui lis les valeurs du fichie text erreur lors de la lecture d'un fichier texte [ par roger81 ] J'aimerais savoir lire un fichier texte mais je narrive pas a faire afficher ces valeurs je code sous visual c++ .net //Création du fichier output.txt Lecture de fichier texte [ par vba_blitz ] Bonjour, avec le code ci dessous, je recupere les donnees d'un fichier comprenant 2 colonnes. Mais ce code ne recupere pas la premiere ligne et recupe


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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,281 sec (3)

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