MFC enregistrer avec boite de dialogue

thebestvinz Messages postés 38 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 26 juin 2003 - 11 juin 2003 à 08:52
cs_Rololo Messages postés 15 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 23 décembre 2004 - 15 févr. 2004 à 15:30
Bonjour à tous, je fais en ce moment un programme en utilisant les MFC et pour enregistrer, j'utilise la fonction CFileDialog qui m'ouvre la fenetre enregistrer sous.
De la, je recupère le nom du fichier avec la fonction GetPathName(). Ensuite je créé une instance de ma classe modélisant ma boite de dialogue et j'utilise ma fonction enregistrer qui prend en parametre le nom du fichier recupéré auparavant.
Le problème est que dans cette fonction enregistrer(NomFic), j'enregistre dans les variables ttes les zones d'édition et grace à un CFile je formate le texte comme je veux.
Tous les éléments que je met en dur apparaisent(Nom, commande...) mais les informations des zones d'editions n'apparaissent pas ds le resultat. De quoi cela peut il venir?
Vincent

Un bout de code pr illustrer

//Fonction d'enregistrement du formulaire dans un fichier texte
BOOL CGenCodeInstallDlg::Enregistrer(CString _NomFic)
{
m_ctrlNomClient.GetWindowText(Client);
m_ctrlNomSociete.GetWindowText(m_strNomSociete);
m_ctrlNomService.GetWindowText(m_strNomService);
m_ctrlMail.GetWindowText(m_strMail);
m_ctrlDepartement.GetWindowText(m_strDepartement);
m_ctrlNCommande.GetWindowText(m_strNCommande);

CString Fichier = _NomFic;

CFile CFileTest;
BOOL bLecture = FALSE;

CString strTempClient;
CString strTempSte;
CString strTempServ;
CString strTempMail;
CString strTempDept;
CString strTempCmd;

strTempClient.Format("Nom : %s \r\n", Client);
int iLengthCLient = strTempClient.GetLength();
strTempSte.Format("Société : %s \r\n", m_strNomSociete);
int iLengthSte = strTempSte.GetLength();
strTempServ.Format("Service : %s \r\n", m_strNomService);
int iLengthServ = strTempServ.GetLength();
strTempMail.Format("Mail : %s \r\n", m_strMail);
int iLengthMail = strTempMail.GetLength();
strTempDept.Format("Département : %s \r\n", m_strDepartement);
int iLengthDept = strTempDept.GetLength();
strTempCmd.Format("Commande n°: %s \r\n", m_strNCommande);
int iLengthCmd = strTempCmd.GetLength();

if( !CFileTest.Open( Fichier, CFile::modeWrite ) )
{
if( CFileTest.Open( Fichier, CFile::modeCreate | CFile::modeWrite ) )
{
bLecture = TRUE;
}
}
else
{
bLecture = TRUE;
}

if( bLecture )
{
CFileTest.SeekToEnd();
CFileTest.Write(strTempClient, iLengthCLient);
CFileTest.Write(strTempSte, iLengthSte);
CFileTest.Write(strTempDept, iLengthDept);
CFileTest.Write(strTempServ, iLengthServ);
CFileTest.Write(strTempCmd, iLengthCmd);
CFileTest.Write(strTempMail, iLengthMail);
CFileTest.Close();
}

4 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
11 juin 2003 à 10:04
La première chose à vérifier est de voir si les chaines strTempCmd, strTempDept, ..., sont correctement renseignées. Cela te permettra de savoir si l'enregistrement dans le fichier qui pose problème ou bien si c'est ta récupération d'informations dans l'interface.

Kaid - kaid.fr.st
0
thebestvinz Messages postés 38 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 26 juin 2003
11 juin 2003 à 10:24
La saisie n'est pas prise en compte! comment cela se fait il?
Veni Vidi Vici ;)
0
thebestvinz Messages postés 38 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 26 juin 2003
11 juin 2003 à 10:31
Enfin qd je test les variables m_strtemp, il n'y a rien dedans alors que ds mon interface je tape qqchose dedans!
Veni Vidi Vici ;)
0
cs_Rololo Messages postés 15 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 23 décembre 2004
15 févr. 2004 à 15:30
As-tu pensé à utiliser la fonction UpdateData ?

Elle prend en paramètre un booléen,
tu écrits : UpdateData(TRUE) , et tes variables m_str... prennent alors pour valeur ce que tu renseignes dans les edits...

tu écrits : UpdateData(FALSE) , et ce sont les edits qui sont renseignés par las valeurs que tu as attribuées aux variables associées aux edits...

Rololo
0
Rejoignez-nous