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

📄 dataframe.cpp

📁 我的网络编程作业
💻 CPP
字号:
// DataFrame.cpp: implementation of the CDataFrame class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DataFrame.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDataFrame::CDataFrame()
{
	nFrameFlag='#';
}

CDataFrame::~CDataFrame()
{
	
}

void CDataFrame::WriteFrame(CString &fStr)
{
	
	if(fStr.GetLength()==0)
		return;
	
	int index=0;
	bool state=false;
	while(index<fStr.GetLength())
	{
		index=fStr.Find(nFrameFlag,index);	
		if(!state)		
		{
			fStr.Insert(index,nFrameFlag);
			index=index+2;
		}
		if(index==fStr.Find(nFrameFlag,index))
		{
			state=true;	
			index++;
		}
		if(fStr.Find(nFrameFlag,index)!=-1&&
			index!=fStr.Find(nFrameFlag,index))
		{
			state=false;
			index++;
		}
		if(fStr.Find(nFrameFlag,index)==-1)
		{
			break;
		}
	}
	
	int len=fStr.GetLength();
	CString str;
	str.Format("%c",len);
	fStr=nFrameFlag+fStr+str+nFrameFlag;
  
	return;
}

bool CDataFrame::ReadFrame(CString &fStr)
{
	
	if(fStr.GetLength()<=3)
		return false;
	
	
	if(fStr.Mid(0,1)!=nFrameFlag||
		fStr.Mid(fStr.GetLength()-1,1)!=nFrameFlag)
		return false;
	
	fStr.Delete(fStr.GetLength()-1,1);
	fStr.Delete(0,1);
	
	if((fStr.GetLength()-1)!=(int)fStr.GetAt(fStr.GetLength()-1))
		return  false;

	fStr.Delete(fStr.GetLength()-1);
		
	int index=0;
	bool state=false;
	while(index<fStr.GetLength())
	{
		index=fStr.Find(nFrameFlag,index);	
		if(!state)		
		{
			fStr.Delete(index);
		}
		if(index==fStr.Find(nFrameFlag,index))
		{
			state=true;	
			index++;
		}
		if(fStr.Find(nFrameFlag,index)!=-1&&
			index!=fStr.Find(nFrameFlag,index))
		{
			state=false;
			index++;
		}
		if(fStr.Find(nFrameFlag,index)==-1)
		{
			return true;
		}
	}
		
	return true;
}

void CDataFrame::SetFrameFlag(char nFrameFlag)
{
	this->nFrameFlag=nFrameFlag;
}

⌨️ 快捷键说明

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