delphi实现批量读取格式有规律的文本文件的内容.

本文介绍了如何使用Delphi通过设置Memo的Delimiter特性来批量读取具有固定格式的CSV文本文件,并将其内容拆分成多列导入数据库。通过创建一个带参数的过程,实现了读取文件、解析数据和执行SQL插入的流程,从而提高系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现有一系统不定时在同一目录下生成一批txt文件,内容大概如下;

      20100112_164910,6,81406392,808,113,,

 

为方便统计,需要将这些txt文件中的数据读入数据表中.

现有两种方法:

   一是直接将数据读入到数据表中的某一列中,再用sql 语句拆开成几列: 

       20100112_164910   6     81406392      808         113

  二是在导入时就将其拆开成几列分别导入到各列中

 

如果第二种方法可以实现,那么对于系统的性能将会是一个很大的帮助.

下面介绍我的做法,可能是最笨重的一种,欢迎大家提出更好的方法.

 

   核心方法是调用memo的Delimiter特性. 若把Delimiter的值设为",",那么使用DelimitedText属性可得到由","分开的几行.

需要两个memo,第一个memo将文档中的内容读入,第二个memo将第一个memo中的内容分解成几行.

如上面的例子就会变成:

20100112_164910 

6

81406392

808

113

 

接下来的事情就变得比较简单了.当然这里面循环是肯定少不了的了.

下面是全部代码:

第一步:新建一个带参数的过程: 参数是文件名

var
    F:text; 

procedure TForm1.Insert(FileName:string);
var
  s: string;
  i:integer;
begin
  AssignFile(F,FileName); //将文件的内容读到F中
  Reset(F);
  Memo1.Clear;
  while not Eof(F) do

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值