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

📄 msgheader.cpp

📁 简单报文模拟发送
💻 CPP
字号:
#include "stdafx.h"
#include "MsgHeader.h"
#include "common.h"
#include "FirstMsg.h"
#include "SecondMsg.h"
#include "ThirdMsg.h"
#include "Data.h"
#include <stdio.h>
#include <string.h>
MsgHeader::MsgHeader(char* src,char* dest)
:m_nMsgID(GetMsgSingleID())
,m_strSrcAddr(NULL)
,m_strDestAddr(NULL)
{
	
	if(NULL !=src && strlen(src)>0)
	{
		m_strSrcAddr=new char[strlen(src)+1];
		if(NULL!=m_strSrcAddr)
		{
			strcpy(m_strSrcAddr,src);
		}
	}

	if(NULL !=dest && strlen(dest)>0)
	{
		m_strDestAddr=new char[strlen(dest)+1];
		if(NULL!=m_strDestAddr)
		{
			strcpy(m_strDestAddr,dest);
		}
	}
}
MsgHeader::MsgHeader(const MsgHeader& header)
:m_nMsgID(header.GetMsgID())
,m_strSrcAddr(NULL)
,m_strDestAddr(NULL)
{
	char* src=header.GetSrcAddr();
	if(NULL !=src&& strlen(src)>0)
	{
		m_strSrcAddr=new char[strlen(src)+1];
		if(NULL!=m_strSrcAddr)
		{
			strcpy(m_strSrcAddr,src);
		}
	}
	 src=header.GetDestAddr();
	if(NULL !=src && strlen(src)>0)
	{
		m_strDestAddr=new char[strlen(src)+1];
		if(NULL!=m_strDestAddr)
		{
			strcpy(m_strDestAddr,src);
		}
	}
}
MsgHeader::~MsgHeader()
{
	delete[] m_strSrcAddr;
	delete[] m_strDestAddr;
}
MsgHeader& MsgHeader::operator=(const MsgHeader& header)
{
	if(&header==this)
		return *this;
	this->m_nMsgID=header.GetMsgID();

	if(NULL!=m_strSrcAddr)
	{
		delete[] m_strSrcAddr;
		m_strSrcAddr=NULL;
	}
	char* src=header.GetSrcAddr();
	if(NULL !=src&& strlen(src)>0)
	{
		m_strSrcAddr=new char[strlen(src)+1];
		if(NULL!=m_strSrcAddr)
		{
			strcpy(m_strSrcAddr,src);
		}
	}

	if(NULL!=m_strDestAddr)
	{
		delete[] m_strDestAddr;
		m_strDestAddr=NULL;
	}
	 src=header.GetDestAddr();
	if(NULL !=src && strlen(src)>0)
	{
		m_strDestAddr=new char[strlen(src)+1];
		if(NULL!=m_strDestAddr)
		{
			strcpy(m_strDestAddr,src);
		}
	}
	return * this;
}
void MsgHeader::SetSrcAddr(char* src)
{
	if(NULL==src || strlen(src)==0)
		return;
	if(NULL!=m_strSrcAddr)
	{
		delete[] m_strSrcAddr;
		m_strSrcAddr=NULL;
	}
	m_strSrcAddr=new char[strlen(src)+1];
	if(NULL!=m_strSrcAddr)
	{
		strcpy(m_strSrcAddr,src);
	}else
	{

	}
}
void MsgHeader::SetDestAddr(char* dest)
{

}
char* MsgHeader::toString(char** str)
{
	 *str=new char[45];
	sprintf(*str,"%d%s%s",m_nMsgID,m_strSrcAddr,m_strDestAddr);
	return *str;
}

MsgHeader* MsgHeader::loadfromfile(const char *path)
{
	char srs[512]={0};
	GetPrivateProfileString("Header","SourseAddress","",srs,512,path);
	char des[512]={0};
	GetPrivateProfileString("Header","DestinationAddress","",des,512,path);
	char pstr[512]={0};
	char qstr[512]={0};
	GetPrivateProfileString("Data","thirddata","",pstr,512,path);
	if (strlen(pstr)!=0)
	{
		char f_data[512]={0};
		GetPrivateProfileString("Data","firstdata","",f_data,512,path);
		char s_data[512]={0};
		GetPrivateProfileString("Data","seconddata","",s_data,512,path);
		MsgHeader *msg=new SecondMsg(srs,des,f_data,atol(s_data),atol(pstr));
		return msg;
	}
	else
	{
		memset(pstr,0,512);
		GetPrivateProfileString("Data","data1","",pstr,512,path);
		int i=1;
		ThirdMsg *t_msg=new ThirdMsg(srs,des);
		if (strlen(pstr)!=0)
		{
			while(strlen(pstr)!=0)
			{
				memset(pstr,0,512);
				char n_data1[512]={0};
				sprintf(n_data1,"%s%d","data",i);
				i++;
				char n_data2[512]={0};
				sprintf(n_data2,"%s%d","data",i);
				i++;
				char n_data3[512]={0};
				sprintf(n_data3,"%s%d","data",i);
				i++;
				GetPrivateProfileString("Data",n_data1,"",n_data1,512,path);
				GetPrivateProfileString("Data",n_data2,"",n_data2,512,path);
				GetPrivateProfileString("Data",n_data3,"",n_data3,512,path);
				CData *p_data=new CData(n_data1,atoi(n_data2),atoi(n_data3));
				t_msg->AddData(p_data);
				sprintf(n_data1,"%s%d","data",i);
				GetPrivateProfileString("Data",n_data1,"",pstr,512,path);
			}
			MsgHeader *msg=dynamic_cast<MsgHeader*>(t_msg);
			return msg;
		}
		else
		{
			delete[] t_msg;
			char f_data[512]={0};
			GetPrivateProfileString("Data","firstdata","",f_data,512,path);
			char s_data[512]={0};
			GetPrivateProfileString("Data","seconddata","",s_data,512,path);
			MsgHeader *msg=new FirstMsg(srs,des,atoi(f_data),atoi(s_data));
			return msg;
		}
	}
}

⌨️ 快捷键说明

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