function TDataModule1.DatatoR(filename:string):integer;
var f:file ;
lb_array:array of byte;
Odata:byte;
Ddata,ddata1:integer;
i,index,jh:integer;
ad: array[0..15] of integer;
wd: array[0..15] of real;
wdoff:real;
size:longint;
begin
//size:=0;
assignfile(f,filename);
reset(f);
size:=filesize(f);
if size<10 then
begin
closefile(f);
result:=-1;
exit;
end;
setlength(lb_array,size);
blockread(f,lb_array,size);// read(f,odata);
index:=0;
jh:=lb_array[index];
inc(index); pdatat.open;
while not index<size do
begin
pdatat.append;
pdatat.FieldByName('date').asdatetime:=now;
pdatat.fieldbyname('jh').asinteger:=jh; ddata:=lb_array[index];
inc(index);
odata:=lb_array[index];
inc(index);
ddata:=ddata*32+odata+1;
pdatat.FieldByName('fxq').asinteger:=ddata;
for i:=0 to 15 do
begin
ddata1:=lb_array[index];
inc(index);
ddata:=lb_array[index];
inc(index); ddata:=(ddata shl 8)+ddata1;
ad[i]:=ddata;
linet.locate('ad',ad[i],[locaseinsensitive]); ad[i]:=ad[i]+linet.Fieldbyname('offset').asinteger-100;
wd[i]:=ad[i]-412;
wd[i]:=wd[i]/10;
end;
pdatat.FieldByName('p0').asfloat:=wd[0];
rtott.Locate('t',wd[0],[locaseinsensitive]);
wdoff:=1.206-rtott.fieldbyname('r').asfloat;
for i:=1 to 15 do
begin
rtott.Locate('t',wd[i],[locaseinsensitive]);
wd[i]:=rtott.fieldbyname('r').asfloat;
wd[i]:=wd[i]+wdoff;
rtott.SetKey;
rtott.FieldByName('r').asfloat:=wd[i];
rtott.GotoNearest;
wd[i]:=rtott.fieldbyname('t').asfloat;
pdatat.FieldByName('p'+inttostr(i)).asfloat:=wd[i];
end;
end;
closefile(f);
pdatat.Post;
pdatat.close;
result:=0;
end;
打开文件后的操作看不明白
var f:file ;
lb_array:array of byte;
Odata:byte;
Ddata,ddata1:integer;
i,index,jh:integer;
ad: array[0..15] of integer;
wd: array[0..15] of real;
wdoff:real;
size:longint;
begin
//size:=0;
assignfile(f,filename);
reset(f);
size:=filesize(f);
if size<10 then
begin
closefile(f);
result:=-1;
exit;
end;
setlength(lb_array,size);
blockread(f,lb_array,size);// read(f,odata);
index:=0;
jh:=lb_array[index];
inc(index); pdatat.open;
while not index<size do
begin
pdatat.append;
pdatat.FieldByName('date').asdatetime:=now;
pdatat.fieldbyname('jh').asinteger:=jh; ddata:=lb_array[index];
inc(index);
odata:=lb_array[index];
inc(index);
ddata:=ddata*32+odata+1;
pdatat.FieldByName('fxq').asinteger:=ddata;
for i:=0 to 15 do
begin
ddata1:=lb_array[index];
inc(index);
ddata:=lb_array[index];
inc(index); ddata:=(ddata shl 8)+ddata1;
ad[i]:=ddata;
linet.locate('ad',ad[i],[locaseinsensitive]); ad[i]:=ad[i]+linet.Fieldbyname('offset').asinteger-100;
wd[i]:=ad[i]-412;
wd[i]:=wd[i]/10;
end;
pdatat.FieldByName('p0').asfloat:=wd[0];
rtott.Locate('t',wd[0],[locaseinsensitive]);
wdoff:=1.206-rtott.fieldbyname('r').asfloat;
for i:=1 to 15 do
begin
rtott.Locate('t',wd[i],[locaseinsensitive]);
wd[i]:=rtott.fieldbyname('r').asfloat;
wd[i]:=wd[i]+wdoff;
rtott.SetKey;
rtott.FieldByName('r').asfloat:=wd[i];
rtott.GotoNearest;
wd[i]:=rtott.fieldbyname('t').asfloat;
pdatat.FieldByName('p'+inttostr(i)).asfloat:=wd[i];
end;
end;
closefile(f);
pdatat.Post;
pdatat.close;
result:=0;
end;
打开文件后的操作看不明白
解决方案 »
- Delphi插入海量数据问题
- 关于远程注入的小问题.....最高分求答.......................................................................
- 请问如何调用dll文件中的函数?
- 各位高手,请问如何使DELPHI的窗口不在任务栏显示???
- 帮忙分析一下代码有什么错误~~~~~~在线等~~~~~~~~~~~
- 关于BeginTrans锁表的问题!急!顶者有分!豁出去了,如果能够解决的话,在出2000分!
- 如何屏蔽memo控件中所有的鼠标事件
- 异常处理的问题。各位大哥来看看呗,我初学~~
- 我今天很伤感啊
- combo box有设置显示字符串对应值得地方吗?
- 我的一点疑问!我的一些构想!-------对校园信息管理系统感兴趣的朋友都来谈一下!
- 我是菜鸟!救救我!
var f:file ;//定义各种数据类型
lb_array:array of byte;
Odata:byte;
Ddata,ddata1:integer;
i,index,jh:integer;
ad: array[0..15] of integer;
wd: array[0..15] of real;
wdoff:real;
size:longint;
begin
//size:=0;
assignfile(f,filename);//打开文件
reset(f);
size:=filesize(f);//文件大小
if size<10 then//如果小于10,退出,返回-1
begin
closefile(f);
result:=-1;
exit;
end;
setlength(lb_array,size);//设置动态数组
blockread(f,lb_array,size);// read(f,odata);
index:=0;
jh:=lb_array[index];
inc(index); pdatat.open;//添加内容到数据库中
while not index<size do
begin
pdatat.append;
pdatat.FieldByName('date').asdatetime:=now;
pdatat.fieldbyname('jh').asinteger:=jh; ddata:=lb_array[index];
inc(index);
odata:=lb_array[index];
inc(index);
ddata:=ddata*32+odata+1;
pdatat.FieldByName('fxq').asinteger:=ddata;
for i:=0 to 15 do
begin
ddata1:=lb_array[index];
inc(index);
ddata:=lb_array[index];
inc(index); ddata:=(ddata shl 8)+ddata1;
ad[i]:=ddata;
linet.locate('ad',ad[i],[locaseinsensitive]); ad[i]:=ad[i]+linet.Fieldbyname('offset').asinteger-100;
wd[i]:=ad[i]-412;
wd[i]:=wd[i]/10;
end;
pdatat.FieldByName('p0').asfloat:=wd[0];
rtott.Locate('t',wd[0],[locaseinsensitive]);
wdoff:=1.206-rtott.fieldbyname('r').asfloat;
for i:=1 to 15 do
begin
rtott.Locate('t',wd[i],[locaseinsensitive]);
wd[i]:=rtott.fieldbyname('r').asfloat;
wd[i]:=wd[i]+wdoff;
rtott.SetKey;
rtott.FieldByName('r').asfloat:=wd[i];
rtott.GotoNearest;
wd[i]:=rtott.fieldbyname('t').asfloat;
pdatat.FieldByName('p'+inttostr(i)).asfloat:=wd[i];
end;
end;
closefile(f);
pdatat.Post;
pdatat.close;
result:=0;
end;
我觉得是用二进制的文件读一个文件把数据写到数据库中!具体什么的看起来的确是比较累!