Accueil > Forum > > > > lire les lignes avec ReadFile
lire les lignes avec ReadFile
mercredi 25 août 2004 à 17:14:49 |
lire les lignes avec ReadFile

malik7934
|
Hello, Je suis peut-être grave de chez grave, mais j'ai pas pigé comment lire une ligne précise d'un fichier avec ReadFile. Vu les commentaires sur le forum, c'est tellement basique que personne ne l'explique, mais moi je suis tout paumé du coup! J'ai un fichier texte contenant 3 lignes. 2 lignes avec un chiffre de l'ordre de 2^512 et une avec un chiffre en binaire (80 bits). Je veux les récupérer en char pour les traiter. Je suis sous VC6 dans win32, donc pas de fonction du type fgets... Mais comme il paraît que ReadFile peut le faire, je n'ai qu'un mot à dire: HELP! Thanx, Malik7934
|
|
mercredi 25 août 2004 à 17:27:54 |
Re : lire les lignes avec ReadFile

BruNews
|
Aspire dans un buffer avec ReadFile. Pose un pointeur sur debut de buffer et avance le jusqu'au saut de ligne.
ciao... BruNews, Admin CS, MVP VC++
|
|
mercredi 25 août 2004 à 17:30:40 |
Re : lire les lignes avec ReadFile

malik7934
|
Hoi!
Ben en fait je viens de tomber sur une de tes sources ... EM_GETLINE!
Thanx, Malik7934
|
|
mercredi 25 août 2004 à 17:42:05 |
Re : lire les lignes avec ReadFile

BruNews
|
C'est pour lire une ligne d'un EDIT, pas d'un fichier.
ciao... BruNews, Admin CS, MVP VC++
|
|
mercredi 25 août 2004 à 17:44:45 |
Re : lire les lignes avec ReadFile

malik7934
|
oops...
alors je retourne au turbin! Ceci dit, ça m'oblige à utiliser fgetc... et mon prog est pas copain avec ça (il a ses humeurs ;o))
Thanx, Malik7934
|
|
mercredi 25 août 2004 à 17:52:33 |
Re : lire les lignes avec ReadFile

BruNews
|
Que vient faire fgetc dans cette galere ? ReadFile ira beaucoup plus vite.
ciao... BruNews, Admin CS, MVP VC++
|
|
mercredi 25 août 2004 à 17:59:25 |
Re : lire les lignes avec ReadFile

