if savedialog1.Execute then
begin
fn_s:= savedialog1.FileName;
if fileExists(fn_s) then
edit4.Text:= '文件已存在'
else
//fn_s:= savedialog1.FileName;
assignfile(F,fn_s);
rewrite(F);
edit4.Text:= fn_s; i:=1;
k:=1;
x[0]:= 0;
y[0]:= 0;
Inteval :=0;
frequency :=1;
P1:=0;
P2:=0;
Dtime:=5;
QueryPerformanceCounter(P1);
QueryPerformanceFrequency(frequency); while Inteval < TimerInteval do
begin
//pResultArr:= @buffer;
wantReadCount:= 2;
err:= ZT8319_AI(cardNO, pResultArr, wantReadCount);
edit1.Text:= inttostr(err);
result[k]:= buffer[1]; //力值
result[k+1]:= buffer[2]; //编码器输出
//for i:=1 to 1000 do
//begin
//edit2.Text:= inttostr(result[i]);
edit1.Text:= inttostr(err);
edit2.Text:= inttostr(result[k]);
edit3.Text:= inttostr(result[k+1]);
edit2.Refresh;
edit3.Refresh; x[i]:=x[i-1]+1;
y[i]:=result[k]; //k:显示力值; k+1:显示编码器输出;
MoveTo(x[i-1] mod ClientWidth,200-trunc(y[i-1]/50));
LineTo(x[i] mod ClientWidth,200-trunc(y[i]/50));
//k:=k+2;
//edit3.Text:= inttostr(y[i]);
//edit3.Refresh; {for j:=1 to 5000000 do
begin end;} Ddelay(Dtime);
write(F,result[k]:8);
QueryPerformanceCounter(P2);
Inteval:=round(1000*(P2-P1)/frequency);
edit5.Text:= inttostr(Inteval);
edit5.Refresh; k:=k+2;
i:=i+1;
//closefile(F);
end;
//filehandle:= filecreate(savedialog1.FileName);
//filewrite(filehandle,result,2000);
{ for i :=1 to 2000 do
write(F,result[i]:5);
//write(F, ); }
closefile(F);
ZT8319_CloseDevice(CardNO); end;我是一个新手,用QueryPerformanceCounter进行计时,在执行这段代码的时候Inteval总是在计数到5000~6000的时候出现I/O Error103,然后提示“0x0040377a”指令引用的“0x00f5260c”内存。该内存不能为“read”。runtime error 216 at 00040377A,不知道是出了什么错误,来这里请大家帮忙看看。谢谢
begin
fn_s:= savedialog1.FileName;
if fileExists(fn_s) then
edit4.Text:= '文件已存在'
else
//fn_s:= savedialog1.FileName;
assignfile(F,fn_s);
rewrite(F);
edit4.Text:= fn_s; i:=1;
k:=1;
x[0]:= 0;
y[0]:= 0;
Inteval :=0;
frequency :=1;
P1:=0;
P2:=0;
Dtime:=5;
QueryPerformanceCounter(P1);
QueryPerformanceFrequency(frequency); while Inteval < TimerInteval do
begin
//pResultArr:= @buffer;
wantReadCount:= 2;
err:= ZT8319_AI(cardNO, pResultArr, wantReadCount);
edit1.Text:= inttostr(err);
result[k]:= buffer[1]; //力值
result[k+1]:= buffer[2]; //编码器输出
//for i:=1 to 1000 do
//begin
//edit2.Text:= inttostr(result[i]);
edit1.Text:= inttostr(err);
edit2.Text:= inttostr(result[k]);
edit3.Text:= inttostr(result[k+1]);
edit2.Refresh;
edit3.Refresh; x[i]:=x[i-1]+1;
y[i]:=result[k]; //k:显示力值; k+1:显示编码器输出;
MoveTo(x[i-1] mod ClientWidth,200-trunc(y[i-1]/50));
LineTo(x[i] mod ClientWidth,200-trunc(y[i]/50));
//k:=k+2;
//edit3.Text:= inttostr(y[i]);
//edit3.Refresh; {for j:=1 to 5000000 do
begin end;} Ddelay(Dtime);
write(F,result[k]:8);
QueryPerformanceCounter(P2);
Inteval:=round(1000*(P2-P1)/frequency);
edit5.Text:= inttostr(Inteval);
edit5.Refresh; k:=k+2;
i:=i+1;
//closefile(F);
end;
//filehandle:= filecreate(savedialog1.FileName);
//filewrite(filehandle,result,2000);
{ for i :=1 to 2000 do
write(F,result[i]:5);
//write(F, ); }
closefile(F);
ZT8319_CloseDevice(CardNO); end;我是一个新手,用QueryPerformanceCounter进行计时,在执行这段代码的时候Inteval总是在计数到5000~6000的时候出现I/O Error103,然后提示“0x0040377a”指令引用的“0x00f5260c”内存。该内存不能为“read”。runtime error 216 at 00040377A,不知道是出了什么错误,来这里请大家帮忙看看。谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货