📄 membuffer.cpp
字号:
/*=========================================================
* File name : membuffer.cpp
* Description :
* Modify :
*=========================================================*/
#include "membuffer.h"
#include "memmgr.h"
membuffer::membuffer()
{
m_maxlen =m_curlen = 0;
m_pData = 0;
m_bFree = TRUE;
}
membuffer::membuffer(int len)
{
m_maxlen = len;
m_curlen = 0;
m_bFree = TRUE;
m_pData = MyMemAlloc(len);
Clear();
}
membuffer::membuffer(char *pBuf,int len)
{
m_maxlen =m_curlen = 0;
m_pData = 0;
m_bFree = FALSE;
}
membuffer::~membuffer()
{
Close();
}
void membuffer::Close()
{
if(m_pData&&m_bFree)
{
MyMemFree(m_pData);
m_pData = NULL;
}
if(m_bFree)
m_maxlen = 0;
m_curlen = 0;
}
void membuffer::Append(const char *data,int datalen)
{
if(data&&datalen>0)
{
int len = datalen+m_curlen;
if(len>m_maxlen)
{
// m_pData = (BYTE*)MyMemReAlloc(m_pData,len);
// BYTE *p = MyMemAlloc(len);
// memcpy(p,m_pData,m_curlen);
// MyMemFree(m_pData,m_maxlen);
// m_pData = p;
// ASSERT(m_pData);
datalen = m_maxlen - m_curlen;
len = m_maxlen;
}
memcpy(m_pData+m_curlen,data,datalen);
m_pData[len] = '\0';
m_curlen = len;
// ASSERT_MyMemBlock(m_pData,m_maxlen);
}
}
void membuffer::SetMaxLength(int maxlen)
{
Close();
m_maxlen = maxlen;
m_curlen = 0;
m_pData = MyMemAlloc(maxlen);
Clear();
}
void membuffer::SetBufLength(BYTE *pBuf,int maxlen)
{
Close();
m_pData = pBuf;
m_maxlen = maxlen;
m_bFree = FALSE;
Clear();
}
void membuffer::SetSpaceEnd()
{
if(m_pData==NULL)
return;
BYTE *p = (BYTE*)strchr((const char*)(m_pData), ' ' );
if(p)
{
*p = '\0';
m_curlen = p - m_pData;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -