国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

用C++在WIN.INI中保存信息

2004-02-14 eNet&Ciweek

  現(xiàn)在許多軟件把程序中需要的數(shù)據(jù)保存在注冊表中,這樣當(dāng)用戶裝的軟件越來越多時,致使注冊表越來越龐大,容易使系統(tǒng)出錯。當(dāng)然,微軟也建議在注冊表中保存數(shù)據(jù),但當(dāng)我們需要保存的數(shù)據(jù)不多時完全可以把數(shù)據(jù)保存在WIN.INI中,這樣可以很方便地維護(hù),實現(xiàn)方法相對來說比較簡單。下面我以Borland C++ Builder為例來說說如何實現(xiàn)。

  原理其實很簡單,只需調(diào)用API的 WriteProfileString和GetProfileInt函數(shù)就可以了。這兩個函數(shù)的原型是:BOOL WriteProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString );

  UINT GetProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault);

  其中l(wèi)pAppName指在WIN.INI中段的名字,即用[]括起來的字符串,lpKeyName指在這個段中每一個項目的名字,lpString指這個項目的值,即“=”后的數(shù), nDefault為當(dāng)GetProfileInt沒有找到lpAppName和lpKeyName時返回的值,即缺省值,前者返回為布爾值(true 或 false),后者返回為無符號整形值。當(dāng)在WriteProfileString函數(shù)中 lpKeyName 為空(NULL)時,則清除這個段的全部內(nèi)容,lpString 為空時,則清除這一項目的內(nèi)容,即這一行將清除掉。

  下面舉一例子來說明這兩個函數(shù)的用法。新建一個應(yīng)用程序,在Form1上放兩個Edit和三個Button,其中Edit的Text為空,三個Button的Caption分別為“添加”、“查看”、“清除”。雙擊“添加”按鈕加入下面代碼:

  WriteProfileString(“例子程序”,“項目”,Edit1→Text.c_str());

  雙擊“查看”按鈕加入如下代碼:

  unsigned int Temp;

  Temp=GetProfileInt(“例子程序”,“項目”,100);

  Edit2→Text=IntToStr(Temp);

  雙擊“清除”按鈕加入如下代碼:

  WriteProfileString(“例子程序”,NULL,NULL);

  然后按F9鍵運(yùn)行程序。

  下來可以檢驗一下程序的正確性。在Edit1中輸入數(shù)字,如“3265”,按“添加”按鈕,這時運(yùn)行“sysedit”來查看“WIN.INI”文件的最后面,可以看到加入了如下內(nèi)容:

  [例子程序]

  項目=3265

  其中“[]”和“=”是函數(shù)自動加上的。按下“查看”按鈕,在Edit2中出現(xiàn)“3265”,當(dāng)按下“清除”按鈕可清除添加的部分。經(jīng)過查看可知程序已達(dá)到預(yù)期的目的。

  喜愛編程的朋友可以把上述方法應(yīng)用到自己的程序中去,來達(dá)到保存數(shù)據(jù)信息的作用。當(dāng)確實要把信息保存到注冊表中,可以在C++ Builder中定義一個TRegistry類的對象來進(jìn)行相關(guān)的操作,或者直接調(diào)用Windows的API函數(shù)。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com