VC 設定檔.ini

來源:互聯網
上載者:User

設定檔中經常用到ini檔案,在VC中其函數分別為:
寫入.ini檔案:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);

讀取.ini檔案:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);

讀取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);

其中個參數的意思:
LPCTSTR lpAppName ------- INI檔案中的一個欄位名
LPCTSTR lpKeyName -------- lpAppName 下的一個鍵名,也就是裡面具體的變數名
LPCTSTR lpString ---------是索引值,也就是變數的值, 必須為LPCTSTR或CString類型
LPCTSTR lpFileName --------完整的INI檔案路徑名
LPCTSTR lpDefaut ----------如果沒有其前兩個參數值,則將此值賦給變數
LPSTR lpReturnedString --------接收INI檔案中的值的CString對象,即接收緩衝區
DWORD nSize ------接收緩衝區的大小
例子:
CString StrName,Strtemp;
int nAge;
StrName = "jacky";
nAge = 13;
WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");
結果:(INI檔案中顯示如下:)
[Student]
Name=jacky
讀取:
CString SName;
GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");

結果:SName = "jacky";這裡需要注意點就是用完GetBuffer函數後一定要釋放(用SName.ReleaseBuffer()函數),不然後面再用到SName的其他子函數就會失靈。

讀整數比較簡單,如下
int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")傳回值即為所讀取的結果!

在GetPrivateProfileString最後一個參數是設定檔路徑的參數,此路徑只能是絕對路徑,不能是相對路徑,但現在我需要是我的exe檔案能和我的設定檔在一起。因此我使用了GetCurrentDirectory函數。

原代碼如下:
CString server_ip;
CString des="";
::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
des.ReleaseBuffer();
des+="\\config.ini";
GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);

server_ip.ReleaseBuffer();
注意:在這裡使用CString變數時,在使用完GetBuffer後,緊接著一定要使用ReleaseBuffer()函數,才可以進行其他的諸如字串+操作
轉自CSDN-cherryt

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

VC讀取設定檔(.ini):
CString strIP = _T("");
CString strPort = _T("");
::GetPrivateProfileString("TCP/IP","IP","",
strIP.GetBuffer(MAX_PATH), MAX_PATH,".\\Config.ini");
strIP.ReleaseBuffer();
m_strIP = strIP; //IP地址
::GetPrivateProfileString("TCP/IP","Port","",
strPort.GetBuffer(MAX_PATH), MAX_PATH,".\\Config.ini");
strPort.ReleaseBuffer();
m_iPort = atoi(strPort); //連接埠號碼

設定檔名為:Config.ini
檔案結構:
[TCP/IP]
IP=127.0.0.1
Port=8848

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.