Accueil > Forum > > > > Ouverture fichier voumineux....
Ouverture fichier voumineux....
jeudi 15 juillet 2004 à 10:26:06 |
Ouverture fichier voumineux....

Clonk
|
Bonjour, J'ai une appli en C++ ou je dois ouvrir plusieurs fichiers texte qui peuvent faire plusieurs mégas (jusqu'à 5megs pour le moment...) Je dois les traiter ligne par ligne et y lancer plusieurs fonctions (assez proche de la programmation par contrainte) Si j'ouvre un fichier assez petit, ça va, mais quand je passe à un fichier de 1,5mega ou plus, j'ia le message suivant : Debug assertion failed! Program.... Line : ... Expression : _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Ensuite, il me demande les fichiers suivant pour le debug: DBGDEL.cpp NEW.cpp Pour enfin me dire : User breakpoint called from code as 0x40a759 Si quelqu'un connait ce genre d'erreur, ça m'aiderait beaucoup! Je pense bien qu'il s'agit d'une surcharge au niveau de la mémoire, mais je ne sais pas comment el gérer... pourtant, je gère ligne par ligne et pas le fichier en entier et j'essaye au maximum de supprimer les variables trop grandes...
|
|
jeudi 15 juillet 2004 à 10:55:49 |
Re : Ouverture fichier voumineux....

vecchio56
|
A mon avis, ton problèm n'est pas lié à la taille du fichier, mais à celle des lignes. Je ne pense pas non plus que lire par ligne est une bonne solution. Moi je lirais par paquets de taille constante avec ReadFile comme ca pas de risque de problème de mémoire. Pour ton erreur, il serait utile d'avoir un peu de code (comment a tu alloué la mémoire et comment lis-tu le fichier?)
|
|
jeudi 15 juillet 2004 à 12:00:44 |
Re : Ouverture fichier voumineux....

Clonk
|
Bon, j'ia déjà écris une réponse, mais apparemment elle ne se montre pas...
Bah oui, comme tu dis, apparemment c'est un problème de taille de ligne (ou du moins de variable...)
Je dois absolument lire ligne par ligne le fichier : je dois lancer plusieurs fonctions de vérification sur caque ligne et suivant les résultats de ces fonctions, écrire ou non la ligne dans un autre fichier...
J'ai pu tester pas mal de trucs depuis, il me lit mon fichier tant bien que mal (C du ligne par ligne quoi...) et commence le traitement, tout va mal dès qu'il commence à décomposer ma ligne et y appliquer des fonctions (je suis pas encore descendu assez bas dans mes tests...)
Si tu as une solution pour lire le fichier d'un coup dans un buffer et gérer les retour à la ligne, je suis pour!
|
|
jeudi 15 juillet 2004 à 12:46:36 |
Re : Ouverture fichier voumineux....

AlexMAN
|
Ben tu peux lire un paquet de taille constante, et puis traiter celui ci pour recuperer chaque ligne, si tu comprens pas, dis moi, j'ai une fonction qui fais ca, jla posterai...
|
|
jeudi 15 juillet 2004 à 13:38:33 |
Re : Ouverture fichier voumineux....

Clonk
|
j'ai complètement compris ce que tu dis, mais je sais pas torp comment tu veux gérer ça... Si tu veux bien poster ta fonciton, ça m'aiderait ouais, merci!
|
|
jeudi 15 juillet 2004 à 14:03:27 |
Re : Ouverture fichier voumineux....

