How to create Ini file and enter/retrieve data from it VC++ MFC [modified]
-
This is the code i used ..........To CREATE a File and enter a default string.. ...........Ive TO USE VC++ MFC void CFileApp::OnInsert() { HANDLE hFile = CreateFile(_T("C:\\Documents and Settings\\MyFile.ini"), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) AfxMessageBox(_T("Couldn't create the file!")); else { // Attach a CFile object to the handle we have. CFile myFile(hFile); static const char sz[] = "Hockey is best!"; // write string, without null-terminator myFile.Write(sz, lstrlen(sz)); myFile.Close(); } } This works..... BUt For INI I want to ENTER DATA SECTIN-WISE.... ........... Here Data is written just like in Text files... I need to use ...GetProfileString.... WriteProfileString..... n so on... how do i do it?? I NEED TO MAKE A PHONE DIRECTORY USING INI FILE......
-
This is the code i used ..........To CREATE a File and enter a default string.. ...........Ive TO USE VC++ MFC void CFileApp::OnInsert() { HANDLE hFile = CreateFile(_T("C:\\Documents and Settings\\MyFile.ini"), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) AfxMessageBox(_T("Couldn't create the file!")); else { // Attach a CFile object to the handle we have. CFile myFile(hFile); static const char sz[] = "Hockey is best!"; // write string, without null-terminator myFile.Write(sz, lstrlen(sz)); myFile.Close(); } } This works..... BUt For INI I want to ENTER DATA SECTIN-WISE.... ........... Here Data is written just like in Text files... I need to use ...GetProfileString.... WriteProfileString..... n so on... how do i do it?? I NEED TO MAKE A PHONE DIRECTORY USING INI FILE......
Do you plan to use as configuration file for your application ? If yes, this is a bit an outdated way of doing this. More recent applications use the registry to store config options. If you choose to use the registry, search for articles on CP, there are really a lot. They should get you started.
Cédric Moonen Software developer
Charting control [v1.5] OpenGL game tutorial in C++ -
Do you plan to use as configuration file for your application ? If yes, this is a bit an outdated way of doing this. More recent applications use the registry to store config options. If you choose to use the registry, search for articles on CP, there are really a lot. They should get you started.
Cédric Moonen Software developer
Charting control [v1.5] OpenGL game tutorial in C++No... Im not using INI File to store confiq info... IM USING INI FILE TO CREATE A PHONE DIRECTORY... i know there r better methods... BUT ITS MY ASSIGNMENT.... ..........N ITS SAID THAT I USE ONLY INI FILE
-
This is the code i used ..........To CREATE a File and enter a default string.. ...........Ive TO USE VC++ MFC void CFileApp::OnInsert() { HANDLE hFile = CreateFile(_T("C:\\Documents and Settings\\MyFile.ini"), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) AfxMessageBox(_T("Couldn't create the file!")); else { // Attach a CFile object to the handle we have. CFile myFile(hFile); static const char sz[] = "Hockey is best!"; // write string, without null-terminator myFile.Write(sz, lstrlen(sz)); myFile.Close(); } } This works..... BUt For INI I want to ENTER DATA SECTIN-WISE.... ........... Here Data is written just like in Text files... I need to use ...GetProfileString.... WriteProfileString..... n so on... how do i do it?? I NEED TO MAKE A PHONE DIRECTORY USING INI FILE......
The following code snippet create two keys under the section 'General' of the File 'MyFile.ini', and then reads one of the keys, showing the value in a message box. (of course error check is left to the reader...) Please note 1: if the file doesn't exist, it creates both the file and the section. Please note 2: I used
WritePrivateProfileString
andGetPrivateProfileString
, otherwise theI/O
would happen inside the registry.const CString szINIFILE = _T("C:\\Documents and Settings\\anu\\beginning\\MyFile.ini");
CString szFirstName;WritePrivateProfileString(_T("General"),_T("FirstName"), _T("Anu"), szINIFILE);
WritePrivateProfileString(_T("General"),_T("LastName"), _T("???"), szINIFILE);GetPrivateProfileString(_T("General"), _T("FirstName"), _T(""), szFirstName.GetBuffer(MAX_PATH), MAX_PATH, szINIFILE);
szFirstName.ReleaseBuffer();AfxMessageBox(szFirstName);
:)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
No... Im not using INI File to store confiq info... IM USING INI FILE TO CREATE A PHONE DIRECTORY... i know there r better methods... BUT ITS MY ASSIGNMENT.... ..........N ITS SAID THAT I USE ONLY INI FILE
anna mathew wrote:
IM USING INI FILE TO CREATE A PHONE DIRECTORY...
As I already suggested,
MFC
object serialization, is far better for the purpose.If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
The following code snippet create two keys under the section 'General' of the File 'MyFile.ini', and then reads one of the keys, showing the value in a message box. (of course error check is left to the reader...) Please note 1: if the file doesn't exist, it creates both the file and the section. Please note 2: I used
WritePrivateProfileString
andGetPrivateProfileString
, otherwise theI/O
would happen inside the registry.const CString szINIFILE = _T("C:\\Documents and Settings\\anu\\beginning\\MyFile.ini");
CString szFirstName;WritePrivateProfileString(_T("General"),_T("FirstName"), _T("Anu"), szINIFILE);
WritePrivateProfileString(_T("General"),_T("LastName"), _T("???"), szINIFILE);GetPrivateProfileString(_T("General"), _T("FirstName"), _T(""), szFirstName.GetBuffer(MAX_PATH), MAX_PATH, szINIFILE);
szFirstName.ReleaseBuffer();AfxMessageBox(szFirstName);
:)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]Thanks.... this works.... but i put the same lines of code in my MFC application.... still it works.... can u explain how? WriteProfileString...... is a console function... then how come it work with MFC?
-
Thanks.... this works.... but i put the same lines of code in my MFC application.... still it works.... can u explain how? WriteProfileString...... is a console function... then how come it work with MFC?
WritePrivateProfileString
is just aWIN32 API
's function: Console applications, as well as GUI (andMFC
) ones can profitably call it. :)If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
WritePrivateProfileString
is just aWIN32 API
's function: Console applications, as well as GUI (andMFC
) ones can profitably call it. :)If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]Thank you