手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi控件的拿来主义(二)

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

这个例子是关于如何将一个文本数据导入导出控件作一些简单的修改之后拿来使用的。

◆程序功能

将图书馆的ISO文件中的部分数据转到Oracle8数据库中。

◆设计要求

1.显示导入进度条。

2.在导入过程中,如果某条纪录导入失败,不显示异常,而将导入失败的纪录记入日志。

◆设计思路

程序的关键在文本数据字段的分离。通常的做法,都是先将字符串进行处理(RegulateString),然后把串中每个字符同分割符(可以是空格,逗号等)比较,将不是分割符的字符追加到一个串中(GetRecordItem),得到一个字段的内容。通过一个循环(循环次数由GetItemNum来定),就可以将一个字符串分成几个字段。最后的工作就是将分离出来的数据对号入座加入数据库.

按照上面的思路,利用Delphi提供的已有函数和过程,实现起来应该不难,但问题是,我可不想每次编文本导入程序的时候,都把什么这啊那的函数过程重新定义一遍,哎,最烦的就是重复性的工作了.那么有没有现成的控件将上述过程都封装起来呢?PS:又不用我编呢?

答案是肯定的!前几天刚刚下了一个免费控件TPgCSV,据说可以实现文本的导入和导出.翻出来一看,正是我想要的.

在深入到下面的内容之前,有必要对该控件的类声明部分作一定了解

(经作者Khashayar Sadjadi(khashi@pragena.8m.com)同意发表):

//中文部分为笔者所作的注释

//注意:

//在该控件中,Export代表将文本数据导入到数据库,Import代表从数据库导出到文本。??? 怎么和我理解的

//导入导出概念刚好是反的 :)

type

//在处理数据产生异常时,可选择继续还是中止

TPgCSVErrorResponse = (pgcsvAbort, pgcsvIgnore);

//进程监控事件声明,可以将导入/导出的进度作为参数传出

TPgCSVProgressEvent = procedure (Sender : TObject; AProgress: LongInt; var StopIt: Boolean) of object;

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!