16,471
社区成员
发帖
与我相关
我的任务
分享
CStdioFile dstFile(cs->m_FileName, CFile::Create|CFile::modeWrite);
dstFile.WriteString(fileBuffer);
dstFile.Close();
int WriteData2File( CStuManageView *cs)
{
CString dataStr;
CString tempStr;
std::vector<int>::size_type iModify = 0;
std::vector<int>::size_type iDelete = 0;
std::vector<int>::size_type iAdd = 0;
std::vector<UINT32>::iterator iter;
CStdioFile srcFile(cs->m_FileName, CStdioFile::modeReadWrite);
// write 0xfffe at the beginning of the file, this makes Notepad reads Unicodes well
//WORD unicode_identifier = 0xfeff;
CString fileBuffer;
UINT32 LinesCount = 1;
while(srcFile.ReadString(dataStr))
{
if(LinesCount == 1)
{
;
}
for(iDelete = 0; iDelete != cs->m_DeleteLinesVec.size(); ++iDelete) //check the delete record
{
if(-1 != cs->m_DeleteLinesVec[iDelete])
{
if(LinesCount == cs->m_DeleteLinesVec[iDelete])
{
LinesCount += 1;
cs->m_DeleteLinesVec[iDelete] = -1;
goto endWhile;
}
}
}
for(iModify = 0 ; iModify != cs->m_ModifyLinesVec.size(); ++iModify) // check the modify record
{
if(-1 != cs->m_ModifyItemsVec[iModify])
{
if(LinesCount == cs->m_ModifyLinesVec[iModify])
{
tempStr.Format(_T("S:%d, %s, %d, %d, %d\r\n"), cs->StuVec.at(cs->m_ModifyItemsVec.at(iModify)).stuId, cs->StuVec.at(cs->m_ModifyItemsVec.at(iModify)).stuName, cs->StuVec.at(cs->m_ModifyItemsVec.at(iModify)).stuScoreCh,
cs->StuVec.at(cs->m_ModifyItemsVec.at(iModify)).stuScoreEh, cs->StuVec.at(cs->m_ModifyItemsVec.at(iModify)).stuScoreMh);
fileBuffer += tempStr;
LinesCount += 1;
cs->m_ModifyLinesVec[iModify] = -1;
cs->m_ModifyItemsVec[iModify] = -1;
goto endWhile;
}
}
}
dataStr += "\r\n";
fileBuffer += dataStr;
LinesCount += 1;
endWhile:
;
}
for(iAdd = 0; iAdd != cs->m_AddItemVec.size(); ++iAdd) //check the addition record
{
if(-1 != cs->m_AddItemVec[iAdd])
{
tempStr.Format(_T("S:%d,%s, %d, %d, %d\r\n"), cs->StuVec.at(cs->m_AddItemVec.at(iAdd)).stuId, cs->StuVec.at(cs->m_AddItemVec.at(iAdd)).stuName, cs->StuVec.at(cs->m_AddItemVec.at(iAdd)).stuScoreCh,
cs->StuVec.at(cs->m_AddItemVec.at(iAdd)).stuScoreEh, cs->StuVec.at(cs->m_AddItemVec.at(iAdd)).stuScoreMh);
cs->m_AddItemVec[iAdd] = 0;
fileBuffer += tempStr;
}
}
srcFile.Close();
CFile hFile(cs->m_FileName, CFile::modeWrite|CFile::typeBinary );
CArchive arStore(&hFile, CArchive::store);
arStore << fileBuffer;
arStore.Close();
hFile.Close();
//CString srcFileName = srcFile.GetFileName();
//CopyFile(tempFileName, srcFileName, false);
//remove(tempFileName); //remove the temp file.
return 1;
}