• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
                在我們寫的程序當(dāng)中,總有一些配置信息需要保存下來,以便完成程序的功能,最簡單的辦法就是將這些信息寫入INI文件中,程序初始化時再讀入.具體應(yīng)用如下:
              一.將信息寫入.INI文件中.
              1.所用的WINAPI函數(shù)原型為: 
            BOOL WritePrivateProfileString(
            LPCTSTR lpAppName,
            LPCTSTR lpKeyName,
            LPCTSTR lpString,
            LPCTSTR lpFileName
            ); 
              其中各參數(shù)的意義:
               LPCTSTR lpAppName 是INI文件中的一個字段名.
               LPCTSTR lpKeyName 是lpAppName下的一個鍵名,通俗講就是變量名.
               LPCTSTR lpString 是鍵值,也就是變量的值,不過必須為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"); 

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

               Name=張三
              3.要將學(xué)生的年齡保存下來,只需將整型的值變?yōu)樽址图纯?
            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ù)的意義: 
               前二個參數(shù)與 WritePrivateProfileString中的意義一樣.

               lpDefault : 如果INI文件中沒有前兩個參數(shù)指定的字段名或鍵名,則將此值賦給變量. 
               lpReturnedString : 接收INI文件中的值的CString對象,即目的緩存器.
               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 的值為:"張三",若前兩個參數(shù)有誤,其值為:"默認(rèn)姓名".

              3.讀入整型值要用另一個WINAPI函數(shù): 
            UINT GetPrivateProfileInt(
            LPCTSTR lpAppName, 
            LPCTSTR lpKeyName, 
            INT nDefault, 
            LPCTSTR lpFileName 
            ); 
              這里的參數(shù)意義與上相同.使用方法如下:

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

              三.循環(huán)寫入多個值,設(shè)現(xiàn)有一程序,要將最近使用的幾個文件名保存下來,具體程序如下:
              1.寫入:
            CString strTemp,strTempA;
            int i;
            int nCount=6;
            file://共有6個文件名需要保存

            for(i=0;i {strTemp.Format("%d",i);
            strTempA=文件名;
            file://文件名可以從數(shù)組,列表框等處取得.
            ::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,"c:\\usefile\\usefile.ini");
            }
            strTemp.Format("%d",nCount);
            ::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");
            file://將文件總數(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");

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


              補充四點:

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

               2.文件名的路徑中必須為 \\ ,因為在VC++中, \\ 才表示一個 \ .

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

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

            INI文件編程

                INI文件在系統(tǒng)配置及應(yīng)用程序參數(shù)保存與設(shè)置方面,具有很重要的作用,所以可視化的編程一族,如VB、VC、VFP、Delphi等都提供了讀寫INI文件的方法,其中Delphi中操作INI文件,最為簡潔,這是因為Delphi3提供了一個TInifile類,使我們可以非常靈活的處理INI文件。 

            一、有必要了解INI文件的結(jié)構(gòu):
            ;注釋
            [小節(jié)名]
            關(guān)鍵字=值
            ...
              INI文件允許有多個小節(jié),每個小節(jié)又允許有多個關(guān)鍵字, "="后面是該關(guān)鍵字的值。 
              值的類型有三種:字符串、整型數(shù)值和布爾值。其中字符串存貯在INI文件中時沒有引號,
            布爾真值用1表示,布爾假值用0表示。 
              注釋以分號";"開頭。 
            Posted on 2005-12-23 16:06 艾凡赫 閱讀(563) 評論(0)  編輯 收藏 引用 所屬分類: MFC技術(shù)
            久久九九免费高清视频| 国产A级毛片久久久精品毛片| 人人狠狠综合久久亚洲高清| 国产精品gz久久久| 久久久久亚洲AV成人网人人网站 | 亚洲午夜无码久久久久| 久久综合九色综合网站| 久久久久国产一级毛片高清版| 人妻丰满?V无码久久不卡| 无码日韩人妻精品久久蜜桃| 国产日韩久久免费影院| 亚洲成色www久久网站夜月| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 精品久久久噜噜噜久久久| 国产伊人久久| 久久精品99久久香蕉国产色戒| 99久久伊人精品综合观看| 日韩精品久久无码中文字幕| 欧美日韩精品久久久免费观看| 无码人妻久久久一区二区三区 | 久久精品国产免费一区| 2021最新久久久视精品爱| 国产精品久久久久久一区二区三区| 久久99精品久久久久婷婷| 精品久久久久久国产免费了| 久久综合88熟人妻| 精品久久久久久国产| 久久久久这里只有精品| 94久久国产乱子伦精品免费| 久久精品九九亚洲精品| 一本色道久久综合狠狠躁| 久久乐国产综合亚洲精品| 国产午夜精品理论片久久| 久久综合狠狠综合久久激情 | 狠狠色婷婷综合天天久久丁香| 亚洲午夜久久久久妓女影院| 九九精品久久久久久噜噜| 久久亚洲国产精品成人AV秋霞| 亚洲欧美久久久久9999| 久久婷婷国产剧情内射白浆| 久久人人爽人人爽人人片AV不 |