请教!如何循环取三个顺序数据?(100分)(100分)

  • 主题发起人 主题发起人 zhengv
  • 开始时间 开始时间
Z

zhengv

Unregistered / Unconfirmed
GUEST, unregistred user!
如何取三个顺序数据?
三个一组循环取数据,然后判断是否需要的三个顺序数据。
procedure TForm1.Button1Click(Sender: TObject);
type
my=record
data:array[1..2] of Real;
end;
var
f:file of my;
my2:my;
A,B,C,x:Real;
begin
assignfile(f,'c:/1.dat');
reset(f);
while not eof(f) do
begin
read(f,my2);
x:=my2.data[1]/my2.data[2];
如何顺序取显示三个数据?
A:=x; //文件号1第一个数据
b:=x; //文件号2第二个数据
c:=x; //文件号3第三个数据
然后取下三个数据
A:=x; //文件号2第一个数据
b:=x; //文件号3第二个数据
c:=x; //文件号4第三个数据
然后取下三个数据
A:=x; //文件号3第一个数据
b:=x; //文件号4第二个数据
c:=x; //文件号5第三个数据
三个一组循环取数据
end;
closefile(f);
end;
上帝和你都能帮助我,上帝不在我身边只好求你了!
 
这个应该不难!
 
你不是有了思路,只要写出就行了
 
上帝和你都能帮助我,上帝不在我身边只好求你了!
 
还是没看懂到底要求什么。不会是想要这个吧?
while not eof(f) do
begin
read(f,my2);
x:=my2.data[1]/my2.data[2];
A:=x;
read(f,my2);
x:=my2.data[1]/my2.data[2];
B:=x;
read(f,my2);
x:=my2.data[1]/my2.data[2];
C:=x;
end;
 
照上面方法试了不行啊。俺太菜!
上帝和你都能帮助我,上帝不在我身边只好求你了!
 

procedure TForm1.Button2Click(Sender: TObject);
type
my=record
data:array[1..2] of Real;
end;
var
f:file of my;
my2:my;
i:integer;
A,B,C:Real;
begin
assignfile(f,'c:/1.dat');
reset(f);
i:=filesize(f);
showmessage(inttostr(i));

for i:=0 to filesize(f)-3 do
begin
seek(f,i);
read(f,my2);
a:=my2.data[1]/my2.data[2];

read(f,my2);
b:=my2.data[1]/my2.data[2];

read(f,my2);
c:=my2.data[1]/my2.data[2];
showmessage(formatfloat('0.###',a)+' '+formatfloat('0.###',b)+' '+formatfloat('0.###',c));

end;

closefile(f);
end;

 
zhengv,不懂意思,是在多个有着同样记录类型的文件中读取数据吗?
文件号1、2、3...是否代表了多个不同的文件呢?
 
谢谢大家!
 
后退
顶部