MFC读取文件中利用CFileDialog类打开文件,出现对话框后,点击取消出现问题
代码如下:CStringfileName;CFileDialogdlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"...
代码如下:
CString fileName;
CFileDialog dlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"TxT file(*.txt)|*.txt");
if (dlg.DoModal()==IDOK)
{
fileName=dlg.GetPathName();
}
CStdioFile myFile;
CFileException fileException;
int order=1;
double *pBuf;
pBuf=new double[order+100];
double nBuf;
if(myFile.Open(fileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeReadWrite),&fileException)
{
CString strContent;
while(myFile.ReadString(strContent))
{
nBuf=atof(strContent);
pBuf[order]=nBuf;
order=order+1;
}
UpdateData(TRUE);
m_Path=fileName;
m_Check=pBuf[9];
UpdateData(FALSE);
delete []pBuf;
pBuf=NULL;
}
else
{
TRACE("Can't open file");
}
myFile.Close();
点击取消出现问题: 展开
CString fileName;
CFileDialog dlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"TxT file(*.txt)|*.txt");
if (dlg.DoModal()==IDOK)
{
fileName=dlg.GetPathName();
}
CStdioFile myFile;
CFileException fileException;
int order=1;
double *pBuf;
pBuf=new double[order+100];
double nBuf;
if(myFile.Open(fileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeReadWrite),&fileException)
{
CString strContent;
while(myFile.ReadString(strContent))
{
nBuf=atof(strContent);
pBuf[order]=nBuf;
order=order+1;
}
UpdateData(TRUE);
m_Path=fileName;
m_Check=pBuf[9];
UpdateData(FALSE);
delete []pBuf;
pBuf=NULL;
}
else
{
TRACE("Can't open file");
}
myFile.Close();
点击取消出现问题: 展开
4个回答
展开全部
CString fileName;
CFileDialog dlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"TxT file(*.txt)|*.txt");
if (dlg.DoModal()==IDOK)
{
fileName=dlg.GetPathName();
}
之后加上一个判断,如:
if(fileName.IsNull)return;
CFileDialog dlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"TxT file(*.txt)|*.txt");
if (dlg.DoModal()==IDOK)
{
fileName=dlg.GetPathName();
}
之后加上一个判断,如:
if(fileName.IsNull)return;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
点击取消就是什么都不做 程序应该返回 在if(IDOK == )后加个else return;
追问
我用MFC把已有的两个数组里面的数据读入到新建的EXCEL表格的两列,怎么操作啊?
用的是MFC读取EXCEL的Automation,接口。有excel.h等两个函数。
我现在按照MFC中使用EXCEL方法及源码.,这篇文章,只能实现一列的输出,怎么实现两列的输出?
追答
这玩意儿百度一大把现成的 不再说了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用OLE的方式你想实现的是什么什么?双列读出?双列写入?
注意Range的成员函数GetValue2、SetValue2
注意Range的成员函数GetValue2、SetValue2
更多追问追答
追问
恩,就是的,我现在想的是多列输出,要用range[0].......range[7]吗,但是这是不是就要多个数组与之对应了啊?这是不是有点麻烦?
追答
Eg:
int i=2; //题标行一般不会写
while (i<=1000)
{
CString strIndex = "A"; //写第一列
strBuf.Format("%d",i);
strDanYuanGe = strIndex + strBuf;
range=sheet.GetRange(COleVariant(strDanYuanGe),COleVariant( strDanYuanGe)); //选中要操作的单元格
CString strWtire = "1";
range.SetValue2(COleVariant(strWtire));
strIndex = "B"; //写第二列
strBuf.Format("%d",i);
strDanYuanGe = strIndex + strBuf;
range=sheet.GetRange(COleVariant(strDanYuanGe),COleVariant( strDanYuanGe));
CString strWtire = "2";
range.SetValue2(COleVariant(strWtire));
i++;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fgets.c文件报了个警告错误,在代码第60行。警告意思是:你传入的str变量是空的,但实际要求str不为空。走读下fgets.c的执行情况吧。
追问
用的是MFC读取EXCEL的Automation,接口。有excel.h等两个函数。
我现在按照MFC中使用EXCEL方法及源码.,这篇文章,只能实现一列的输出,怎么实现两列的输出?
追答
Excel 的ATL接口里面有个Range接口,用它可以写多列数据。你可以查查它的用法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询