怎么读取以下文本中的数据到数据库中(100分)

  • 主题发起人 主题发起人 shadong
  • 开始时间 开始时间
S

shadong

Unregistered / Unconfirmed
GUEST, unregistred user!
开户银行(中文)中国银行甘棠办营业部
开户银行(英文)A

帐 户 对 帐 单
STATEMENT OF ACCOUNT

客户名称: 中华人民共和国财政部 出帐日期: 2006-06-29
Name Statement date
客户帐号: 727880000007262001 帐页编号: 06000005
Account No. Statement No.
客户地址: 北京 邮政编码: 001018
Address Post Number

货币: 001 人民币 上页余额: 1,348,700.00借
Currency CHINESERENMINBI Last Balance
--------------------------------------------------------------------------------------------------------------
记帐日期 传票套号 摘 要 起息日 发 生 额 余 额
Date Vch.No. Particulas Value Date Amount Balance
--------------------------------------------------------------------------------------------------------------
20060601 TFDI004101 20060601 50,000.00借 1,398,700.00借
--------------------------------------------------------------------------------------------------------------
本页余额: 1,398,700.00借
Balance
对帐单中如出现错误或遗漏情况,请于收到后的七日内通知我行,否则将视同此帐单无误。请妥善保管对帐单,并在
您的地址发生变更时,及时书面通知我行。
In case error or omission in this statemen,please notify this Bank within 7 days from above date,otherwise
this account shall be considered as correct. Please keep this statement for future reference and immediately
give written notice to this Bank,when your address is changed.


开户银行(中文)中国银行甘棠办营业部
开户银行(英文)A

帐 户 对 帐 单
STATEMENT OF ACCOUNT

客户名称: 中华人民共和国财政部 出帐日期: 2006-06-30
Name Statement date
客户帐号: 727880000007262001 帐页编号: 06000006
Account No. Statement No.
客户地址: 北京 邮政编码: 001018
Address Post Number

货币: 001 人民币 上页余额: 1,398,700.00借
Currency CHINESERENMINBI Last Balance
--------------------------------------------------------------------------------------------------------------
记帐日期 传票套号 摘 要 起息日 发 生 额 余 额
Date Vch.No. Particulas Value Date Amount Balance
--------------------------------------------------------------------------------------------------------------
20060630 TFDI000901 20060630 9,000.00借 1,407,700.00借
--------------------------------------------------------------------------------------------------------------
本页余额: 1,407,700.00借
Balance
对帐单中如出现错误或遗漏情况,请于收到后的七日内通知我行,否则将视同此帐单无误。请妥善保管对帐单,并在
您的地址发生变更时,及时书面通知我行。
In case error or omission in this statemen,please notify this Bank within 7 days from above date,otherwise
this account shall be considered as correct. Please keep this statement for future reference and immediately
give written notice to this Bank,when your address is changed.


开户银行(中文)中国银行甘棠办财会科
开户银行(英文)JX

帐 户 对 帐 单
STATEMENT OF ACCOUNT

客户名称: 中国外运九江公司 出帐日期: 2006-06-29
Name Statement date
客户帐号: 727801428308091001 帐页编号: 06000006
Account No. Statement No.
客户地址: 九江市庐山路96号 邮政编码: 332000
Address Post Number

货币: 001 人民币 上页余额: 46,239.87贷
Currency CHINESERENMINBI Last Balance
--------------------------------------------------------------------------------------------------------------
记帐日期 传票套号 摘 要 起息日 发 生 额 余 额
Date Vch.No. Particulas Value Date Amount Balance
--------------------------------------------------------------------------------------------------------------
20060612 TFE4002505 20060612 1,737.86借 44,502.01贷
20060621 TYAE001302 20060621 72.15贷 44,574.16贷
--------------------------------------------------------------------------------------------------------------
本页余额: 44,574.16贷
Balance
对帐单中如出现错误或遗漏情况,请于收到后的七日内通知我行,否则将视同此帐单无误。请妥善保管对帐单,并在
您的地址发生变更时,及时书面通知我行。
In case error or omission in this statemen,please notify this Bank within 7 days from above date,otherwise
this account shall be considered as correct. Please keep this statement for future reference and immediately
give written notice to this Bank,when your address is changed.

客户名称: 出帐日期: 客户帐号: 帐页编号: 客户地址: 邮政编码: 货币: 上页余额: 本页余额:
 
最后生成数据库格式为:
客户名称 出帐日期 客户帐号 帐页编号 客户地址 邮政编码 货币 上页余额 本页余额
 
晕,没有人来吗?
 
没有看懂...
 
这个文本不规范。不好读对应的信息写数据库
 
把txt读入一个stringlist中,然后慢慢分析并插入数据库.
 
一次读一条然后判断应该可以的,有人做出来了吗
 
一次读一条然后判断应该可以的,有人做出来了吗
 
你可以文本文件可以处理。首先你建好数据库和相应的表,定义文本内容和数据库表字段的对应关系。
然后需要仔细规定每一行的,从什么位置到什么位置放入数据库的相应字段。一个完整的对帐单的行数我看是相对固定的。这样就可以做到。
assignfile('text.txt',fp);
reset(fp);
repeat

//判断是否是一张表的开始
repeat
readln(fp,tstr);
until (copy(tstr,1,20)='开户银行(中文)中国')or eof(fp);
for i:=1 to 5 do //读入客户名称之前的无效数据的行。(我没有数, 好像是5行)
readln(fp,tstr);
readln(fp,tstr); //本行应该包含客户信息。。客户名称: 中国外运九江公司 出帐日期: 2006-06-29
SaveDataToDB('客户名称',copy(tstr,11,40)); //假设已经做了这样一个过程,保存对应字段到数据库
SaveDataToDB('处帐日期',copy(tstr,120,40)); //我没有数对应列是否是120.自己慢慢数吧。
readln(fp,tstr);
.......//就使用这样的方式,可以把到上页余额的信息全部读取出来。
//记帐数据肯能有多行,你需要判断什么地方结束。
repeat
readln(fp,tstr);
until pos('本页余额',tstr); //已经读到本页余额的位置.
SaveDataToDB('本页余额',copy(tstr,120,40)); //我没有数对应列是否是120.自己慢慢数吧。

// 到这里一张完整的数据已经载入数据库,循环直接下一张数据的载入...

until eof(fp);
 
建议以WORD文档形式导入数据到数据库,我作过这个.
您可以先将您的所要提取的数据在WORD里转换为表格的形式
这样就很好提取了
定义olevaraint类型的变量
var
doc,table,word : olevaraint;
temp1,temp2...,temp9:string;//存储“客户名称 出帐日期 客户帐号 帐页编号 客户地址 邮政编码 货币 上页余额 本页余额” 的变量
i,j:integer;
begin
//将WORD文件打开
for i:=1 to word.doc.tables.count do
begin
table:=word.doc.tables.item.text//对应您生成的WORD表格的各个cell的数据
for j:=1 to table.rows.count do
begin
temp1:=table.cell(j,1).text;
temp2:=table.cell(j,2).text;
.
.
temp9:=table.cell(j,9).text;
end;
//将所取出的变量值进行处理后插入数据库中
end;
end;
程序大概是这样,如果您需要更具体的可以发到我的信箱您的需求,必将全部奉上。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
后退
顶部