<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧?kù)o的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0
     
    http://blog.pfan.cn/sword2008/31089.html
     

    配置文件中經(jīng)常用到ini文件,在VC中其函數(shù)分別為:

    寫入.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);

    其中個(gè)參數(shù)的意思:

    LPCTSTR lpAppName ------- INI文件中的一個(gè)字段名

    LPCTSTR lpKeyName -------- lpAppName 下的一個(gè)鍵名,也就是里面具體的變量名

    LPCTSTR lpString ---------是鍵值,也就是變量的值, 必須為LPCTSTRCString類型

    LPCTSTR lpFileName --------完整的INI文件路徑名

    LPCTSTR lpDefaut ----------如果沒有其前兩個(gè)參數(shù)值,則將此值賦給變量

    LPSTR lpReturnedString --------接收INI文件中的值的CString對(duì)象,即接收緩沖區(qū)

    DWORD nSize ------接收緩沖區(qū)的大小

    例子:

    CString StrName,Strtemp;

    int nAge;

    StrName = "jacky";

    nAge = 13;

    WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");

    結(jié)果:(INI文件中顯示如下:)

    [Student]

    Name=jacky

    讀取:

    CString SName;

    GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");

    結(jié)果:SName = "jacky";這里需要注意點(diǎn)就是用完GetBuffer函數(shù)后一定要釋放(SName.ReleaseBuffer()函數(shù)),不然后面再用到SName的其他子函數(shù)就會(huì)失靈。

    讀整數(shù)比較簡(jiǎn)單,如下

    int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即為所讀取的結(jié)果!

    GetPrivateProfileString最后一個(gè)參數(shù)是配置文件路徑的參數(shù),此路徑只能是絕對(duì)路徑,不能是相對(duì)路徑,但現(xiàn)在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函數(shù)。

    原代碼如下:

    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變量時(shí),在使用完GetBuffer后,緊接著一定要使用ReleaseBuffer()函數(shù),才可以進(jìn)行其他的諸如字符串+操作

     


    例如:
     

    [settings]

    remember_check=0
    language_sel=0
    IP_adress=192.168.1.1
    Password_sel=098764
    usr_name_sel=opipiio


    在我們寫的程序當(dāng)中,總有一些配置信息需要保存下來(lái),以便完成程序的功能,最簡(jiǎn)單的辦法就是將這些信息寫入INI文件中,程序初始化時(shí)再讀入.具體應(yīng)用如下:

      一.將信息寫入.INI文件中.

      1.所用的WINAPI函數(shù)原型為:

    BOOL WritePrivateProfileString(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    LPCTSTR lpString,
    LPCTSTR lpFileName
    );

      其中各參數(shù)的意義:

       LPCTSTR lpAppName INI文件中的一個(gè)字段名.

       LPCTSTR lpKeyName lpAppName下的一個(gè)鍵名,通俗講就是變量名.

       LPCTSTR lpString 是鍵值,也就是變量的值,不過(guò)必須為LPCTSTR型或CString型的.

       LPCTSTR lpFileName 是完整的INI文件名.

      2.具體使用方法:設(shè)現(xiàn)有一名學(xué)生,需把他的姓名和年齡寫入 c:\stud\student.ini 文件中.

    CString strName,strTemp;
    int nAge;
    strName="
    張三";
    nAge=12;
    ::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");

      此時(shí)c:\stud\student.ini文件中的內(nèi)容如下:

       [StudentInfo]
       Name=張三

      3.要將學(xué)生的年齡保存下來(lái),只需將整型的值變?yōu)樽址图纯?span lang="EN-US">:

    strTemp.format("%d",nAge);
    ::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");

    .將信息從INI文件中讀入程序中的變量.

      1.所用的WINAPI函數(shù)原型為:

    DWORD GetPrivateProfileString(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    LPCTSTR lpDefault,
    LPTSTR lpReturnedString,
    DWORD nSize,
    LPCTSTR lpFileName
    );

      其中各參數(shù)的意義:

       前二個(gè)參數(shù)與 WritePrivateProfileString中的意義一樣.

       lpDefault : 如果INI文件中沒有前兩個(gè)參數(shù)指定的字段名或鍵名,則將此值賦給變量.

       lpReturnedString : 接收INI文件中的值的CString對(duì)象,即目的緩存器.

       nSize : 目的緩存器的大小.

       lpFileName : 是完整的INI文件名.

      2.具體使用方法:現(xiàn)要將上一步中寫入的學(xué)生的信息讀入程序中.

    CString strStudName;
    int nStudAge;
    GetPrivateProfileString("StudentInfo","Name","
    默認(rèn)姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");

      執(zhí)行后 strStudName 的值為:"張三",若前兩個(gè)參數(shù)有誤,其值為:"默認(rèn)姓名".

      3.讀入整型值要用另一個(gè)WINAPI函數(shù):

    UINT GetPrivateProfileInt(
    LPCTSTR lpAppName,
    LPCTSTR lpKeyName,
    INT nDefault,
    LPCTSTR lpFileName
    );

      這里的參數(shù)意義與上相同.使用方法如下:

    nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");

    .循環(huán)寫入多個(gè)值,設(shè)現(xiàn)有一程序,要將最近使用的幾個(gè)文件名保存下來(lái),具體程序如下:

      1.寫入:

    CString strTemp,strTempA;
    int i;
    int nCount=6;
    文件://共有6個(gè)文件名需要保存
    for(i=0;i {strTemp.format("%d",i);
    strTempA=
    文件名;
    文件://文件名可以從數(shù)組,列表框等處取得
    .
    ::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,
    "c:\\usefile\\usefile.ini");
    }
    strTemp.format("%d",nCount);
    ::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");
    文件://將文件總數(shù)寫入,以便讀出.

      2.讀出:

    nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\\usefile\\usefile.ini");
    for(i=0;i {strTemp.format("%d",i);
    strTemp="FileName"+strTemp;
    ::GetPrivateProfileString("CurrentIni",strTemp,"default.fil", strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\\usefile\\usefile.ini");

    文件://使用strTempA中的內(nèi)容.

    }

      補(bǔ)充四點(diǎn):

       1.INI文件的路徑必須完整,文件名前面的各級(jí)目錄必須存在,否則寫入不成功,該函數(shù)返回 FALSE .

       2.文件名的路徑中必須為 \\ ,因?yàn)樵?span lang="EN-US">VC++, \\ 才表示一個(gè) \ .

       3.也可將INI文件放在程序所在目錄,此時(shí) lpFileName 參數(shù)為: ".\\student.ini".

       4.從網(wǎng)頁(yè)中粘貼源代碼時(shí),最好先粘貼至記事本中,再往VC中粘貼,否則易造成編譯錯(cuò)誤,開始時(shí)我也十分不解,好好的代碼怎么就不對(duì)呢?后來(lái)才找到這個(gè)方法.還有一些代碼中使用了全角字符如:<,\等,也會(huì)
    造成編譯錯(cuò)誤.

    主站蜘蛛池模板: AV在线播放日韩亚洲欧| 国产亚洲福利一区二区免费看| 成人午夜视频免费| 精品乱子伦一区二区三区高清免费播放| 亚洲短视频男人的影院| 国产免费卡一卡三卡乱码| 一区二区三区在线免费看| 美女露100%胸无遮挡免费观看| 久久精品国产亚洲av水果派| 国产美女被遭强高潮免费网站| 8x网站免费入口在线观看| igao激情在线视频免费| 亚洲a无码综合a国产av中文| 亚洲午夜一区二区电影院| 亚洲色无码一区二区三区| 免费大香伊蕉在人线国产| 免费在线观看一级片| 牛牛在线精品观看免费正 | 久久九九免费高清视频 | 老色鬼久久亚洲AV综合| 亚洲色欲www综合网| 亚洲乱码日产一区三区| 亚洲AV无码乱码精品国产| 国产免费av片在线看| 亚洲高清视频免费| 在线成人精品国产区免费| 亚洲五月午夜免费在线视频| 三级黄色片免费看| www一区二区www免费| 免费无码黄网站在线看| **俄罗斯毛片免费| 四虎成人免费影院网址| 1024免费福利永久观看网站| 美女视频黄a视频全免费网站色窝| 亚洲欧洲免费视频| 免费精品人在线二线三线区别| 国产成人免费ā片在线观看 | 免费91麻豆精品国产自产在线观看| 69视频免费在线观看| 女人18毛片特级一级免费视频| 免费jjzz在线播放国产|