📄 msgheader.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 + -