begin process at 2013 05 22 14:46:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

MFC enregistrer avec boite de dialogue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MFC enregistrer avec boite de dialogue

mercredi 11 juin 2003 à 08:52:37 | MFC enregistrer avec boite de dialogue

thebestvinz

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();
}
mercredi 11 juin 2003 à 10:04:52 | Re : MFC enregistrer avec boite de dialogue

Kaid

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

-------------------------------
Réponse au message :
-------------------------------

> 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();
> }
>
mercredi 11 juin 2003 à 10:24:16 | Re : MFC enregistrer avec boite de dialogue

thebestvinz

La saisie n'est pas prise en compte! comment cela se fait il?
Veni Vidi Vici


-------------------------------
Réponse au message :
-------------------------------

> 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
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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();
> > }
> >
>
mercredi 11 juin 2003 à 10:31:16 | Re : MFC enregistrer avec boite de dialogue

thebestvinz

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


-------------------------------
Réponse au message :
-------------------------------

> La saisie n'est pas prise en compte! comment cela se fait il?
> Veni Vidi Vici
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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();
> > > }
> > >
> >
>
dimanche 15 février 2004 à 15:30:13 | Re : MFC enregistrer avec boite de dialogue

Rololo


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


Cette discussion est classée dans : fichier, enregistrer, getwindowtext, cstring, cfiletest


Répondre à ce message

Sujets en rapport avec ce message

Enregistrer/ouvrir fichier vc++ 6 [ par apientry ] Au secours!J'ai un gros probleme, je n'arrive pas à enregistrer un fichier (txt par ex), comment faire? je sais comment apeler la boite de dialogue, G Enregistrer une impression d'écran dans un fichier gif [ par elodie92 ] Bonjour a tous, Je dois enregistrer l'écran dans un fichier bmp puis le convertir en un fichier gif. J'ai réussi a enregistrer l'encran en VB: ------- Enregistrer une impression d'écran dans un fichier gif [ par elodie92 ] Bonjour a tous, Je dois enregistrer l'écran dans un fichier bmp puis le convertir en un fichier gif. J'ai réussi a enregistrer l'encran en VB: ------- C++Builder: Comment enregistrer dans un fichier [ par gogeta2003 ] Salut. J'aimerais savoir comment on enregistre une chaine de caractère dans un fichier en C++. Et également comment on fait pour la lire.Merci d'avanc Matez ça! :) [ par MaDC ] J'ai un soucis avec mon appli MFC.Je voudrais ouvrir un document avec ça :void CCommandeRobotView::OnFileOpen() { CFileDialog fenetreDlg( true, NU CFileDialog [ par epoc ] J'ai un programme qui donne à l'utilisateur la possibilité d'enregistrer un fichier, via une boite de dialogue dont voici le code :CFileDialog m_SaveF C++ Builder : comment enregistrer un fichier [ par Polo ] JE VOULAIS SAVOIR COMMENT ENREGISTRER UN TEXTE CONTENU DANS UN COMOSANT TRichEdit.Je developpe un bloc note, et je n''arrive pas à trouver la solution petit prob VC++ [ par coluche ] Bonjour a tous,j'ai telecharger la source SAUVEGARDER ET CHARGER AVEC CFILE de Sioban que je remercie...mais je ne comprend pas j'ai bien suivi les in Builder Comment enregistrer une listeView dans un fichier ? [ par domdom79 ] Bonjour, J'ai fais un programme en Builder qui utilise et manipule une listview, c'est génial tout ce qu'on peut faire avec ce composant, mais celle-c lecture de chaine de char dans un fichier .doc [ par talaron ] salutj'ai besoin d'un ptit coup de main informatiquedans un programme j'enregistre 3 tablo dans un fichier .txt ou .doc les deux premiers sont des tab


Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales