如何编程实现读入文本文件并将数据存入数据库中?(80分)

  • 主题发起人 主题发起人 cnnoah
  • 开始时间 开始时间
C

cnnoah

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是D7+sql2000,现在的数据是以文本的方式给出的,想通过编程实现自动读入文本
文件,再把其中的数值直接存入数据库的表中,请问如何实现?

 
附上这个文本文件:
Sample= TH
Axial Force= 5.000000E+0
Confining Pressure= 0.000000E+0
Pore Pressure= 0.000000E+0
Temperature= 2.200000E+1
Length= 4.854000E+4
Units= kN:MPa:mm:us:m/s:V:C
Date|Time= 4/26/102 - 8:56
Pore Fluid= Dry
Transducers= 25 mm - 1 MHz
Travel Time= 434
Wave= S1
Mode= S/R
Energy= 1
Gain= 20
RC Filter= Out
Vertical Scale= 2.000E-2
Horizontal Scale= 2.000E-8
Horizontal Delay= 6.400E-5 {以上几行的数据都是需要存入库中的,后面的需处理}
130
130
130
131
131
...
 
我只跟你说怎么读第一行,剩下的你自己写吧
var
RFile:TextFile;
str1:String;
ReadSample:string[7];//sample= 的字符个数
samplename:string[2];//TH的字符个数
begin
str1:=你的文本文件名(包括路径);
AssignFile(RFile,Str1);
Reset(RFile);
ReadLn(RFile,ReadSample,samplename);
// 现在readsmaple:=sample=,samplename=TH,如果不想要sample后的"="可以在上面读的时候
//加一个 char变量放到ReadSample和samplename中间,把"="单独拿出来

...
close(Rfile);
end;

 
看一看文本文件的读写方法用:

readln读取一行,然据根据自己个的情况判断是不是合你的需求,再写进数据库。

用eof控制是否文件读完。
 
to resun
是否有办法读一行后,通过判别=的位置,然后把名称和数值分开呢?
 
可以啊,但关键是你每一行都不一样长,有点麻烦
下面是读第一行
var
RFile:TextFile;
str1:String;
i:integer;
ReadSample:string;//
readresult:string;
ss:string;
// samplename:string[2];//TH的字符个数
begin
str1:='c:/a.txt';//换成你的文件名
AssignFile(RFile,Str1);
Reset(RFile);
ReadLn(RFile,ReadSample);
ss:='';
readresult:='';
for i:=1 to length(readsample) do
begin
if readsample='=' then break;
ss:=ss+readsample;
end;
for i :=length(ss)+2 to length(readsample) do
begin
readresult:=readresult+readsample;
end;

showmessage(ss);//sample
showmessage(readresult);//TH
closefile(Rfile);
end;
 
先把他全读进来,怎么处理,自己解决。
var
sl :TStringList;
begin
sl := TstringList.create;
sl.loadfromfile('你的文件路径和名称');
.
.
.
sl.free;
end;
 
to resun

3x
ss:=ss+readsample;//ss中是不是包含了=?,如果我不想带上=,是不是可以改成
ss:=ss+readsample[i-1];

 
没有包含=
你不要总是问啊,自己试一下就清楚了
 
太简单了把
 
多人接受答案了。
 
后退
顶部