Probleme dans l'ouverture de fichier et mise en tampon

Résolu
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 3 déc. 2005 à 16:13
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013 - 3 déc. 2005 à 18:52
Bonsoir,



je commence a maitriser l'API Windows et je me suis mis dans l'idée de
me faire un petit bloc notes avec plusieurs petites fonctions mais je
coince sur l'ouverture d'un fichier, en fait mon fichier est bien lu et
tout est mis dans le tampon mais en fin de fichier j'ai des caracteres
etrange (ýýýýÝÝÝÝÝb)



voici mon code:



if (GetOpenFileName(&ofn)==TRUE)

{

HANDLE fo;


DWORD lenbloc,s;

char *tampon;






fo = CreateFile(szFile, GENERIC_READ, 0,NULL,


OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);


lenbloc = GetFileSize(fo, NULL);

tampon = (char*) malloc(lenbloc);


ReadFile(fo, tampon, lenbloc, &s, NULL);


SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)tampon);

free(tampon);


CloseHandle(fo);

}

.

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 déc. 2005 à 17:37
Tu dois mettre un 0 terminal dans ta chaine (il n'est pas présent dans ton fichier). Tu alloues donc 1 char de plus, et après la lecture tu fais tampon[lenbloc] = 0;
Reste plus qu'a changer malloc/free par HeapAlloc/HeapFree
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 déc. 2005 à 18:49
GetSaveFileName au lieu de GetOpenFileName
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 déc. 2005 à 17:39
Autre chose: pense a toujous vérifier que les appels aux API ont bien fonctionné. ReadFile on le fait pas toujours (mais c'est mieux de le faire). Par contre pour ReadFile c'est quand même important (tu vérifies donc que fo != INVALID_HANDLE_VALUE)
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
3 déc. 2005 à 18:12
ok merci beaucoup, par contre tu sais comment faire pour creer une
boite de dialogue comme pour le open, mais pour save :s (juste le code
pour creer la boite apres j'me debrouille avec writefile)
.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
3 déc. 2005 à 18:52
Merci beaucoup :)
0
Rejoignez-nous