📄 csvfile.cpp
字号:
#include "stdafx.h"
#include "CsvFile.h"
/******************************************************************************
******************************************************************************/
CCsvFile::CCsvFile(LPSTR lpszFileName)
{
Initialize(lpszFileName);
}
/******************************************************************************
******************************************************************************/
CCsvFile::CCsvFile(CString& strFileName)
{
Initialize(strFileName.GetBuffer(0));
}
/******************************************************************************
******************************************************************************/
void CCsvFile::Initialize(LPSTR lpszFileName)
{
m_dwNumberOfRecords = 0;
ASSERT(lpszFileName != NULL);
ASSERT(AfxIsValidString(lpszFileName));
if (CCsvFile::FileExists(lpszFileName))
{
if (Open(lpszFileName, CFile::modeRead))
{
m_dwNumberOfRecords = LoadRecords();
}
}
}
/******************************************************************************
******************************************************************************/
CCsvFile::~CCsvFile()
{
CCsvRecord* pCsvRecord;
for (int i = m_CsvRecordArray.GetUpperBound(); i > -1; i--)
{
pCsvRecord = m_CsvRecordArray[i];
m_CsvRecordArray.RemoveAt(i);
ASSERT(pCsvRecord);
if (pCsvRecord)
{
delete pCsvRecord;
}
}
VERIFY(0 == m_CsvRecordArray.GetSize());
}
/******************************************************************************
******************************************************************************/
DWORD CCsvFile::LoadRecords()
{
m_dwNumberOfRecords = 0;
CCsvRecord* pCsvRecord;
CString strRecord;
while (ReadString(strRecord))
{
pCsvRecord = new CCsvRecord(strRecord.GetBuffer(0));
ASSERT(pCsvRecord);
if (pCsvRecord)
{
m_CsvRecordArray.Add(pCsvRecord);
}
strRecord.ReleaseBuffer();
}
return m_CsvRecordArray.GetSize();
}
/******************************************************************************
******************************************************************************/
UINT CCsvFile::GetStartPosition()
{
UINT uiPosition;
if (0 < m_CsvRecordArray.GetSize())
{
uiPosition = 0;
}
else
{
uiPosition = CCsvFile::EndOfFile;
}
return uiPosition;
}
/******************************************************************************
******************************************************************************/
void CCsvFile::GetNextAssoc(UINT& uiPosition, CCsvRecord** ppCsvRecord)
{
UINT uiNewPosition = CCsvFile::EndOfFile;
*ppCsvRecord = NULL;
UINT nRecords = m_CsvRecordArray.GetSize();
if (uiPosition >= 0 && uiPosition <= (nRecords - 1))
{
*ppCsvRecord = m_CsvRecordArray[uiPosition];
if ( (uiPosition + 1) <= (nRecords - 1) )
{
uiNewPosition = uiPosition + 1;
}
}
uiPosition = uiNewPosition;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -