C++读写配置xml文件(二)

一、c++读写xml文件
1、定义了两个类,
将需要的数据,按字符串写进指针buf,然后保存xml文件,再读出来,写进别的类任务,将字符串转换为数字,进行计算

#define CONFIG_FILE_CALIB		"/root/config/config.xml"

using namespace cv;
using namespace std;

double fishcorrect_value[14]={
   0,};

class Top//定义了一个大类
{
   
public:
	explicit Top();
	~Top();
	static Top *getInstance();	
	CThread *config; //其中一个类
	CThread *rectify;	//其中一个类
	static class Top *instance;
};

class CRectify:public //定义了一个类
{
   
public:
	CRectify(void *is, SX_S8 *name, SX_S32 id);
	~CRectify();
	virtual SX_S32 open(void *arg);
private:
	Top *is;	
};

class Top;
class CConfig:public //定义了一个类
{
   
public:
	explicit CConfig(void *is, SX_S8 *name, SX_S32 id);
	~CConfig();
	virtual SX_S32	open(void *arg);
	char light_centrerow1[100];
	char light_centrecol1[100];
	char light_K4[100];
	char light_K3[100];
	char light_K2[100];
	char light_K1[100];
	char light_K0[100];
private:
	Top *is;	SX_S32 saveFile(SX_S8 *data, SX_S32 len, SX_S8 *filename);
	SX_S32 readFile( SX_S8 *filename, SX_S8 *buf, SX_S32 buflen);
	
};

SX_S32 CConfig::saveFile( SX_S8 *data, SX_S32 len, SX_S8 *filename)
{
   
	if( data == NULL || filename == NULL)
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		return -1;
	}
	if( (len < 0) || (len > (MAX_CONFIG_FILE_LEN) ))
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		return -1;
	}

	/*	//TODO
		data check, CRC check
	*/
	FILE *fd = fopen( filename, "wb" );
	if( !fd )
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		return -1;
	}
	if ( fwrite( data, 1, len, fd ) != len ) 
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		fclose(fd);
		return -1;
	}
	fclose( fd );	
	return len;
}

SX_S32 CConfig::readFile( SX_S8 *filename, SX_S8 *buf, SX_S32 buflen)
{
   
	SX_S32 s32Ret = 0;
	SX_S32 s32ReadLen = 0;
	if( buf == NULL || filename == NULL)
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		return -1;
	}
	memset( buf, 0, buflen );
	FILE *fd = fopen( filename, "rb" );
	if( !fd )
	{
   
		TRACE(DL_ERROR, "DL_ERROR\n");
		return -1;
	}
	
	fseek(fd, 0, SEEK_END);
	s32Ret 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值