c++修改,原讀寫.dat改讀寫.csv
200元
文字處理軟件開發(fā)
需求類型
vs c++ 2003或2005寫的代碼,***里面讀寫 .dat 格式的文本文件。 現(xiàn)在要求改成 讀寫.csv文件
代碼。 就改下面兩個函數(shù):
void CMyDlg::save(void)
{
CFile file(_T("cfg2.dat"),CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file,CArchive::store);
std::map<DATA_KEY, DPC*>::iterator itr1 = m_map.begin();
for( ; itr1 != m_map.end(); ++itr1 )
{
DPC* pDpc = itr1->second;
ar.Write(&pDpc->m_bEnable, 4);
ar.Write(&pDpc->m_type, 4);
ar.Write(&pDpc->m_nCurMarket, 2);
ar.Write(&pDpc->m_fPriceRatio, 4);
ar.Write(&pDpc->m_nTimeSub, 4);
ar.Write(&pDpc->m_nTimeArea, 4);
int nStrLen = pDpc->m_CodeId.GetLength();
ar.Write(&nStrLen, 4);
ar.Write((LPCSTR)pDpc->m_CodeId, nStrLen);
}
}
--------------------------------------------------------------------
void CMyDlg::load(void)
{
CFile file(_T("cfg2.dat"),CFile::modeRead);
CArchive ar(&file,CArchive::load);
char buf[2048];
memset(buf, 0, sizeof(buf));
while(true)
{
BOOL bEnable;
DPC_TYPE type;
WORD nCurMarket; //市場類型
float fPriceRatio; //比值
int nTimeSub; //時間差
int nTimeArea; //時間范圍
int nStrLen;
CString CodeId; //編號
memset(buf, 0, sizeof(buf));
if( ar.Read(&bEnable, 4) < 4)
{
break;
}
if(ar.Read(&type, 4)<4)
{
break;
}
if(ar.Read(&nCurMarket, 2)<2)
{
break;
}
if(ar.Read(&fPriceRatio, 4)<4)
{
break;
}
if(ar.Read(&nTimeSub, 4)<4)
{
break;
}
if(ar.Read(&nTimeArea, 4)<4)
{
break;
}
if(ar.Read(&nStrLen, 4)<4)
{
break;
}
if(ar.Read(buf, nStrLen)< nStrLen)
{
break;
}
CodeId = buf;
DATA_KEY key;
key.m_DpcType = type;
key.nMarket = nCurMarket;
key.strCodeId = CodeId;
// DPC(CListBox& ListBox, BOOL bEnable, DPC_TYPE type, WORD Market, CString strCodeId, float priceRatio, int nTimeSub, int nTimeArea);
DPC * pDpc = new DPC(m_ListBox, bEnable, type, nCurMarket, CodeId, fPriceRatio, nTimeSub, nTimeArea);
m_map[key] = pDpc;
}
}
二次開發(fā)源碼交付
已完結(jié) 2023-03-03發(fā)布
招標(biāo)-按項目付費