MFC下读取ini相关函数

在项目中遇到读取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的图片 当然可以根据自己的需求去配置
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒德久远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值