#pragma once
|
|
class CStringRawItem
|
{
|
public:
|
CStringRawItem()
|
{
|
m_pstrName = NULL;
|
m_nNameLen = 0;
|
m_bIsEnd = FALSE;
|
}
|
|
~CStringRawItem()
|
{
|
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;
|
//m_pstrName[0] = '*';
|
}
|
|
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
|
{
|
public:
|
CStringRawData()
|
{
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
}
|
|
CStringRawData(const CStringRawData& rhs)
|
{
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
if (this != &rhs)
|
{
|
SetLength(rhs.m_nDataLen-1);
|
strcpy_s(m_pstrData,rhs.m_nDataLen, rhs.m_pstrData);
|
}
|
}
|
|
~CStringRawData()
|
{
|
if (m_pstrData)
|
delete [] m_pstrData;
|
m_pstrData = NULL;
|
m_nDataLen = 0;
|
}
|
|
CStringRawData& operator=(const CStringRawData& 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)
|
{
|
if (!m_pstrData)
|
return FALSE;
|
|
int nLen = (int) strlen(strData);
|
|
if (nLen >= m_nDataLen)
|
{
|
m_pstrData[0] = ' ';
|
return FALSE;
|
}
|
|
for (int i = 0; i < (int)strlen(strData); i++)
|
m_pstrData[i] = strData[i];
|
|
return TRUE;
|
}
|
|
BOOL SetData(int nData)
|
{
|
if (!m_pstrData)
|
return FALSE;
|
|
char str[14] = {0, };
|
sprintf_s(str, "%d", nData);
|
|
if ((int)strlen(str) >= m_nDataLen)
|
{
|
for (int i = 0; i < m_nDataLen-1; i++)
|
m_pstrData[i] = '9';
|
return FALSE;
|
}
|
|
for (int i = 0; i < (int)strlen(str); i++)
|
m_pstrData[i] = str[i];
|
|
return TRUE;
|
}
|
|
BOOL SetData(double dData)
|
{
|
if (!m_pstrData)
|
return FALSE;
|
|
char str[14] = {0, };
|
sprintf_s(str, "%2.3f", dData);
|
|
if ((int)strlen(str) >= m_nDataLen)
|
{
|
for (int i = 0; i < m_nDataLen-1; i++)
|
m_pstrData[i] = '9';
|
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;
|
}
|
|
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;
|
};
|
|
struct SRawFile
|
{
|
SRawFile()
|
{
|
Reset();
|
}
|
|
void Reset()
|
{
|
dWriteTime = 0.0;
|
strFileName = _T("");
|
}
|
|
double dWriteTime;
|
CString strFileName;
|
};
|
typedef std::vector<SRawFile> VectorSRawFile;
|
typedef std::vector<SRawFile>::iterator VectorSRawFileIt;
|