Accueil > Forum > > > > ReadFile
ReadFile
mardi 22 juin 2004 à 16:45:36 |
ReadFile

samki
|
Bonjour, j'aimerai lire un texte dans un fichier,je veux utiliser la fonction ReadFile mais j arrive pas. Je veux que tt ce qui est lu soit affecter à une variable de type chaine de caractères. voila mon code: CString csDetection; HANDLE hFileDetectTemplate = ::CreateFile(PathDetectTemplate,GENERIC_READ, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(hFileDetectTemplate != INVALID_HANDLE_VALUE && hFileDetectTemplate != NULL) { ::ReadFile(hFileDetectTemplate,(LPTSTR)csDetection,strlen((LPCTSTR)csDetection),&dwWritten,NULL); } ::CloseHandle(hFileDetectTemplate); ca me fait une erreur au niveau du 2eme paramètres de la fonction ReadFile. Aidez moi SVP
|
|
mardi 22 juin 2004 à 16:54:07 |
Re : ReadFile

hilairenicolas
|
le 3ieme paramètre correspond au nombre d'octet que tu veux lire, pas à la taille de la chaine, donc faut que tu récupperes la taille du fichier regarde cet exemple HANDLE hFile;
hFile = CreateFile("test.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile == INVALID_HANDLE_VALUE) return 1; DWORD dwSize; dwSize = GetFileSize (hFile, NULL);
if (dwSize == INVALID_FILE_SIZE) return 1; char *buffer = new char[dwSize+1]; DWORD bLu; ReadFile(hFile,buffer,dwSize,&bLu,NULL);
|
|
|
mardi 22 juin 2004 à 17:42:23 |
Re : ReadFile

samki
|
Merci bq pour ton aide,ca marche mais quand j affecte buffer à une chaine de caractère, je trouve des caractères ajouté dans la chaines. voila mon code:
csHeader=buffer; if(hFileDetection != INVALID_HANDLE_VALUE && hFileDetection != NULL) { ::WriteFile(hFileDetection,(LPCTSTR)csHeader,strlen((LPCTSTR)csHeader),&dwWritten,NULL);
} ::CloseHandle(hFileDetection); je comprends pas pq
|
|
mardi 22 juin 2004 à 19:19:24 |
Re : ReadFile

hilairenicolas
|
tu n'es pas obligé d'utiliser buffer, tu peux mettre un CString au lieu d'un char*
sinon à quel endroit est-ce qu'il t'affiche des caractères bizarres ? dans le CString ? dans le fichier écrit (hFileDetection) ?
tu serais pas en UNICODE par hasard ?
|
|
mardi 22 juin 2004 à 22:17:25 |
Re : ReadFile

ymca2003
|
il faut pas oublier de rajouter le nul de terminaison pour former une chaine C valide : buffer[dwSize] = '\0';
|
|
mardi 22 juin 2004 à 22:23:39 |
Re : ReadFile

hilairenicolas
|
il peut y en avoir des '\0' dans un fichier, c'est pas pour ca qu'on veut forcément s'arreter au premier '\0' ; mieux vaut à mon avis traiter la chaine en fonction de sa taille qu'on a obtenu avec GetFileSize
|
|
mercredi 23 juin 2004 à 00:01:21 |
Re : ReadFile

ymca2003
|
oui mais il me semble qu'il veut affecter le buffer lu dans un CString, il faut donc rajouter un nul à la fin pour terminer la chaîne car sinon on risque d'aller recopier des caractères non valides
|
|
mercredi 23 juin 2004 à 09:42:08 |
Re : ReadFile

hilairenicolas
|
ouais mais s'il fait une affectation et qu'il y a plusieurs \0 dans la phrase, il copiera jusqu'au premier, en oubliant la suite. Mieux vaut je pense utiliser un memcpy avec la taille qu'on a obtenu avec GetFileSize
|
|
mercredi 23 juin 2004 à 10:46:54 |
Re : ReadFile

samki
|
Il m'affiches des caractères bizarres dans le fichier écrit,alors j'ai fait ca: HANDLE hFileTemplateDetect = ::CreateFile(PathTemplateDetect,GENERIC_READ, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); DWORD dwSize; dwSize = GetFileSize (hFileTemplateDetect, NULL); char *buffer = new char[dwSize-4]; DWORD bLu;
if(hFileTemplateDetect != INVALID_HANDLE_VALUE && hFileTemplateDetect != NULL) { ::ReadFile(hFileTemplateDetect,buffer,dwSize,&dwWritten,NULL);
} ::CloseHandle(hFileTemplateDetect); ca marche mais quand j'ai essayé de faire une fonction avec ce code et de l'appeler pour des fichiers differents alors il me fait sortir une boite de dialogue avec "Mémoire insuffisante" c'est surement du à le "-4" que j'ai ajouté.mais autrement ca ne marche pas
|
|
mercredi 23 juin 2004 à 11:08:34 |
Re : ReadFile

samki
|
j ai aussi essayé d'ajouer buffer[dwSize] = '\0'; mais ca marche pas
|
|
Cette discussion est classée dans : fonction, handle, readfile, hfiledetecttemplate, csdetection
Répondre à ce message
Sujets en rapport avec ce message
Thread & fonction [ par youpiyoyo ]
j'aimerai savoir comment et par qu'elle fonction je peux à partir d'un thread lancé une fonction. éternel probleme souvent posé comme post dans le for
Problème pour passer un tableau dynamique à une fonction [ par muguss ]
Je n'arrive pas à passer parfaitement mon tableau dynamique de type HANDLE à ma fonction afin que cette dernière ajoute un HANDLE au tableau, donc l'a
recuperer handle [ par morgandetoi06 ]
bonjour,quelle est la fonction pour recuperer le handle d une fenetre en se servant de argv[0] svp?et aussi comment la cacher avec la fonction showwin
pointeur et handle [ par yerosnimus ]
Bonjour, bon, je suis débutant et surtout autodidacte en programmation. J'essaie de comprendre actuellement l'utilisation d'un pointeur avec une fonc
quelle fonction pour avoir le handle afin de crée un objet directinput ? [ par vini456 ]
bonjour ,quelle est la fonction pour avoir le handle de ma winmain afin de crée un objet directinput ?
[.net c++] fermeture d'un handle [ par stgi02 ]
bonsoir,je prog sur VS.net c++dans mon programme, j' ai récupéré le handle du formulaire car j' en avais besoin pour une fonction, mais est ce que je
handle de Createfile ET writefile [ par oudkaramla ]
salut tout le mondej'ai un pepin avec le HANDLE DE createfile, en effet malgré que j'ai déclaré le handle comme variable globale, il perds sa valeur e
Recuperation d'un handle de fenetre [ par coframi ]
je lance une application avec la fonction CreateProcess.Il faut que je recupére le handle de fenetre associe pour pouvoir masquer ou afficher cette ap
récupération HANDLE d'un Process [ par LaPatoshe ]
Salut, sur les conseils de Brunews dans le cadre de ma recherche sur le sous classement, je tente d'utiliser la fonction CreateRemoteThread afin de po
Utilisation de fonctions Callback [ par N0euX ]
Bonjour a tous,</o:
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
|