AlexMAN
|
Bon jl'ai pas retrouvé, mais ca doit ressembler a ca :
DWORD dwRead = 0, dwReadTot = 0, size; HANDLE hFile; char szBuffer[256], *c; int i = 0, ok = 0;
hFile = CreateFile("pass.txt", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); if (hFile == INVALID_HANDLE_VALUE) { CloseHandle(hFile); return FALSE; } size = GetFileSize(hFile, NULL);
while (dwReadTot < size) { ReadFile(hFile, szBuffer, 256, &dwRead, 0); szBuffer[dwRead] = 0; c = szBuffer; while (*c != '\r') { c++, i++;} *c = 0; i += 2; //+2 pour sauter \r\n; dwReadTot += i; SetFilePointer(hFile, i, 0, FILE_BEGIN); } CloseHandle(hFile); return ok;
La ligne complete est stockée ds szBuffer...
++
|
|
jeudi 15 juillet 2004 à 14:37:50 |
Re : Ouverture fichier voumineux....

Clonk
|
Meric, mias mon erreur ne vietn pas de là en fait... C'est pas le fichier qui fait tout planter... là je teste un fichier de 18000 lignes, tout se passe bien jusqu'à la 8069ème ligne, là quoiqu'il se passe, que je teste la ligne ou pas, je plante irrémédiablement... Soit j'en suis à un dépassemetn de capacité, soit j'ai débordé quelque part dans un tableau. Peros, j'ia pas d'idée fixe là dessus pour le moment.
|
|
jeudi 15 juillet 2004 à 15:02:31 |
Re : Ouverture fichier voumineux....

AlexMAN
|
Le bout de code que je t'ai donné recuperait une paquet de 255 octets, prenait la premiere ligne du paquet, et placait le pointeur du fichier sur le debut de la ligne suivante, c pas ca que tu voulais ? Envoie ton code ds le cas contraire, pour kon regarde ensemble ou sont les erreurs !
++
|
|
Cette discussion est classée dans : fichier, ligne, ouverture, fichiers, voumineux
Répondre à ce message
Sujets en rapport avec ce message
Tableau multidimensionel et fichiers [ par AngeloVivaldi ]
slt à tous.Voila, je voudrai mettre dans un tableau multidimensionel chaque ligne d'un fichier, puis modifier une ligne du tableau pour le réécrire da
conversion de fichiers [ par sergio18 ]
salutJe fais un projet où je dois faire une conversion du fichier.POur cela le prof qui me suit m'a demandé d'effectuer ds un premier temps une lectur
probleme de fichiers [ par sergio18 ]
Bonjourj'ai un soucis pour recuperer une chaine de caractère.voici le code:Class Fichier{Lire();}Fichier::Fichier(){FILE *fichier;fichier=fopen(nomfic
boite de dialogue : ouverture de fichiers [ par KsmoinO ]
existe-t-il sous Visual C++ une fonction permettant d'ouvrir une liste de fichier? Dans mon cas je souhaite graver une liste de fichier. Comment faire
gestion de fichiers en C [ par selmaensi ]
bonjour,je voudrais savoir comment faire une modification directe sur un fichier enC (le fichier est un bloc note;document texte) qui contient des enr
manipulation des fichiers avec c++ [ par zing_tun ]
Salut , c Anis de tunis ,en ce moment je suis en stage et je suis charger de developper un outil de synchronisation entre de base de donnees .le conte
Ouverture de fichier [ par chevalboiteux ]
Bonjour,Je développe une application qui doit intercepter l'ouverture des fichiers sur un disque réseau pour effectuer un traitement sur ceux-ci avant
Comparer 2 fichiers textes rapidement [ par chtitpierre78 ]
Bonjour,Suite à un premier poste, dont le titre ne correspond pas du tout a ma demande, je re-poste ici, en espérant trouver solution à mon problème.
fichiers en C [ par boualiasma ]
Salut, 1) Dans mon travail, j'utilise des fichiers. je crée un fichier "essai.txt" pour le remplir fp = fopen("essai.txt","w"); // je fais des tra
Chercher un string dans un fichier texte ? [ par chtitpierre78 ]
Bonjour,Je développe actuellement un outils en C++ (VisualC++) qui me permet de comparer 2 fichiers textes (.txt) d'environ 4Mo chacun (soit environ 6
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
|