16,472
社区成员
发帖
与我相关
我的任务
分享
void FMLogicName::OpenLogicNameFile()
{
CString strFileName;
CStdioFile file;
CFileDialog savedlg(true,
_T("csv"),
_T(""),
OFN_OVERWRITEPROMPT|OFN_CREATEPROMPT,
_T("CSV Files (*.csv)|*.csv")
,NULL);
if (savedlg.DoModal() == IDOK)
{
strFileName = savedlg.GetPathName();
if (!file.Open (strFileName,CFile::modeReadWrite | CFile::typeText))
{
MessageBox(_T("文件被打开"),"FM Radio",MB_ICONWARNING);
return;
}
else
{
CString szFilePath = _T("FM Radio,,");
CString strline;
file.ReadString(strline);
if(strline != szFilePath)
{MessageBox(_T("不是FM Radio文件"),"FM Radio",MB_ICONWARNING);return;}
file.ReadString(strline);
file.ReadString(strline);
file.ReadString(strline);
file.ReadString(strline);
while(file.ReadString(strline))
{
int nIndex = m_listctrl1.GetItemCount();
int comma[2];
int k=0;
for(int i=0; i<strline.GetLength(); i++)
{
if(strline[i]==','){comma[k]=i;k++;}
}
CString str1,str2,cnum,RowNo;
if(nIndex<9)RowNo.Format("00%d",nIndex+1);
else if(nIndex<99)RowNo.Format("0%d",nIndex+1);
else RowNo.Format("%d",nIndex+1);
LPSTR pnum = (LPSTR)(LPCSTR)RowNo;
for(int i=comma[0]+1; i<comma[1]; i++)str1+=strline[i];
LPSTR pstr1 = (LPSTR)(LPCSTR)str1;
for(int i=comma[1]+1; i<strline.GetLength(); i++)str2+=strline[i];
LPSTR pstr2 = (LPSTR)(LPCSTR)str2;
LV_ITEM lvitemAdd = {0};
lvitemAdd.mask = LVIF_TEXT;
lvitemAdd.iItem = nIndex ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText = pnum;
if (m_listctrl1.InsertItem(&lvitemAdd) != -1)
{
LV_ITEM lvitem1 = {0};
lvitem1.mask = LVIF_TEXT;
lvitem1.iItem = nIndex ;
lvitem1.iSubItem = 1;
lvitem1.pszText = pstr1;
LV_ITEM lvitem2 = {0};
lvitem2.mask = LVIF_TEXT;
lvitem2.iItem = nIndex ;
lvitem2.iSubItem = 2;
lvitem2.pszText = pstr2;
m_listctrl1.SetItem(&lvitem1);
m_listctrl1.SetItem(&lvitem2);
}
}
}
file.Close();
}
}
if (!CheckBytes(pbData(pHead) + pHead->nDataSize, _bNoMansLandFill, nNoMansLandSize))
{
if (pHead->szFileName)
{
_RPT5(_CRT_ERROR, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
"CRT detected that the application wrote to memory after end of heap buffer.\n"
_ALLOCATION_FILE_LINENUM,
szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
pHead->lRequest,
(BYTE *) pbData(pHead),
pHead->szFileName,
pHead->nLine);//debug的中断点在这行
}
else
{
_RPT3(_CRT_ERROR, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
"CRT detected that the application wrote to memory after end of heap buffer.\n",
szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
pHead->lRequest,
(BYTE *) pbData(pHead));
}
}