现有一系统不定时在同一目录下生成一批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;

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





