程式執行資訊的非登錄檔儲存類(ini 檔案操作類) (轉)
現在的一般都要記錄一些自己的執行資訊,這些資訊要儲存在什麼地方呢?的建議是儲存在登錄檔中,這樣不容易丟失。但最近我對一些普通了解,使用者們並不希望程式向登錄檔中寫非性的資訊,避免登錄檔越來越大,現在一般使用半年以上的電腦,一般登錄檔都在 30M 以上,電腦的啟動速度明顯變慢。因此我這裡用 以前的寫了一個操作INI的類,把程式的執行資訊儲存在當前目錄中的 INI 檔案中。
該類可以直接讀寫 string,int,D,doule 四種資料,操作簡單,具體程式碼如下:
#define MAX_LENGTH 256
class CIniFile
{
public:
CIniFile();
virtual ~CIniFile();
void SetIniFileName(CString FileName)
{ IniFileName = FileName; }
CString GetIniFileName()
{ return IniFileName; }
CString GetString(CString AppName,CString KeyName,CString Default = "");
int GetInt(CString AppName,CString KeyName,int Default = 0);
double GetDouble(CString AppName,CString KeyName,double Default = 0);
unsigned long GetDWORD(CString AppName,CString KeyName,unsigned long Default = 0);
BOOL SetString(CString AppName,CString KeyName,CString Data);
BOOL SetInt(CString AppName,CString KeyName,int Data);
BOOL SetDouble(CString AppName,CString KeyName,double Data);
BOOL SetDWORD(CString AppName,CString KeyName,unsigned long Data);
private:
CString IniFileName;
};
CIniFile::CIniFile()
{
char szAppName[MAX_PATH];
int len;
::GetModuleFileName(AfxGetInstanceHandle(), szAppName, sizeof(szAppName));
len = strlen(szAppName);
for(int i=len; i>0; i--)
{
if(szAppName[i] == '.')
{
szAppName[i+1]='';
break;
}
}
strcat(szAppName, "ini");
IniFileName = szAppName;
}
CIniFile::~CIniFile()
{
}
CString CIniFile::GetString(CString AppName,CString KeyName,CString Default)
{
TCHAR buf[MAX_LENGTH];
::GetPrivateProfileString(AppName, KeyName, Default, buf, sizeof(buf), IniFileName);
return buf;
}
double CIniFile::GetDouble(CString AppName,CString KeyName,double Default)
{
TCHAR buf[MAX_LENGTH];
CString temp;
temp.Format("%f",Default);
::GetPrivateProfileString(AppName, KeyName, temp, buf, sizeof(buf), IniFileName);
return atof(buf);
}
int CIniFile::GetInt(CString AppName,CString KeyName,int Default)
{
return ::GetPrivateProfileInt(AppName, KeyName, Default, IniFileName);
}
unsigned long CIniFile::GetDWORD(CString AppName,CString KeyName,unsigned long Default)
{
TCHAR buf[MAX_LENGTH];
CString temp;
temp.Format("%u",Default);
::GetPrivateProfileString(AppName, KeyName, temp, buf, sizeof(buf), IniFileName);
return atol(buf);
}
BOOL CIniFile::SetString(CString AppName,CString KeyName,CString Data)
{
return ::WritePrivateProfileString(AppName, KeyName, Data, IniFileName);
}
BOOL CIniFile::SetInt(CString AppName,CString KeyName,int Data)
{
CString temp;
temp.Format("%d",Data);
return ::WritePrivateProfileString(AppName, KeyName, temp, IniFileName);
}
BOOL CIniFile::SetDouble(CString AppName,CString KeyName,double Data)
{
CString temp;
temp.Format("%f",Data);
return ::WritePrivateProfileString(AppName, KeyName, temp, IniFileName);
}
BOOL CIniFile::SetDWORD(CString AppName,CString KeyName,unsigned long Data)
{
CString temp;
temp.Format("%u",Data);
return ::WritePrivateProfileString(AppName, KeyName, temp, IniFileName);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用Windows登錄檔儲存資訊 (轉)Windows
- asp.net 操作INI配置檔案類ASP.NET
- VB原始碼推薦:一個操作Ini檔案的類 (轉)原始碼
- 檔案操作類FileUtil
- java操作ini檔案Java
- JAVA程式設計學習記錄(File類檔案操作)Java程式設計
- Java : File 檔案類操作Java
- File Dumps(ORACLE各類檔案轉儲)Oracle
- 用登錄檔儲存資料 (VB函式篇) (轉)函式
- mysql 資料儲存檔案及6類日誌MySql
- Win32 API 登錄檔類的編制以及使用 (轉)Win32API
- c++ IO類,檔案操作C++
- Symbian中操作ini檔案
- 簡單2步就能將大量檔案歸類儲存
- VC操作登錄檔
- .NET程式配置檔案操作(ini,cfg,config)
- JAVA類檔案操作和異常Java
- 類檔案結構_class類檔案的的結構
- 隱藏任意程式,目錄檔案,登錄檔,埠
- Java 對 properties 檔案操作 (ResourceBundle 類和 Properties 類)Java
- Android工具類之檔案操作工具類Android
- 檔案儲存
- vbs類生成xml檔案(轉)XML
- Java讀取以.xlsx結尾的excel檔案,並寫出每張表對應的c#類、java類、儲存資料的xml檔案、讀取xml檔案的工具類JavaExcelC#XML
- VB讀寫ini檔案 (轉)
- delphi讀取ini檔案 (轉)
- Java —— 檔案類(File 類)Java
- 在VC中自建操作BMP點陣圖檔案的類 (轉)
- perl 實現shell 命令的檔案儲存操作
- Win32 SDK登錄檔操作——RegQueryValueEx (轉)Win32
- Java檔案操作工具類FileUtilsJava
- node.js 封裝操作檔案類Node.js封裝
- 塊儲存 檔案儲存 物件儲存物件
- 資料儲存--檔案儲存
- 登錄檔檔案修改開啟程式的簡單示例
- ubuntu 類似inittab的檔案 修改預設執行級別Ubuntu
- 儲存、檔案管理/目錄、裝置管理
- 關於檔案頭保留塊資訊的儲存探索