Accueil > Forum > > > > ouverture d'un gros fichier txt ( taille > 3Mo)
ouverture d'un gros fichier txt ( taille > 3Mo)
lundi 3 août 2009 à 16:01:30 |
ouverture d'un gros fichier txt ( taille > 3Mo)

malouve
|
Bonjour,
J'ai a traité des fichiers txt de valeurs dont je ne connais pas le nombre d'elements mais qui font plus de 3Mo.
J'ai essayé la fonction fread avec ce code pour allouer suffisamment d'espace pour ouvrir mon fichier txt:
fp = fopen("C:\\projet C\\fic1.txt","r");
// deplace le curseur a la fin
fseek(fp,0,SEEK_END);
// taille du fichier
long sizeFile=ftell(fp);
// on se repositionne au debut
fseek(fp,0,SEEK_SET);
// allocation
char * buffer=(char*)malloc(sizeFile+1);
// lecture
fread(buffer,2,sizeFile,fp);
mais rien, je n'arrive toujours pas à l'ouvrir
je signale que mon fichier ne contient qu'une seule colonne de valeur décimale ( float) .
Je voudrais recupérer ces valeurs dans un tableau afin d'effectuer des traitements la dessus.
pour un plus petit fichier ouvert en lecture
j'ai utilisé :
while (!feof(fp))
{
fscanf (fp, "%f", &internal_table[i]);
i++;
}
çà marche bien mais là , je sèche un peu
Merci à ceux qui pourront m'aider à me sortir de ce problème
|
|
lundi 3 août 2009 à 16:55:12 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

fregolo52
|
Utilise les balises "code" ca rend ton messages plus clair.
Je ne vois pas ton souci, j'ai déjà ouvert des fichiers de plus de 100Mo avec fopen. Ca veut dire quoi : "mais rien, je n'arrive toujours pas à l'ouvrir ", fp == NULL ?
|
|
lundi 3 août 2009 à 17:15:51 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

malouve
|
desolé si je n'ai pas utilisé les balises codes
oui j'ai le message fp== null car j'ai programmé un message d'erreur
Code C/C++ : fp = fopen("C:\\projet C\\ fic2.txt","r");
if(fp == NULL){
printf("Impossible d'ouvrir le fichier %s\n", fp); system("pause");
exit(-1);
}
mon problème est que le fichier existe bien, j'ai crée un autre fichier de plus petite taille et il n'y pas de problème , j'arrive bien à l'ouvrir et à récupérer les données avec
Code C/C++ : while (!feof(fp))
{
fscanf (fp, "%f", &internal_table[i]);
i++;
}
et donc j'ai pensé que le problème est lié à la taille de mon fichier , d'ou l'utilisation de
Code C/C++ : fp = fopen("C:\\projet C\\ fic2.txt","r");
if(fp == NULL){
printf("Impossible d'ouvrir le fichier %s\n", fp); system("pause");
exit(-1);
}
// deplace le curseur a la fin
fseek(fp,0,SEEK_END);
// taille du fichier
long sizeFile=ftell(fp);
// on se repositionne au debut
fseek(fp,0,SEEK_SET);
// allocation
char * buffer=(char*)malloc(sizeFile+1);
// lecture
fread(buffer,2,sizeFile,fp);
mais là aussi, j'ai le message NULL
je te promets que l'emplacement de mon fichier est le bon et le nom aussi.
Merci si tu as une explication
|
|
lundi 3 août 2009 à 19:22:54 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

iloveprog
|
heu, le nom de ton fichier commence par un espace?
parce que la tu as :
fp = fopen("C:\\projet C\\ fic2.txt","r");
peut-être juste une erreur d'etourderie... :D
|
|
lundi 3 août 2009 à 19:47:56 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

Chouchou182
|
Salut malouve.
Tout d’abord, il y a une espace dans le nom de fichier " fic2.txt" ; est-ce bien voulu ?
Sinon, en cas d’erreur, fopen renvoie NULL et renseigne la variable errno. As-tu pensé à regarder de ce côté-ci ? par exemple en faisant appel à la fonction perror.
Enfin il me semble que tu devrais te dispenser de fseek. Dans unistd.h il y a une fonction nommée filelength. Je suppose que l’API Windows est aussi bien équipée.
Bonne prog,
--
Chouchou.
Ps : sinon Perl c’est bien pour manipuler pour manipuler les fichiers…
|
|
lundi 3 août 2009 à 20:00:41 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

