栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++】ini 读写

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++】ini 读写

//Function that safely converts a 'WCHAR' String to 'LPSTR':
char* ConvertLPWSTRToLPSTR(LPWSTR lpwszStrIn)
{
	LPSTR pszOut = NULL;
	if (lpwszStrIn != NULL)
	{
		int nInputStrLen = wcslen(lpwszStrIn);



		// Double NULL Termination
		int nOutputStrLen = WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, NULL, 0, 0, 0) + 2;
		pszOut = new char[nOutputStrLen];

		if (pszOut)
		{
			memset(pszOut, 0x00, nOutputStrLen);
			WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, pszOut, nOutputStrLen, 0, 0);
		}
	}
	return pszOut;
}


        clearTime = iniReader.ReadString("Gloable", "lastClearTime", "2022-06-17 10:22:34");
		time_t t = StringToDatetime(clearTime);
		lastClearTime = CTime(t); //上次删除时间

		//方法1
		
		//方法2:
		//CTime tNowTime = CTime::GetCurrentTime();
		//tNowTime = tNowTime - CTimeSpan(fileNdays, 0, 0, 0); // 指向nDays天前的日期  1655169307
		//IniWriter iniWriter(".\config.ini");

		//CString result = tNowTime.Format("%Y-%m-%d %H:%M:%S");
		// //USES_CONVERSION;
		// //LPCSTR wszTime = W2A(result);//while循环中不要使用

		//LPCSTR wszTime = ConvertLPWSTRToLPSTR(result.GetBuffer(result.GetLength()));//可在while循环中使用
		//result.ReleaseBuffer();
		//iniWriter.WriteString("Gloable", "lastClearTime", (LPSTR)wszTime);//(LPSTR)(LPCTSTR)result;

IniWriter.h

#ifndef INIFILE_INIWRITER_H
#define INIFILE_INIWRITER_H


class IniWriter
{
public:
    IniWriter(char* szFileName);
    void WriteInteger(char* szSection, char* szKey, int iValue);
    void WriteFloat(char* szSection, char* szKey, float fltValue);
    void WriteBoolean(char* szSection, char* szKey, bool bolValue);
    void WriteString(char* szSection, char* szKey, char* szValue);
private:
    char m_szFileName[255];
};


#endif

IniWriter.cpp

#include "IniWriter.h"
#include 
#include 
IniWriter::IniWriter(char* szFileName)
{
	memset(m_szFileName, 0x00, 255);
	memcpy(m_szFileName, szFileName, strlen(szFileName));
}
void IniWriter::WriteInteger(char* szSection, char* szKey, int iValue)
{
	char szValue[255];
	sprintf(szValue, "%d", iValue);
	WritePrivateProfileStringA(szSection, szKey, szValue, m_szFileName);
}
void IniWriter::WriteFloat(char* szSection, char* szKey, float fltValue)
{
	char szValue[255];
	sprintf(szValue, "%f", fltValue);
	WritePrivateProfileStringA(szSection, szKey, szValue, m_szFileName);
}
void IniWriter::WriteBoolean(char* szSection, char* szKey, bool bolValue)
{
	char szValue[255];
	sprintf(szValue, "%s", bolValue ? "True" : "False");
	WritePrivateProfileStringA(szSection, szKey, szValue, m_szFileName);
}
void IniWriter::WriteString(char* szSection, char* szKey, char* szValue)
{
	WritePrivateProfileStringA(szSection, szKey, szValue, m_szFileName);
}

参考:

慎用USES_CONVERSION 使用和注意_thanklife的专栏-程序员秘密 - 程序员秘密 (cxymm.net)https://cxymm.net/article/thanklife/70208841

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号