最近在做个读文件的程序,请大家帮我看看程序有什么问题,烦躁ing。
这是个调用的函数,就在这里面出问题,我没打开一个新文件就调用这个函数
void TForm1::ReadDatFile(AnsiString FileName)
{
int iFor,jFor;
AnsiString sd;
sd = FileName;
if(sd == "..\\") return;
int i,j,k,n;
//新建链表
TStringList *myTitleList0[2];
TStringList *myTitleList1[2];
TStringList *myTitleList2[2];
TStringList *myNewList0[30];
TStringList *myNewList1[30];
TStringList *myNewList2[30];
for(int i=0; i<2; i++)
{
myTitleList0[i] = new TStringList;
}
for(int i=0; i<2; i++)
{
myTitleList1[i] = new TStringList;
}
for(int i=0; i<2; i++)
{
myTitleList2[i] = new TStringList;
}
int type;
type = ReadFirstNum(sd); //从dll中读取我要switch的类型,这里第二遍读数据的时候就会出问题Access Violation之类的
R0 = ReadNumFromFile(myTitleList0,sd,rf_OneTitle); //从dll中读取要new的个数
for(int i=0; i<R0; i++)
{
myNewList0[i] = new TStringList;
}
//添加数据
switch(type)
{
case 0:
ReadOneFromFile(myTitleList0,myNewList0,sd); //从dll中读取,并保存至链表
break;
case 1:
R1 = ReadNumFromFile(myTitleList1,sd,rf_TwoTitle);
for(int i=0; i<R1; i++)
{
myNewList1[i] = new TStringList;
}
ReadTwoFromFile(myTitleList0,myNewList0,myTitleList1,myNewList1,sd); //从文件读取,保存至链表
for(i=0; i<R1; i++)
{
delete myNewList1[i]; //这里也出问题 当i为R1-1的时候,access violation什么什么的
}
break;
default: break;
}
for(i=0; i<2; i++)
{
delete myTitleList0[i];
// myTitleList0[i] = NULL;
}
for(i=0; i<2; i++)
{
delete myTitleList1[i];
// myTitleList1[i] = NULL;
}
for(i=0; i<2; i++)
{
delete myTitleList2[i];
// myTitleList2[i] = NULL;
}
for(i=0; i<R0; i++)
{
delete myNewList0[i]; //这里出问题 当i为R0-1的时候,invalid pointer operation什么什么的
// myNewList0[i] = NULL;
}
DBGrid1->Visible = true;
}
我看了dll的说明 说要加memmgr.lib,我在dll和我的工程里面都加了,但是问题还是在
谢谢大家,希望大家帮忙看看