在项目中遇到读取ini的方法,这个可能用过MFC的都会吧,我是第一次接触还比较有兴趣写下来,下边就以一对一,一对多的读取以实列剖析:

#include <iostream>
#include <tchar.h>
#include <algorithm>
#include <stdio.h>
#include <windows.h >


struct tagSpecialWinLoseItem
{
	LONGLONG		SpecialScore;		
	int						BigSmallWinProbability;	
	int						PairWinProbability;		
	tagSpecialWinLoseItem()
	{
		SpecialScore = 0L;
		BigSmallWinProbability = 0;
		PairWinProbability = 0;
	}
	void operator=(tagSpecialWinLoseItem& that)
	{
		SpecialScore = that.SpecialScore;
		BigSmallWinProbability = that.BigSmallWinProbability;
		PairWinProbability = that.PairWinProbability;
	}
};

int	num;	//配置总数目(ini里边这一项配置了多少条,正确读取出来就应该是多少,本实例一共10条)
tagSpecialWinLoseItem	SpecialItems[10];//结构体数组

int main() 
{
	TCHAR szPath[MAX_PATH] =TEXT("");
	GetCurrentDirectory(sizeof(szPath), szPath);//获取ini的路径
	TCHAR szFileName[MAX_PATH] = { 0 };
	_sntprintf(szFileName, sizeof(szFileName), _T("%s\\BlackList.ini"), szPath);//流模式格式化输入到清0后的szFileName
	//这里就是一对一读取字段 PlayerCount (ini里边是多少读出来就是多少)
	int playCount = GetPrivateProfileInt(_T("RoomSet"), _T("PlayerCount"), -1, szFileName);

	//一对多读取,用写好的结构体存储,先将结构体清理一遍以防数据错误
	ZeroMemory(SpecialItems, sizeof(SpecialItems));
	//RoomSet就是写在ini最顶部的名字,相当于一个名字以辨别是什么用途
	TCHAR	AppName[] = { _T("RoomSet") };
	//获取该项配置的数目
	int Num = GetPrivateProfileInt(AppName, _T("BigSmallProbability_Num"), 0, szFileName);
	tagSpecialWinLoseItem  Item;
	//从上到下从左到右读取数据
	for (WORD Index = 0; Index < Num; Index++)
	{
		TCHAR	KeyName[32];
		TCHAR	StringData[128];
		ZeroMemory(StringData, sizeof(StringData));
		swprintf(KeyName, sizeof(KeyName), _T("BigSmallProbabilityCard%d"), Index);
		int ReadSize = GetPrivateProfileString(AppName, KeyName, _T(""), StringData, sizeof(StringData), szFileName);
		TCHAR * temp = StringData;
		Item.BigSmallWinProbability = _wtoi(temp);
		temp = wcschr(temp, ',') + 1;
		Item.PairWinProbability = _wtoi(temp);
		temp = wcschr(temp, ',') + 1;
		Item.SpecialScore = _wtoi64(temp);
		SpecialItems[Index] = Item;
		num++;
	}


	system("pause");
	return true;
}

这里贴上.ini的图片 当然可以根据自己的需求去配置
MFC下读取ini相关函数

相关文章:

  • 2022-12-23
  • 2022-02-13
  • 2022-12-23
  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-19
  • 2021-06-10
  • 2022-01-30
  • 2022-12-23
  • 2022-01-25
相关资源
相似解决方案