MFC 编辑通过,但是运行的时候出错debug assertion failed
程序如下:CStringname;name.Format(_T("D:\\model\\%s.txt"),str_name);CStdioFilemyFile;CFile...
程序如下:
CString name;
name.Format(_T("D:\\model\\%s.txt"),str_name);
CStdioFile myFile;
CFileException fileException;
if(myFile.Open(name,CFile::typeText|CFile::modeReadWrite),&fileException)
{
myFile.SeekToBegin();
CString str91=_T("");
CString str92=_T("");
AfxMessageBox(name);//
while(myFile.ReadString(str91))
{
AfxMessageBox(str91);
str92+=str91;
str92+=_T("\n");
}
//获取主模板
myFile.Close();
AfxMessageBox(name);//
CStdioFile file;
CString str93;
str93.Format(_T("D:\\model\\%s.txt"),str_part);//实例的存放地址
file.Open(str93,CFile::modeCreate|CFile::modeReadWrite);
CString strsml1;
strsml1.Format(_T("select* from %s"),str_name);
rs.Open(CRecordset::dynaset,strsml1);
int abc=rs.GetODBCFieldCount();//获取列数
CODBCFieldInfo fieldinfo;
CString ads,str31,str32;
for(int i=1;i<abc;i++)
{
rs.GetODBCFieldInfo(i,fieldinfo);
ads=fieldinfo.m_strName;//列名
str31.Format(_T("$$%s"),ads);//$$A
str32=m_list.GetItemText(0,i);//尺寸值
str92.Replace(str31,str32);
}
rs.Close();//以上是尺寸值的替换
CString sql,sql1;
sql.Format(_T("select count(*) from dian_set where shunxu_id='%s'"),str_name);
rs.Open(CRecordset::dynaset,sql);
CString str50;
rs.GetFieldValue(short(0),str50);//获取测点数
int a1=_wtoi(str50.GetBuffer(str50.GetLength()));//测点数的int形式
CString str_part1;
str_part1=m_list.GetItemText(0,0);//零件名,ID
CString str51,str52,str53;
for(int d=1;d<a1+1;d++)
{
str51.Format(_T("n%d"),d);//n1,n2点数在主模板中的代码
str52.Format(_T("%d"),d);
str53=str_part1+_T("_")+str52;//shili_dian 中的列名
sql1.Format(_T("select gongchazhi,dianshu from shili_dian where dian_id='%s'"),str53);
rs.Open(CRecordset::dynaset,sql1);
CString str54,str55,str56,str57;
str56.Format(_T("$$value%s"),str52);//公差值1,公差值2 $$value1,$$value2
rs.GetFieldValue(short(0),str54);//公差值
rs.GetFieldValue(1,str55);//点数
str92.Replace(str51,str55);//修改点数
str92.Replace(str56,str54);//修改公差值
rs.Close();
}
file.WriteString(str92);//写入
}
主要功能是先打开一个在D:\model下存的文件,读取,然后替换里面的部分内容,新建一个txt文件,存入其中,可是出错了,我在另外的地方编辑是可以实现的。这里编辑没问题,运行就出错了,sql部分是没问题的。这里运行到myFile.SeekToBegin();就出错,后来我把myFile.SeekToBegin();删除,运行到myFile.ReadString(str91)又出错了,希望好心人能指导下,谢谢 展开
CString name;
name.Format(_T("D:\\model\\%s.txt"),str_name);
CStdioFile myFile;
CFileException fileException;
if(myFile.Open(name,CFile::typeText|CFile::modeReadWrite),&fileException)
{
myFile.SeekToBegin();
CString str91=_T("");
CString str92=_T("");
AfxMessageBox(name);//
while(myFile.ReadString(str91))
{
AfxMessageBox(str91);
str92+=str91;
str92+=_T("\n");
}
//获取主模板
myFile.Close();
AfxMessageBox(name);//
CStdioFile file;
CString str93;
str93.Format(_T("D:\\model\\%s.txt"),str_part);//实例的存放地址
file.Open(str93,CFile::modeCreate|CFile::modeReadWrite);
CString strsml1;
strsml1.Format(_T("select* from %s"),str_name);
rs.Open(CRecordset::dynaset,strsml1);
int abc=rs.GetODBCFieldCount();//获取列数
CODBCFieldInfo fieldinfo;
CString ads,str31,str32;
for(int i=1;i<abc;i++)
{
rs.GetODBCFieldInfo(i,fieldinfo);
ads=fieldinfo.m_strName;//列名
str31.Format(_T("$$%s"),ads);//$$A
str32=m_list.GetItemText(0,i);//尺寸值
str92.Replace(str31,str32);
}
rs.Close();//以上是尺寸值的替换
CString sql,sql1;
sql.Format(_T("select count(*) from dian_set where shunxu_id='%s'"),str_name);
rs.Open(CRecordset::dynaset,sql);
CString str50;
rs.GetFieldValue(short(0),str50);//获取测点数
int a1=_wtoi(str50.GetBuffer(str50.GetLength()));//测点数的int形式
CString str_part1;
str_part1=m_list.GetItemText(0,0);//零件名,ID
CString str51,str52,str53;
for(int d=1;d<a1+1;d++)
{
str51.Format(_T("n%d"),d);//n1,n2点数在主模板中的代码
str52.Format(_T("%d"),d);
str53=str_part1+_T("_")+str52;//shili_dian 中的列名
sql1.Format(_T("select gongchazhi,dianshu from shili_dian where dian_id='%s'"),str53);
rs.Open(CRecordset::dynaset,sql1);
CString str54,str55,str56,str57;
str56.Format(_T("$$value%s"),str52);//公差值1,公差值2 $$value1,$$value2
rs.GetFieldValue(short(0),str54);//公差值
rs.GetFieldValue(1,str55);//点数
str92.Replace(str51,str55);//修改点数
str92.Replace(str56,str54);//修改公差值
rs.Close();
}
file.WriteString(str92);//写入
}
主要功能是先打开一个在D:\model下存的文件,读取,然后替换里面的部分内容,新建一个txt文件,存入其中,可是出错了,我在另外的地方编辑是可以实现的。这里编辑没问题,运行就出错了,sql部分是没问题的。这里运行到myFile.SeekToBegin();就出错,后来我把myFile.SeekToBegin();删除,运行到myFile.ReadString(str91)又出错了,希望好心人能指导下,谢谢 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询