有关读取文件的异常,请大家帮忙下
有关读取文件的错误,请大家帮忙下!
经过几天的挣扎,终于是把文件读取到了,CODING 如下:
CFileDialog l_SampleDlg(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT, "Text Files (*.txt)|*.txt|Comma Separated Values(*.csv)|*.csv|| ");
int iRet = l_SampleDlg.DoModal();
CString l_strFileName;
CString strText;
LPTSTR lpText;
l_strFileName = l_SampleDlg.GetPathName();
UINT Read( void* lpBuf, UINT nCount );
CFile cSplitFile ;
cSplitFile.Open(l_strFileName, CFile::modeRead);
int nFileLen = cSplitFile.GetLength();
static int position = 0;
int ret = cSplitFile.Read(lpText,nFileLen);
cSplitFile.Close();
m_Input = lpText;
UpdateData(FALSE);
if(iRet == IDOK)
MessageBox(l_strFileName);
else
MessageBox( "No File Selected! ");
}
可是问题出现了,读的时候会出现多余的奇怪字,例如:
phone number: 15921318209
phone number: 12
phone number: 14
phone number: 155
phone number: 1593 "刯辳 "----这两个字本来是没有的,但是现在居然出现了.
还有个问题就是,如果我读取的文件要比这个稳当短,那么,就只能覆盖掉那个长文件的一部分字,其他的还是保留,例如:
wahahahahahahahah21318209
phone number: 12
phone number: 14
phone number: 155
phone number: 1593刯辳
谁能帮我解决下呀,是不是CODING那里少了点啥?
------解决方案--------------------
lpText = new TCHAR[nFileLen]; //分配一下空间先
int ret = cSplitFile.Read(lpText,nFileLen);
...
delete[] lpText; //释放
lpText = NULL;
经过几天的挣扎,终于是把文件读取到了,CODING 如下:
CFileDialog l_SampleDlg(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT, "Text Files (*.txt)|*.txt|Comma Separated Values(*.csv)|*.csv|| ");
int iRet = l_SampleDlg.DoModal();
CString l_strFileName;
CString strText;
LPTSTR lpText;
l_strFileName = l_SampleDlg.GetPathName();
UINT Read( void* lpBuf, UINT nCount );
CFile cSplitFile ;
cSplitFile.Open(l_strFileName, CFile::modeRead);
int nFileLen = cSplitFile.GetLength();
static int position = 0;
int ret = cSplitFile.Read(lpText,nFileLen);
cSplitFile.Close();
m_Input = lpText;
UpdateData(FALSE);
if(iRet == IDOK)
MessageBox(l_strFileName);
else
MessageBox( "No File Selected! ");
}
可是问题出现了,读的时候会出现多余的奇怪字,例如:
phone number: 15921318209
phone number: 12
phone number: 14
phone number: 155
phone number: 1593 "刯辳 "----这两个字本来是没有的,但是现在居然出现了.
还有个问题就是,如果我读取的文件要比这个稳当短,那么,就只能覆盖掉那个长文件的一部分字,其他的还是保留,例如:
wahahahahahahahah21318209
phone number: 12
phone number: 14
phone number: 155
phone number: 1593刯辳
谁能帮我解决下呀,是不是CODING那里少了点啥?
------解决方案--------------------
lpText = new TCHAR[nFileLen]; //分配一下空间先
int ret = cSplitFile.Read(lpText,nFileLen);
...
delete[] lpText; //释放
lpText = NULL;