难道真的没有高人了吗???
ma369 2003-06-13 08:38:59 最近写一个数据处理的程序,可是在定义变量和读数据是总是出错。程序如下:
var
Form1: TForm1;
type
TDataFile= packed record
...
ParNum:word;
SignalNum:word;
...
end;
type
data = packed record
Parvalue:=array of single;
V:=array of integer;
end;
var
DataIn:file;
a:TDataFile;
dd:data;
f:Ansistring;
procedure TForm1.OpenClick(Sender: TObject);
begin
OpenDialog.Title:='打开数据文件';
if OpenDialog.Execute then
begin
...
f:=OpenDialog.FileName;
AssignFile(datain, OpenDialog.FileName);
Reset(datain,1);
BlockRead(datain, a, SizeOf(a), NumRead);
...
CloseFile(datain);
end;
...
LoadData(GridData,SBar,Sender);
end;
procedure LoadData(GData:TStringGrid;SBar:TStatusBar;Sender:TObject);
var
i,k:integer;
begin
SetLength(dd.ParValue,a.ParNum);
SetLength(dd.v,a.SignalNum);
...
AssignFile(datain, f);
Reset(datain, 1);
seek(datain,sizeof(a));
...
BlockRead(datain,dd,sizeof(dd),NumRead);
...
GData.Cells[i+1,row]:=Format('%8.3f',[dd.ParValue[k]]);
...
CloseFile(datain);
end;
但是我把定义的数组设成固定值,一切就解决了。如下:
...
type
data = record
Parvalue:=array[0..200] of single;
V:=array[0..12] of integer;
end;
dd:data;
...
可是我需要的是变化的,为什末总是出错哪,帮帮我,绝对送分。。。
可参照http://expert.csdn.net/Expert/topic/1902/1902198.xml?temp=.1510584