大家帮忙看看这段代码,编译时老是说address violate ....
ff:textfile;
fname:string;
textarray:array of string;
ss:string;procedure openf();
begin
assignfile(ff,fname);
readln(ff,ss);
setlength(textarray,2);
textarray[0]:='first thing';
textarray[1]:='second thing';
form1.memo1.text:=ss+textarray[0]+textarray[1];
closefile(ff);
end;在form1.creat中写道:
begin
fname:='1.txt';
memo1.text:=textarray[0];
end;在btton1的onclick中写道:
begin
opendlg.excecute;
fname:=extractfilename(opendlg.filename);
openf;
end;
通过openf过程两次改变了textfile数组的大小,但是总是报错,为什么?
ff:textfile;
fname:string;
textarray:array of string;
ss:string;procedure openf();
begin
assignfile(ff,fname);
readln(ff,ss);
setlength(textarray,2);
textarray[0]:='first thing';
textarray[1]:='second thing';
form1.memo1.text:=ss+textarray[0]+textarray[1];
closefile(ff);
end;在form1.creat中写道:
begin
fname:='1.txt';
memo1.text:=textarray[0];
end;在btton1的onclick中写道:
begin
opendlg.excecute;
fname:=extractfilename(opendlg.filename);
openf;
end;
通过openf过程两次改变了textfile数组的大小,但是总是报错,为什么?
在readln前加上
reset(ff);
也就是说,有reset(ff)照样出错。
这前面是不是又漏了一句?
setlength(textarray,1);
请大家来找bug,谢谢!
ff:textfile;
fname:string;
textarray:array of string;
ss:string;procedure openf();
begin
assignfile(ff,fname);
reset(ff);
readln(ff,ss);
setlength(textarray,2);
textarray[0]:='first thing';
textarray[1]:='second thing';
form1.memo1.text:=ss+textarray[0]+textarray[1];
closefile(ff);
end;在form1.creat中写道:
begin
fname:='1.txt';
openf;
end;
textarray:array of variant;
还有rwdx(任我独行)说的我也回去一试!