📄 cb_fperson.cpp
字号:
#include "CB_Fperson.h"
#include "CB_String.h"
#include "CB_Unit.h"
#include "CB_Socket.h"
#include "Afx.h"
//##ModelId=40AEA6AD01FB
int CB_Fperson::instance(char *str, char *fileName)
{
int nRtn = 0;
FILE *pFile;
pFile = fopen(fileName,"r+");
PERSON person_src,person_dest;
int len = sizeof(PERSON);
strToStrt(str,&person_src);
int data_flag = 0;
char *pIndex_src,*pIndex_dest;
pIndex_src = person_src.index;
CB_Unit::trim(pIndex_src);
while(1==1)
{
if(fread(&person_dest,len,1,pFile)<1)
{
if(feof(pFile)!=0){
data_flag = 1;
break;
}else{
data_flag = 0;
break;
}
}
pIndex_dest= person_dest.index ;
CB_Unit::trim(pIndex_dest);
if( strcmp(pIndex_src,pIndex_dest) == 0)
{
data_flag = 2;
break;
}
}
char *pSend;
if(data_flag == 1)
{
strcpy(person_src.state,"1");
strcpy(person_src.affirm,"0");
if(fwrite(&person_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}else{
pSend = getSendDataNew(&person_src);
}
}else if(data_flag == 2){
int nState = atoi(person_dest.state);
int nAffirm= atoi(person_dest.affirm);
if(strcmp(person_src.name,person_dest.name)!=0 ||
strcmp(person_src.area,person_dest.area)!=0 ||
strcmp(person_src.linkman,person_dest.linkman)!=0 ||
strcmp(person_src.linkway,person_dest.linkway)!=0 )
{
if((nState==1) && (nAffirm==0))
{
strcpy(person_src.state,"1");
strcpy(person_src.affirm,"0");
pSend = getSendDataNew(&person_src);
}else if( (nState==1) && (nAffirm==1))
{
strcpy(person_src.state,"2");
strcpy(person_src.affirm,"0");
pSend = getSendDataUpdate(&person_dest,&person_src);
}else if( nState==2)
{
strcpy(person_src.state,"2");
strcpy(person_src.affirm,"0");
pSend = getSendDataUpdate(&person_dest,&person_src);
}
if(fseek(pFile,-len,SEEK_CUR)!=0)
{
nRtn = -1;
goto Stop;
}
if(fwrite(&person_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}
}else{ if(nAffirm == 0)
{
if(nState==1)
{
pSend = getSendDataNew(&person_src);
}else if(nState ==2){
pSend = getSendDataUpdate(&person_dest,&person_src);
}
}else{
goto Stop;
}
}
}
printf("pSend:%s\n",pSend);
if(isSocketEnable())
{
CB_Socket cSocket;
cSocket.initiaze();
char *rtn = NULL;
if(cSocket.send(pSend,rtn)<0)
{
nRtn = -1;
goto Stop;
}
strcpy(person_src.affirm,"1");
if(fseek(pFile,-len,SEEK_CUR)!=0)
{
nRtn = -1;
goto Stop;
}
if(fwrite(&person_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}
}
Stop:
fclose(pFile);
return nRtn;
}
//##ModelId=40AEA6AD02C3
void CB_Fperson::setSign(void *vPtr)
{
PERSON *person = (PERSON*)vPtr;
strcpy(person->lock,"0");
strcpy(person->state,"0");
strcpy(person->affirm,"0");
}
//##ModelId=40B2F621039B
char *CB_Fperson::getSendDataNew(PERSON *person)
{
CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));
strcpy(m_sendData,"0S+0+增");
strcat(m_sendData,"+");
strcat(m_sendData,person->name);
strcat(m_sendData,"+");
strcat(m_sendData,person->office);
strcat(m_sendData,"+");
strcat(m_sendData,person->area);
strcat(m_sendData,"+");
strcat(m_sendData,person->linkman);
strcat(m_sendData,"+");
strcat(m_sendData,person->linkway);
strcat(m_sendData,"+");
strcat(m_sendData,"1");
strcat(m_sendData,"+");
strcat(m_sendData,"E");
return m_sendData;
}
//##ModelId=40B2F6710133
char *CB_Fperson::getSendDataUpdate(PERSON * per_src, PERSON * per_dest)
{
CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));
strcpy(m_sendData,"0S+0+改");
strcat(m_sendData,"+");
strcat(m_sendData,per_dest->name);
strcat(m_sendData,"+");
strcat(m_sendData,per_dest->office);
strcat(m_sendData,"+");
strcat(m_sendData,per_dest->area);
strcat(m_sendData,"+");
strcat(m_sendData,per_dest->linkman);
strcat(m_sendData,"+");
strcat(m_sendData,per_dest->linkway);
strcat(m_sendData,"+");
strcat(m_sendData,per_src->name);
strcat(m_sendData,"+");
strcat(m_sendData,per_src->office);
strcat(m_sendData,"+");
strcat(m_sendData,per_src->area);
strcat(m_sendData,"+");
strcat(m_sendData,per_src->linkman);
strcat(m_sendData,"+");
strcat(m_sendData,per_src->linkway);
strcat(m_sendData,"+");
strcat(m_sendData,"1");
strcat(m_sendData,"+");
strcat(m_sendData,"E");
return m_sendData;
}
//##ModelId=4099FD0503D9
void CB_Fperson::setSocketEnable(bool b)
{
m_socket_enable = b;
}
//##ModelId=4099FF140188
bool CB_Fperson::isSocketEnable()
{
return m_socket_enable;
}
//##ModelId=40C857FC0190
int CB_Fperson::strToStrt(char *str, PERSON *person)
{
CB_String string;
string.split(str,',');
char *pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->index,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->name,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->office,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->area,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->linkman,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(person->linkway,pResult);
setSign(person);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -