PrettyText数据库0.01测试中

请看原文http://pretty.xwsm.net

PrettyText 自由软件 for windows/linux/MacOS(gcc AND msvc)

The pretty operator for database !

作者简介:http://wiki.xxsyzx.com
作者主页: http://flash.xxsyzx.com

?
进入Pretty讨论区
如果你遇到技术问题,可以到讨论区中提出,我们会尽快帮你解决。
?

PrettyText0.01下载

CPrettyText操作类和事例

?

?

PrettyText0.01用户手册

目录

1.为什么要选择PrettyText

2.PrettyText存储格式

3.如何在程序中使用CPrettyText类

4.CPrettyText类成员函数

5.关注PrettyText发展

?

为什么要选择PrettyText

相信很多人都用过微软的Access或者MySQL来制作mdb数据库,用于软件和网站制作上。但是如果你的电脑上没有安装Microsoft Office Access或者其它数据库软件,你能够查看这些数据库里面的内容吗?当然不能,用记事本打开也是一大堆乱码。所以不得不去拿张光盘来安装Office了。

PrettyText是一种以文本形式存储在电脑上的一种数据库,当然他的出现并不是说他是以文本形式存储,可以直接用文本打开访问或修改数据。PrettyText对于程序员编程,拥有直观、方便、快捷的特点,很容易上手,而且很轻松地操作。也许你是一位对数据库编程很熟悉的程序员,专门去开发数据库软件,但你是否抱怨过没做一次软件都要去拷入一段很无聊的代码,就是连接数据库那个,而且还有SQL,很容易出错。但PrettyText比起上述,简单得多,打开数据库只要给出个路径就OK了。

PrettyText与众不同之处是它存储内容的内部结构是不定的,一般的数据库像mdb都有固定的存储结构。但PrettyText可以存储任意数据。PrettyText访问数据内容时候是采用路径形式,例如一个PrettyText数据库,里面有一个某公司的产品档案表Product,且每个产品都用一个固定的ID号来标识,例如A01,则访问该产品通过输入 “/Product/A01” 就可以获取相关信息。

当然,PrettyText目前仅是0.01版本,还没有具备一些搜索和排序功能,而且还未能应用到动态网站设计上(除了PrettyServer外)。但PrettyText以简单,快捷为主,拥有很高的扩展性和很强生命力。只要我们还有分毫动力,PrettyText将会做的更好!

?

PrettyText存储格式

下面是一个典型的PrettyText存储文件



Harry
24
English


Marry
32
Physics

?

你会发觉这很像HTML或者XML的格式,其实PrettyText也是参考了它们的设计。PrettyText没有固定的格式扩展名,通常为*.txt,便于通过记事本访问。

通过上面的一个PrettyText数据库的内容,我们可以看到,有许许多多的标记组成,<标记名>表示标记开始,表示标记结束,这是标记是一层包围一层的,最外层是,这在PrettyText数据库中是固定不可变的。再往内层就是,第三层是,而第三层中又包含了多个Teacher的信息记录,当然如果我们要获得Harry的老师档案,通过查找就可以得到了。

?

如何在程序中使用CPrettyText类

在本站下载了CPrettyText类之后,在你的源代码文件中包含CPrettyText.h头文件,你就可以使用该类来操作PrettyText数据库了。CPrettyText类在DEVCPP和VC6编译通过,可以在Linux或者Windows上使用。

例子:用CPrettyText类创建一个数据库,向其写入内容:

CPrettyText pt(“./mypt.txt”);
pt.Enter(“/Product/A01”);
pt.Contents(“Name”) = “家具设计软件”;
pt.Contents(“Description”) = “…”;
pt.Save();

例子:读出数据库中产品A01的名称,并且添加一条A02产品的记录

CPrettyText pt(“./mypt.txt”);
pt.Enter(“/Product/A01”);
cout<pt.Enter(“/Product/A02”); //这里可以写成 pt.Enter(“../A02”);
pt.Contents(“Name”) = “PrettyText”;
pt.Save(); //保存到文件

例子:查找学生名称为小龙的档案,并将其删除

CPrettyText pt(“./stu.txt”);
pt.Find(“Name”, “小龙”);
pt.Delete();

例子:删除A01产品

CPrettyText pt(“./mypt.txt”);
pt.Delete(“/Product/A01”);

例子:遍历所有产品,并且列出名称

CPrettyText pt(“./mypt.txt”);
pt.Enter(“/Product”);
if(pt.Child())
{
do
{
cout<<"Name:"<}while(pt.Next())
}

?

CPrettyText类成员函数

?

int IsBegin()

说明:判断在当前表中是否在第一个记录
参数:无
返回值:true表示在在第一个记录处;false表示在不在第一个记录处

?

int Child()

说明:跳到路径下一层,得到该表中的第一个记录。
参数:无
返回值:true这是一个表,已经进入第一个记录;false这不是一个表,操作失败

?

int Clear()

说明:清空表中所有记录
参数:无
返回值:true表示成功,总是返回true

?

string AND Contents(string strName)

说明:获得指定数据单元的值
参数:strName可以指向一个数据内容的路径,也可一是当前表下名为strName的单元的内容
返回值:返回数据单元的值,可以通过赋值改写该值

?

int Delete()

说明:删除当前记录,或者当前的整个表
参数:无
返回值:true表示删除成功,false表示删除失败

?

int Delete(string strName)

说明:删除一个数据单元或者一个表
参数:strName表示数据单元的名称或者表名
返回值:true表示删除成功,false表示删除失败

?

int Enter(string strDir)

说明:设置当前操作的数据单元或者表的路径
参数:strDir可以是一个开头带 AND danyin@/ AND danyin@的绝对地址,也可一是一个相对地址
返回值:true表示设置成功,总是返回true
例如:
pt.Enter(“/Product”);
pt.Enter(“A01”);
pt.Enter(“../../Product/A02”); // ..表示上返回上一层

?

int IsEnd()

说明:判断在当前表中是否在最后一个记录的位置
参数:无
返回值: true表示在在最后记录处,false表示在不在最后记录处

?

int Find(string strName,string strValue)

说明:在当前表中查找一个符合条件的记录
参数:strName表示某一个数据单元的名称,strValue表示该数据单元的值,是条件
返回值: true表示找到,并且已经定位到该记录,false表示没有找到

?

int Name()

说明:返回当前表明或者数据单元的名称
参数:无
返回值:当前表明或者数据单元的名称

?

int Next()

说明:当前表中下一条记录
参数:无
返回值: true表示跳转到下一条记录,false表示没有下一条记录了

?

int Open(string strFileName)

说明:打开一个PrettyText数据库文件
参数:strFileName为数据库名
返回值:ERR_OK表示打开成功,否则表示打开失败

?

int Parent()

说明:返回上一层,和Enter(“..”)等效
参数:无
返回值: true表示跳转上一层,false表示没有上一层了

?

int Previous()

说明:当前表中上一条记录
参数:无
返回值: true表示跳转到上一条记录,false表示没有上一条记录了

?

int Save()

说明:从内存中保存数据库内容到文件
参数:无
返回值:ERR_OK表示保存成功,否则表示保存失败

?

string AND Value()

说明:获得当前数据单元的值
参数:无
返回值: 返回数据单元的值,可以通过赋值修改

?

?

关注PrettyText发展

一个好的数据库,必须能够高效地处理大量的信息,并且能够方便地进行读取,添加,修改,删除,查找,统计等功能。PrettyText在当前版本还未能够在这方面得到很好发挥,所以还需要我们去努力打造,创造国人的优秀数据库系统。

PrettyText的未来仍然保留文本存储格式,简单方便的添加修改操作,在功能上有所增强。

如果你对PrettyText的开发感兴趣,很欢迎你加入PrettyText的开发。你可以到论坛上发表你的建议,或者告诉我们你改造的CPrettyText类,通过发邮件到 huang_2008 at msn dot com ,感谢你们的支持!

?

Copyright ? 2006 Huang Guan All rights Reserved.

PrettyText数据库0.01测试中》有4个想法

  1. 诚子

    不是挖坟,偶然看到。。。
    话说,我现在也不会写C++或一点VB。
    感觉CSV还是比较通用的,即使没有可用的包,写一个也不难。

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据