ini文件访问工具类 WinCfgUtil

1、 WinCfgUtil.h

#ifndef		__WINCFG_UTIL_H
#define		__WINCFG_UTIL_H

#include <Windows.h>

DWORD INI_Create(LPCTSTR lpINIFilePath, LPCTSTR lpSectionName, DWORD dwSectionLen)
{
	DWORD dwRet = -1;
	HANDLE hIniFile = ::CreateFile(lpINIFilePath, GENERIC_WRITE|GENERIC_READ, 0, 
						NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	if (INVALID_HANDLE_VALUE == hIniFile)
	{
		return dwRet;
	}

	//write the section
	DWORD dwWriten = 0;
	BOOL boRet = FALSE;
	boRet = ::WriteFile(hIniFile, lpSectionName, dwSectionLen, &dwWriten, NULL);
	if (dwSectionLen == dwWriten)
	{
		dwRet = 0;
	}
	CloseHandle(hIniFile);
	return dwRet;
}



DWORD INI_AppendPair(LPCTSTR lpINIFilePath, LPCTSTR lpFieldName, DWORD dwFieldNameLen,
					 LPTSTR lpValue, DWORD dwValueLen )
{
	DWORD dwRet = -1;
	HANDLE hFile = ::CreateFile(lpINIFilePath, GENERIC_READ | GENERIC_WRITE, 
								0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (INVALID_HANDLE_VALUE != hFile)
	{
		::SetFilePointer(hFile, 0, NULL, FILE_END);
		TCHAR szLine[MAX_PATH] = {0};
		lstrcpy(szLine, "\r\n");
		lstrcat(szLine, lpFieldName);
		LPTSTR lpEq = "=";
		lstrcat(szLine, lpEq);
		lstrcat(szLine, lpValue);
		DWORD dwWritten = 0;
		
		BOOL boRet = ::WriteFile(hFile, szLine, lstrlen(szLine), &dwWritten, NULL);
		if (boRet)
		{
			CloseHandle(hFile);
			dwRet = 0;
		}
	}

	return dwRet;
}
DWORD INI_GetValue(LPCTSTR lpINIFilePath, LPCTSTR lpSectionName, 
				   LPCTSTR lpFieldName, LPTSTR lpValue, DWORD dwValueLen)
{
	DWORD dwLen = -1;

	dwLen = ::GetPrivateProfileString(lpSectionName,lpFieldName,
									  NULL,lpValue,
									  dwValueLen,lpINIFilePath);
	return dwLen;
}

//lpINIFilePath 取相对或绝对路径,不能直接输入当前的文件名
DWORD INI_SetValue(LPCTSTR lpINIFilePath, LPCTSTR lpSectionName, 
				   LPCTSTR lpFieldName, LPCTSTR lpNewValue)
{
	DWORD dwRet = -1;
	BOOL boRet = FALSE;
	boRet = ::WritePrivateProfileString(lpSectionName,lpFieldName,lpNewValue,lpINIFilePath);
	if (boRet)
	{
		dwRet = 0;
	}

	return dwRet;
}


#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值