malouve
|
merci pour vos réponses
mais dans mon code, je n'ai pas d'espace, je viens encore de vérifier chemin et syntaxe mais non, je n'arrive pas à ouvrir
j'ai toujours impossible d'ouvrir le fichier
|
|
lundi 3 août 2009 à 20:05:41 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)
|
lundi 3 août 2009 à 20:19:02 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

malouve
|
je cherche la syntaxe avec perror sur le net car je ne connaissais pas cette fonction, je suis debudante en C
avec perl penses-tu que peux faire des analyses de fichiers txt, je recherche dans mon fichier des valeurs particulières qui me donnent des tracés spéciaux?
serait-ce possible de faire un genre de détecteur en PERL?
|
|
lundi 3 août 2009 à 21:26:22 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

malouve
|
une erreur stupide de ma part, je viens de voir que l'extension n'est pas .txt mais .log
merci à tous et a chouchou182, ma question demeure
j'ai testé le perror et c'est comme çà que je me suis rendue compte
merci à tous
|
|
lundi 3 août 2009 à 21:34:56 |
Re : ouverture d'un gros fichier txt ( taille > 3Mo)

Chouchou182
|
Salut,
D'abord, désolé pour la fausse information concernant filelength. Alors voici un exemple d'utilisation de perror et fstat, cette-dernière n'étant disponible que pour certains systèmes (SVr4, 4.3BSD et POSIX.1-2001, dixit man).
Code C/C++ : #include<stdio.h>
#include<sys/stat.h>
int
main()
{
FILE *fp;
struct stat st;
fp = fopen(__FILE__,"r");
if (fp == NULL)
{
perror("fopen");
return 1;
}
if (fstat(fileno(fp), &st) != 0)
{
perror("fstat");
}
else
{
printf("Taille du fichier: %ld octets\n", st.st_size);
}
fclose(fp);
return 0;
}
Ensuite, concernant le choix du langage...
Si le critère permettant de décider si une valeur est particulière ou non peut être décrit par une expression régulière, alors c'est une ligne de AWK!
L'expression "me donnent des tracés spéciaux" n'est pas très explicite; si tu peux la détailler un peu, cela pourrait aider. Il existe peut-être des outils plus adéquats que le langage C qui reste de très bas niveau (mais ça peut s'avérer rigolo, si c'est ce qui est recherché).
Bonne prog,
--
Chouchou.
|
|
Cette discussion est classée dans : fichier, taille, txt, color, fp
Répondre à ce message
Sujets en rapport avec ce message
enregister les resultats dans un fichier txt. [ par ekinoks ]
j'essepaire que vous allé pouvoir m'evité le susside:-/c'est un decrypeteur de fichier, j'aimeré enregistré tout les resultat dans un fichier TXT com
probleme pour ecrire dans un fichier en C [ par kekobaron ]
Bonjour,Je suis novice en C et je suis confronté à un probleme. Je souhaite enregistrer une phrase dans un fichier mais seul le premier mot est enregi
Lecture de fichier TXT [ par beb30 ]
Voila je souhaite faire un programme en C qui me permette de retrouver une information de type Char rentrée manuellement. Je souhaite aller lire ds un
ouverture d'un fichier txt sur visualC++ [ par drcmomo ]
Bonjour s'il vous plait aidez moi je dois ouvrir un fichier txt sur visual mon programme n'arrive pas a ouvrir le fichier. <SPAN style="F
pb de chargement d'un fichier txt dans un tableau [ par malouve ]
Bonjour, j'ai un problème bloquant dans mon projet et j'ai désespérement besoin d'un coup de main [^^sad2] j'ai fait un traitement sur un fichier de b
union de deux fichiers [ par boualiasma ]
Bonjour, Je voulais ajouter autres lignes (autres données) à la fin du fichier 'output.txt' à partir d'un autre fichier 'exp.txt' le contenu de fich
Incrementer le nom du fichier d'entrée [ par souffrance ]
Salut ! J'essaie de trouver comment incrémenter le nom du fichier texte d'entrée. En faite, je voudrais que dès que le traitement du premier fichier
deconcatenation de chaine [ par malouve ]
Bonjour, j'ai un fichier txt à traiter en C, ayant plusieurs fichiers, j'entre le chemin du fichier au clavier, je voudrais en sortie, avoir un fich
traitement simultannée sur des fichiers [ par boualiasma ]
Bonjour, Je voulais faire un traitement en même temps sur un nombre de fichier.J'ai trouvé des difficultés pour résoudre ce problème. Je vous expliq
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|