⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inifile.cpp

📁 用VC写的监控中心后台程序。 代码全
💻 CPP
字号:
// IniFile.cpp: implementation of the CIniFile class.
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "IniFile.h"
#include "fstream.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

/////////////////////////////////////////////////////////////////////
// Construction/Destruction
/////////////////////////////////////////////////////////////////////

//default constructor
CIniFile::CIniFile()
{
}

//default destructor
CIniFile::~CIniFile()
{

}

/////////////////////////////////////////////////////////////////////
// Public Functions
/////////////////////////////////////////////////////////////////////

//sets path of ini file to read and write from
void CIniFile::SetPath(CString Path)
{
	FilePath = Path;
}

//open ini file for read
BOOL CIniFile::OpenIniFileForRead()
{
	BOOL bExist=IniFile.Open(FilePath+FileName,CFile::modeRead); 
	return bExist;
}

//open ini file for write
BOOL CIniFile::OpenIniFileForWrite()
{
	BOOL bExist=IniFile.Open(FilePath+FileName,CFile::modeCreate | CFile::modeWrite);
	return bExist;
}

void CIniFile::CloseIniFile()
{
	IniFile.Close();
}

//find Section in ini file
BOOL CIniFile::FindSection(CString Section)
{
	IniFile.SeekToBegin();
	CString str;
	BOOL bFind=FALSE;
	BOOL bEnd=IniFile.ReadString(str);
	while(!bFind && bEnd)
	{
		if(str.Find(Section)>=0)
		{
			bFind=TRUE;
			break;
		}
		bEnd=IniFile.ReadString(str);
	}
	return bFind;
}

//write Section to ini file
BOOL CIniFile::WriteSection(CString Section)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		IniFile.WriteString("["+Section+"]\n");
		return TRUE;
	}
	else
		return FALSE;
}

//write Item and value of int to ini file
BOOL CIniFile::WriteItemInt(CString Item, int Value)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		CString str;
		str.Format("%d",Value);
		str=Item+"="+str+"\n";
		IniFile.WriteString(str);
		return TRUE;
	}
	else
		return FALSE;
}

//write Item and value of CString to ini file
BOOL CIniFile::WriteItemString(CString Item, CString Value)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		IniFile.WriteString(Item+"="+Value+"\n");
		return TRUE;
	}
	else
		return FALSE;
}

//read value of int from ini file
BOOL CIniFile::GetItemInt(CString Section, CString Item, int &Value)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		if(FindSection(Section))
		{
			CString buf,sub;
			BOOL bFind=FALSE;
			BOOL bEnd=IniFile.ReadString(buf);
			while(!bFind && bEnd)
			{
				sub=buf.Left(buf.Find("="));
				if(buf.Find("[")<0 && !sub.IsEmpty() && sub.Find(Item)>=0)
				{
					sub=buf.Right(buf.GetLength()-buf.Find("=")-1);
					sub=GetValueString(sub);
					Value=atoi(sub);
					bFind=TRUE;
					break;
				}
				bEnd=IniFile.ReadString(buf);
			}
			return bFind;
		}
		else
			return FALSE;
	}
	else
		return FALSE;
}

//read value of CString from ini file
BOOL CIniFile::GetItemString(CString Section, CString Item, CString &Value)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		if(FindSection(Section))
		{
			CString buf,sub;
			BOOL bFind=FALSE;
			BOOL bEnd=IniFile.ReadString(buf);
			while(!bFind && bEnd)
			{
				sub=buf.Left(buf.Find("="));
				if(buf.Find("[")<0 && !sub.IsEmpty() && sub.Find(Item)>=0)
				{
					sub=buf.Right(buf.GetLength()-buf.Find("=")-1);
					Value=GetValueString(sub);
					bFind=TRUE;
					break;
				}
				bEnd=IniFile.ReadString(buf);
			}
			return bFind;
		}
		else
			return FALSE;
	}
	else
		return FALSE;
}

//get value(CString) from str
CString CIniFile::GetValueString(CString str)
{
	int length=str.GetLength();
	BOOL bSpace=TRUE;
	while(length && bSpace)
	{
		if(str[0]==' ')
			str=str.Right(--length);
		else
			bSpace=FALSE;
	}
	bSpace=TRUE;
	while(length && bSpace)
	{
		if(str[length-1]==' ')
			str=str.Left(--length);
		else
			bSpace=FALSE;
	}
	return str;
}

//write any string to ini file,"\n"
BOOL CIniFile::WriteString(CString str)
{
	CFileStatus status;
	if(IniFile.GetStatus(status))
	{
		IniFile.WriteString(str);
		return TRUE;
	}
	else
		return FALSE;
}

//sets name of ini file to read and write from
void CIniFile::SetName(CString Name)
{
	FileName=Name+".ini";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -