#pragma once
|
|
class CStringRawItem_B7
|
{
|
public:
|
CStringRawItem_B7()
|
{
|
m_pstrName = NULL;
|
m_nNameLen = 0;
|
m_bIsEnd = FALSE;
|
}
|
~CStringRawItem_B7()
|
{
|
if (m_pstrName)
|
delete [] m_pstrName;
|
m_pstrName = NULL;
|
m_nNameLen = 0;
|
}
|
void ResetString()
|
{
|
if (!m_pstrName || m_nNameLen < 1)
|
return;
|
|
for (int i = 0; i < m_nNameLen-1; i++)
|
m_pstrName[i] = 0x20;
|
m_pstrName[m_nNameLen-1] = NULL;
|
}
|
BOOL SetLength(int nLen)
|
{
|
m_nNameLen = nLen + 1;
|
if (m_pstrName)
|
delete [] m_pstrName;
|
m_pstrName = new char[m_nNameLen];
|
|
ResetString();
|
|
return TRUE;
|
}
|
int GetLength()
|
{
|
if (!m_pstrName)
|
return -1;
|
|
return m_nNameLen-1;
|
}
|
BOOL SetName(char* strName)
|
{
|
SetLength((int)strlen(strName));
|
|
if (!m_pstrName)
|
return FALSE;
|
|
for (int i = 0; i < (int)strlen(strName); i++)
|
{
|
if(strName[i] == 0x20) //" "
|
m_pstrName[i] = 0x5f; //"_"
|
else
|
m_pstrName[i] = strName[i];
|
}
|
|
return TRUE;
|
}
|
char* GetName()
|
{
|
return m_pstrName;
|
}
|
BOOL WriteToFileName(FILE *fp)
|
{
|
if (!fp || !m_pstrName)
|
return FALSE;
|
|
fprintf(fp, "%s", m_pstrName);
|
|
return TRUE;
|
}
|
protected:
|
char* m_pstrName;
|
int m_nNameLen;
|
BOOL m_bIsEnd;
|
};
|
|
class CStringRawData_B7
|
{
|
public:
|
CStringRawData_B7()
|
{
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
}
|
~CStringRawData_B7()
|
{
|
if (m_pstrData)
|
delete [] m_pstrData;
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
}
|
CStringRawData_B7(const CStringRawData_B7& rhs)
|
{
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
|
if (this != &rhs && rhs.m_nDataLen > 0)
|
{
|
SetLength(rhs.m_nDataLen - 1);
|
strcpy_s(m_pstrData,rhs.m_nDataLen, rhs.m_pstrData);
|
}
|
}
|
CStringRawData_B7& operator=(const CStringRawData_B7& rhs)
|
{
|
if (this != &rhs)
|
{
|
SetLength(rhs.m_nDataLen - 1);
|
strcpy_s(m_pstrData,rhs.m_nDataLen, rhs.m_pstrData);
|
}
|
return *this;
|
}
|
void ResetString()
|
{
|
if (!m_pstrData || m_nDataLen < 1)
|
return;
|
|
for (int i = 0; i < m_nDataLen - 1; i++)
|
m_pstrData[i] = 0x20;
|
m_pstrData[m_nDataLen - 1] = NULL;
|
}
|
BOOL SetLength(int nLen)
|
{
|
m_nDataLen = nLen + 1;
|
if (m_pstrData)
|
delete [] m_pstrData;
|
m_pstrData = new char[m_nDataLen];
|
|
ResetString();
|
|
return TRUE;
|
}
|
BOOL SetData(char* strData)
|
{
|
SetLength((int)strlen(strData));
|
|
if (!m_pstrData)
|
return FALSE;
|
|
for (int i = 0; i < (int)strlen(strData); i++)
|
{
|
if(strData[i] == 0x20) //" "
|
m_pstrData[i] = 0x5f; //"_"
|
else
|
m_pstrData[i] = strData[i];
|
}
|
|
return TRUE;
|
}
|
BOOL SetData(int nData)
|
{
|
char str[14] = {0, };
|
sprintf_s(str, "%d", nData);
|
|
SetLength((int)strlen(str));
|
|
if (!m_pstrData)
|
return FALSE;
|
|
for (int i = 0; i < (int)strlen(str); i++)
|
m_pstrData[i] = str[i];
|
|
return TRUE;
|
}
|
BOOL SetData(double dData)
|
{
|
char str[14] = {0, };
|
sprintf_s(str, "%2.3f", dData);
|
|
SetLength((int)strlen(str));
|
|
if (!m_pstrData)
|
return FALSE;
|
|
for (int i = 0; i < (int)strlen(str); i++)
|
m_pstrData[i] = str[i];
|
|
return TRUE;
|
}
|
char* GetData()
|
{
|
return m_pstrData;
|
}
|
int GetLength()
|
{
|
return m_nDataLen - 1;
|
}
|
BOOL WriteToFileData(FILE *fp)
|
{
|
if (!fp || !m_pstrData || m_nDataLen == 0)
|
return FALSE;
|
|
fprintf_s(fp, "%s", m_pstrData);
|
|
return TRUE;
|
}
|
BOOL WriteToFileData(CFile &fp)
|
{
|
if (!m_pstrData || m_nDataLen == 0)
|
return FALSE;
|
|
fp.Write(m_pstrData, m_nDataLen-1);
|
|
return TRUE;
|
}
|
protected:
|
char* m_pstrData;
|
int m_nDataLen;
|
};
|
|
|
#include <vector>
|
|
using namespace std;
|
|
typedef std::vector<CStringRawData_B7*> VectorStringB7RawData;
|
typedef std::vector<CStringRawData_B7*>::iterator VectorStringB7RawDataIt;
|
typedef std::vector<CStringRawData_B7*>::const_iterator constVectorStringB7RawDataIt;
|
|
class CB7RawData
|
{
|
public:
|
CB7RawData()
|
{
|
m_nLineIdx = 0;
|
}
|
virtual ~CB7RawData()
|
{
|
m_vecData.clear();
|
}
|
|
int m_nLineIdx;
|
VectorStringB7RawData m_vecData;
|
};
|
|
typedef std::vector<CB7RawData*> VectorB7Raw;
|
typedef std::vector<CB7RawData*>::iterator VectorB7RawIt;
|
typedef std::vector<CB7RawData*>::const_iterator constVectorB7RawIt;
|
|
class CVectorB7Raw : public VectorB7Raw
|
{
|
public:
|
CVectorB7Raw(){}
|
virtual ~CVectorB7Raw()
|
{
|
Delete();
|
}
|
|
void Delete()
|
{
|
VectorB7RawIt it;
|
CB7RawData *pNode;
|
for (it = begin(); it!=end(); it++)
|
{
|
pNode = (*it);
|
delete pNode;
|
}
|
clear();
|
}
|
};
|