Aide pour ecrire dans un fichier :x

Résolu
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007 - 9 oct. 2005 à 19:20
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 10 oct. 2005 à 09:03
bonjour, j'ai un petit probléme pour ecrire dans un fichier

void file()
{
FILE *flo;
flo=fopen("test.txt","w+");
fprintf(flo,"Ca marche :D");
fclose(flo);

}

le code ci dessus marche trés bien

---------------------------------------

void file()
{
FILE *flo;
flo=fopen("mygame.txt","w+");
char pass[256];
GetDlgItemText(hwnd, ID_EDIT, pass, 256);
fprintf(flo,"%s",pass);
fclose(flo);
}

mais par contre celui la ne marche pas , il me creer le fichier mais n'ecrit rien dedans :x

merci .

18 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
9 oct. 2005 à 20:33
Ton hWnd global n'est pas initialisé.
Quand tu recois WM_INITDIALOG, tu fais ::hWnd = hWnd
Tu peux aussi passer hWnd en param de la fonction file
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 21:02
Fais ça :



void File(HWND hWnd)

{

FILE *flo;

flo=fopen("mygame.txt","w+");

char pass[256];

GetDlgItemText(hwnd, ID_EDIT, pass, 256);

fprintf(flo,"%s",pass);

fclose(flo);

}



et dans les messages :

case OK:

file( hWnd );

break;



Ce qu'il voulait dire c'est que le hWnd dans la procédure de message
DlgProc n'est pas le même que celui que tu as déclaré plus haut



genre si tu fais

int x = 5;

et une fonction



void Add(int x)

{

...

}

bé x ne vaut pas 5 dans Add()

enfin bref voilà quoi
if(!Meilleur("Joky")) return ERREUR;<
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 19:26
Teste la valeur de pass avant

MessageBox(0, pass, 0, 0);

Et si y'a rien faudra se demander pourquoi :)
if(!Meilleur("Joky")) return ERREUR;<
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 19:29
oups , effectivement ya rien :x j'vien de tester comment je peux faire ?
0

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

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 19:32
Bé faut se demander si ID_EDIT existe bien :)



HWND hEdit = GetDlgItem(hWnd, ID_EDIT);



if(hEdit == NULL)

MessageBox(0, "Bah merde ça marche po", 0, 0x10);

else

MessageBox(0, "Ah ca vient pas de là :o", 0, 0x40);


if(!Meilleur("Joky")) return ERREUR;<
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 19:35
heu jai le message MessageBox(0, "Bah merde ça marche po", 0, 0x10); ca veux dire que ?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 oct. 2005 à 19:36
et pourquoi pas fprintf(flo,pass); (le pb vient pas de la, je sais, c'est juste par curiosité)
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 19:38
Bé ca veut dire qu'il connait pas de Controle ayant pour ID : ID_EDIT

Si tu travail sous Visual Studio, regarde bien dans ton .rc ou bien dans ton fichier resource.h

Autre possibilité,

ID_EDIT, n'est pas enfant de hWnd, ça dépend de ton code maintenant
if(!Meilleur("Joky")) return ERREUR;
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 19:38
vecchio56 >> j'ai essayer ca marche pas :x
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 19:42
Bé oui il à précisé que le problème ne venait pas de là :s
if(!Meilleur("Joky")) return ERREUR;<
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 20:29
no ca ne marche toujours pas :( voila mon code en entier (j'debute -_-' jpreviens cela peut etre du nimporte quoi)

#include <stdio.h>
#include <windows.h>
#include "resource.h"

HINSTANCE hInst;
HWND hWnd;

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInst,
LPSTR lpCmdLine,
int nCmdShow)
{
hInst = hInstance;
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), NULL, ( DLGPROC ) DlgProc);

return (0);
}

void file()
{
FILE *flo;
flo=fopen("mygame.txt","w+");
char pass[256];
GetDlgItemText(hwnd, ID_EDIT, pass, 256);
fprintf(flo,"%s",pass);
fclose(flo);
}

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case OK:
{
file();
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
}
}
}
return 0;
}

voila ;x c'est juste un ptit test
merci.
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 20:30
erf ca a mal placer le code :x
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 20:40
heu tu peux mieux expliquer stp j'cxomprend pas trop :/
merci
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 oct. 2005 à 21:13
Cette fois il a compris, c'est sur :)
0
krokro6 Messages postés 66 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 28 juin 2007
9 oct. 2005 à 21:17
YOUPIIIIIIIIIIIIIIII
UN GRAND MERCI a TOUT LES 2 :D ca merche :))
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 oct. 2005 à 21:22
Ah j'ai déja le don de professeur mdr :)

C'était ironique vecchio ? :)
if(!Meilleur("Joky")) return ERREUR;
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 oct. 2005 à 21:39
Pas ironique, c'est juste que ta dernière phrase n'aidait pas trop l'explication
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
10 oct. 2005 à 09:03
Evite de donner le même nom à une variable globale et à un paramètre
=> cela évitera des confusions.

Par exemple, tu peux préfixé les var gloables par g_ (ou autre c'est une question de lisibilité) ou donner un nom plus précis au hWnd global (genre hWndMainDialog).
0
Rejoignez-nous