大概是array元素不够 a:array[1..5] of string; b:array[1..5] of real; 改大点看看 a:array[1..8] of string; b:array[1..8] of real;试
什么错 strtofload,写错了吧
你这样写应该是每错了: table1.Open; table1.first; i:=1; while not table1.Eof do begin a[i]:=table1.fieldbyname('kmdm').asstring; a[i]:=strtofload(table1.fieldbyname('kmdm').asstring); table1.Next; i:=i+1; end; if table1.eof then break; end;
大概是array元素不够 a:array[1..5] of string; b:array[1..5] of real; 改大点看看 a:array[1..8] of string; b:array[1..8] of real; 我试过了,不行。还是提示出错。
strtofload() 在内容为空时会有错!!! 麻烦改为 if table1.fieldbyname('kmdm').asstring == '' a[i]:=0 else a[i]:=strtofload(table1.fieldbyname('kmdm').asstring);
strtofload是什么?是不是strtofloat?
procedure TForm1.Button1Click(Sender: TObject); var a:array[1..5] of string; b:array[1..5] of real; i:integer; begin table1.Open; table1.first; i:=1; while not table1.Eof do begin a[i]:=table1.fieldbyname('kmdm').asstring; a[i]:=strtofload(table1.fieldbyname('kmdm').asstring); table1.Next; i:=i+1; end; table1.next; end;
procedure TForm1.Button1Click(Sender: TObject); var a:array[1..5] of string; b:array[1..5] of real; i:integer; begin table1.Open; table1.first; i:=1; while not table1.Eof do begin if not table1.fieldbyname('kmdm').IsNull then a[i]:=table1.fieldbyname('kmdm').asstring; if not table1.fieldbyname('kmdm').IsNull then b[i]:=strtofloat(table1.fieldbyname('kmdm').asstring); table1.Next; i:=i+1; end; end;
procedure TForm1.Button1Click(Sender: TObject); var a:array of string; //定义变长 b:array of real; i:integer; begin table1.Open; table1.first; if table1.recordcount>0 then for i:=0 to table1.recordcount-1 do begin a[i]:=table1.fieldbyname('kmdm').asstring; b[i]:=strtofloat(table1.fieldbyname('kmdm').asstring); table1.Next; i:=i+1; end; end;
a:array[1..5] of string;
b:array[1..5] of real;
改大点看看
a:array[1..8] of string;
b:array[1..8] of real;试
strtofload,写错了吧
table1.Open;
table1.first;
i:=1;
while not table1.Eof do
begin
a[i]:=table1.fieldbyname('kmdm').asstring;
a[i]:=strtofload(table1.fieldbyname('kmdm').asstring);
table1.Next;
i:=i+1;
end;
if table1.eof then
break;
end;
a:array[1..5] of string;
b:array[1..5] of real;
改大点看看
a:array[1..8] of string;
b:array[1..8] of real;
我试过了,不行。还是提示出错。
如果是空则转换会出错
strtofload应为strtofloat
另我的是strtofloat,写急了一点对不起。
procedure TForm1.Button1Click(Sender: TObject);
var flt:real;
str:string;
begin
str:=Edit1.text;
flt:=strtofloat(str);
Edit2.text:=floattostr(flt);
end;
按这个把table1.fieldbyname('kmdm').asstring的5个值一一填入
第一个edit,第二个就出来转换结果
跳错的话就是转换错了,
修改的时候在转换前加一句
tmp_str:=table1.fieldbyname('kmdm').asstring;
if tmp_str='' then
tmp_str:='0';
****a[i]****:=strtofload(table1.fieldbyname('kmdm').asstring);
改为
****b[i]****:=strtofload(table1.fieldbyname('kmdm').asstring);
另外,数据溢出也没考虑
a[i]:=strtofloat(table1.fieldbyname('kmdm').asstring.trim());
在内容为空时会有错!!!
麻烦改为
if table1.fieldbyname('kmdm').asstring == ''
a[i]:=0
else
a[i]:=strtofload(table1.fieldbyname('kmdm').asstring);
var
a:array[1..5] of string;
b:array[1..5] of real;
i:integer;
begin
table1.Open;
table1.first;
i:=1;
while not table1.Eof do
begin
a[i]:=table1.fieldbyname('kmdm').asstring;
a[i]:=strtofload(table1.fieldbyname('kmdm').asstring);
table1.Next;
i:=i+1;
end;
table1.next;
end;
var
a:array[1..5] of string;
b:array[1..5] of real;
i:integer;
begin
table1.Open;
table1.first;
i:=1;
while not table1.Eof do
begin
if not table1.fieldbyname('kmdm').IsNull then
a[i]:=table1.fieldbyname('kmdm').asstring;
if not table1.fieldbyname('kmdm').IsNull then
b[i]:=strtofloat(table1.fieldbyname('kmdm').asstring);
table1.Next;
i:=i+1;
end;
end;
var
a:array of string; //定义变长
b:array of real;
i:integer;
begin
table1.Open;
table1.first;
if table1.recordcount>0 then
for i:=0 to table1.recordcount-1 do
begin
a[i]:=table1.fieldbyname('kmdm').asstring;
b[i]:=strtofloat(table1.fieldbyname('kmdm').asstring);
table1.Next;
i:=i+1;
end;
end;