[MFC][Or not]Enregistrement du contenu de 2 ComboBox
Bonjour à tous.
Je souhaiterais enregistrer le contenu de deux ComboBox dans un fichier texte ( tout simple ) que je viendrais ecrire lors de la fermeture de mon application et recharger lors de son ouverture.
Y Aurait il des méthodes simples pour y parvenir ?
Merci d'avance de vos suggetions.
[MFC][Or not] Enregistrement du contenu de deux ComboBox
Citation:
Envoyé par farscape
salut,
un exemple tout simple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
{
// test ecriture
CStdioFile file;
if( !file.Open("bidon.txt", CFile::modeCreate
| CFile::modeWrite | CFile::typeText ) )
{
#ifdef _DEBUG
afxDump << "erreur d'ouverture fichier" << "\n";
#endif
}
CString str;
for(int i=0;i<m_ListBox.GetCount();i++)
{
m_ListBox.GetText(i,str);
str+="\n";
file.WriteString(str);
}
file.Close();
}
m_ListBox.ResetContent();// vidage listbox
// test relecture
CStdioFile file;
if( !file.Open("bidon.txt", CFile::modeNoTruncate
| CFile::modeRead | CFile::typeText ) )
{
#ifdef _DEBUG
afxDump << "erreur d'ouverture fichier" << "\n";
#endif
}
file.SeekToBegin();
CString str;
while(file.ReadString(str))
{
m_ListBox.AddString(str);
}
file.Close(); |
:D
Dans ton exemple, comment pourrais je faire pour completer le fichier.txt par une clé ( style [CLE1] / [CLE2] ) et afin de permettre à l'appli de recharger tout ce qu'il y a sous [CLE1] dans ma combo 1 et tout ce qu'il y a sous [CLE2] dans ma combo 2 ?
Idéalement mon fichier serais structuré comme suit :
Code:
1 2 3 4 5 6 7 8 9 10
| [CLE1]
chaine1
chaine2
chaine3
[CLE2]
chaine1
chaine2
chaine3
chaine4 |
[MFC][Or not] Enregistrement du contenu de deux ComboBox
Citation:
Envoyé par farscape
re,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
CString str,strClef;
AfxGetApp()->WriteProfileString("Section",NULL,NULL);
for(int i=0;i<m_ListBox.GetCount();i++)
{
m_ListBox.GetText(i,str);
strClef.Format("%d",i);
AfxGetApp()->WriteProfileString("Section",strClef,str);
}
str.Format("%d",m_ListBox.GetCount());
AfxGetApp()->WriteProfileString("Section","Size",str);
m_ListBox.ResetContent();// vidage listbox
int nSize=atoi(AfxGetApp()->GetProfileString("Section","Size","0"));
for(i=0;i<nSize;i++)
{
strClef.Format("%d",i);
m_ListBox.AddString(AfxGetApp()->GetProfileString("Section",strClef,""));
} |
ce code genere un fichier ini dans le repertoire windows portant le nom de l"application.
pour le changement du nom et emplacement par defaut voir post it faq
ou utiliser les memes fonctions mais par les api 32 :
WritePrivateProfileString
GetPrivateProfileString
:D
ça c'est le top !
merci