发信人: mengy (LEAR DLLS 命令时,将从内存中清除), 信区: BorlandDev
标 题: delphi中使用BDE的ASCII驱动数据库:
发信站: 哈工大紫丁香 (2001年03月13日18:41:59 星期二), 转信
使用BDE的ASCII驱动数据库: <<上一篇 下一篇>>
Delphi (包括所有使用BDE的工具) 具有使用ASCII文件当数据库表Table的
能力,能够转换数据值成固定长度格式或者使用逗号分隔的ASCII文件,能够使用
TTable元件显示。如何存取ASCII文件依赖于一个伴随的格式定义文件。这个格式
定义文件定义了分析这个ASCII文件成单条记录和字段的必要的信息。因为逗号分
隔的ASCII数据文件分析更加复杂,所以本文集中介绍这类文件。
格式定义文件
ASCII数据驱动的格式定义文件包含了定义文件类型(逗号分隔或者固定长
度)和定义字段。为了使程序能够知道格式定义文件,格式定义文件的文件名必须
与数据文件同名,并使用SCH为扩展名。其中定义的描述如下:
File name: 被一对方括号包含,这个设置定义ASCII文件的名称。数据文件的
扩展名必须为TXT。
Filetype 定义ASCII文件的结构。
FIXED 固定格式
VARYING 变化格式
Delimiter: 定义字符串的分隔符,通常为双引号
Separator 定义字段间的分隔符,通常为逗号
CharSet: 定义语言驱动程序,通常为ASCII
定义文件下部分为字段定义。ASCII文件的每一行都是一条记录。字段定义提供
BDE分配虚拟字段内存空间的信息。
字段定义的描述如下:
Field: 虚拟的字段名,总是以Field加一个整形数字。如Field1。第一个
Field为Field1。
Field name: 定义显示的字段名。
Field type: 定义数据的BDE类型。
名称 类型描述
CHAR 字符串
FLOAT 64位的浮点型
NUMBER 16为的整数
BOOL 逻辑型,为True或False
LONGINT 32位的整形
DATE 日期字段
TIME 时间字段
TIMESTAMP 日期+时间字段
(日期和时间格式为BDE设置中设置的格式.)
Data value length: 最大的字段长度。
Number of decimals: 适用于浮点数,定义小数点的位数
Offset: 描述起始位值
例如有一数据文件的第一字段为字符串,字段名为“Text”,最大长度为3个字符
,没有小数点(字符串类型总是没有小数点),并起始偏移量为0(因为是第一字段)
。所以定义如下:
Field1=Text,Char,3,00,00
下面是一个具有三个字段的格式定义文件,第一个字段为字符串,第二、三字段为
日期型字段,格式定义文件如下(ASCII文件名为DATES.TXT,所以SCH文件名为
DATES.SCH):
[DATES]
Filetype=VARYING
Delimiter="
Separator=,
CharSet=ascii
Field1=Text,Char,3,00,00
Field2=First Contact,Date,10,00,03
Field3=Second,Date,10,00,13
这个格式定义文件为逗号分隔的文件。注意计算偏移量和小数点的定义。
一个ASCII逗号分隔的文件的偏移量不再是ASCII文件中的真正偏移量,但是这
个长度参数将定义此字段的最大长度,并且有利于内存的管理。
实际上,如果你还有不太明白的地方,可以使用Database Desktop来创建一个
ASCII数据表,观察SCH文件的定义和ASCII文件的存储格式。
如果你熟练掌握ASCII数据库的应用,在实际的工作中有许多需要直接文件操
作的工作可以使用数据库来实现,减轻工作量和提高程序的稳定性。
翻译整理:傅贵
如果你有什么好的资料,可以寄给我哟:) <<回到首页 <<上一篇 下一篇>>
------------------------------------------------------------------------
--------
Delphi 技巧集
Copyright 1999.11 by 东子 Mail to me!
感谢广州视窗提供主页空间
--
大海无边天做岸
山登绝顶我为风
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.975毫秒