malik7934
|
Alors je te dis: cf ma question du début! A un moment, je lis un fichier que je stocke dans un buffer: //Création du buffer pour lire le fichier source dwFileSize = GetFileSize(hSrcFile,NULL) + 1; szData = new char[dwFileSize];
//Lire le fichier source if(!ReadFile(hSrcFile,szData,dwFileSize,&dwO,0)) { delete[] szSrc; delete[] szData; CloseHandle(hSrcFile); CloseHandle(hDestFile); return FALSE; }
|
char* szData est donc la copie du fichier lu (ou alors j'ai rien pigé). Maintenant je veux récupérer une à une les lignes... ben je pige pas. Je voulais essayer un truc du genre do{ c = fgetc(szData); szSrc[x]=c; x++;} while ((c != '\n') && (c !='\r')) Mais visiblement je suis trop une pine en C!
|
|
mercredi 25 août 2004 à 18:25:12 |
Re : lire les lignes avec ReadFile

BruNews
|
char *c, *d, *pout; DWORD d;
dwFileSize = GetFileSize(hSrcFile,NULL); szData = new char[dwFileSize + 1];
d = 0; ReadFile(hSrcFile,szData,dwFileSize,&d,0); CloseHandle(hSrcFile); if(d != dwFileSize) ALORS MAUVAISE LECTURE, NETTOIE ET SORS. d = szData; pout = szData + dwFileSize;
BOUCLAGE: c = d; d avance jusque trouver saut ligne && < pout; a ce moment c represente une ligne. ON REBOUCLE.
ciao... BruNews, Admin CS, MVP VC++
|
|
mercredi 25 août 2004 à 18:29:08 |
Re : lire les lignes avec ReadFile

malik7934
|
Gros merci... je vais étudier ça de suite!
Malik7934
|
|
jeudi 26 août 2004 à 09:04:13 |
Re : lire les lignes avec ReadFile

malik7934
|
Hi! Sorry d'insister, mais je pige pas... Bon, les déclarations d'usage: char *c, *d, *pout; DWORD dw;
|
On attrape la taille du fichier et on crée un nouveau char[] de la même taille: dwFileSize = GetFileSize(hSrcFile,NULL); szData = new char[dwFileSize + 1];
|
On initialise d à 0 et on met dans szData le fichier qu'on a lu, puis on referme le fichier qui vient d'être lu et qui nous sert plus: d = 0; ReadFile(hSrcFile,szData,dwFileSize,&dw,0); CloseHandle(hSrcFile);
|
Ensuite, on compare dw et dwFileSize.... Il n'y a pas de raison pour qu'ils soient identiques!!!: if(dw != dwFileSize) ALORS MAUVAISE LECTURE, NETTOIE ET SORS.
|
Ensuite tu dis de mettre dans d ce qu'on a lu, puis d'initialiser pout à szData + dwFileSize... alors là, je pige pas. Char = Char + DWORD ? Ca sert à quoi?: d = szData; pout = szData + dwFileSize;
Ensuite tu dis de faire une boucle comme suit (si j'ai bien compris):
while ((d != "\n")&&(d<pout)){ c = d; d++;}
|
Ben avec ça, lorsque je regarde ce que j'ai dans c, j'ai que des symboles biscornus, pas la première ligne de mon fichier... j'suis à la rue là... 
help
|
|
Cette discussion est classée dans : fichier, lire, lignes, readfile, grave
Répondre à ce message
Sujets en rapport avec ce message
lire fichier ligne par ligne [ par mat74 ]
salut a ts je voudrai savoir comment je pourrai lire un fichier lignes par lignes . par exemple une fonction qui me permerttrai de recuperer la ligne
lire plusieurs lignes d'un fichier text [ par oudkaramla ]
salut à tous,j'ai un problème: j'ai un fichier texte contenant quatre lignes.moi je veux lire ces quatre lignes et les stocker chacun dans une variabl
lire un ligne non defini... [ par jojomillenium ]
Hello! J'ai un souci, je sais pas comment faire! Je dois lire un fichier qui est généré par un autre programme, donc je ne peux pas le modifier. Dans
lecture fichier et test des lignes... [ par jojomillenium ]
Bonjour, J'aimerai lire un fichier qui ressemble a ca: KJ 1 3 5; I OPL; B 12 34 78, 90; I PPL; et ainsi de suite des lignes qui ne sont pas du meme
Lire un fichier et l'afficher [ par sebastienmz ]
bonjour j'ai un problème comme d'habitude mais la c'est bizzard je veux juste afficher le contenu d'un fichier .txt mais cela maffiche que les 8 premi
Comment creer, crire et lire dans un fichier .txt en c++ [ par kanprog ]
Salut à tous Depuis un bout de temp, j'essais de creer un fchier .txt depuis un programme en c++. j'ai tester CreateFilemoi je maitrise pas ses parame
programme d'ecriture dans un fichier [ par skim13 ]
Bonjour,j'ai ecris un programme qui recupere des.C et qui ecrit des lignes que jai mis dans un .txt.Ainsi je fais une liste chainé de mes differents f
lire un fichier et envoyer tout les 100 octets [ par sebastienmz ]
bonjour j'ai fait un programme d'administration a distance et j'ai fait une fonction pour lire un fichier et je doit envoyer tout les 100 octet lu mai
Vitesse de copie [ par Roro8883 ]
Bonjour à tous !Je voudrais savoir qu'elle serait la méthode la plus rapide pour effectuer une copie d'un fichier (relativement gros) : 1) Lir
lire un fichier .txt [ par inconnu2nulpar ]
slt, dans un fichier .txt j'ai des coordonné de point sous la forme :x1,y1x2,y2...mais je ne sait pas comment les récupéré et les mettre dans un table
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
|
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
Temps d'éxécution de la page : 0,874 sec (3)
| |