admin管理员组

文章数量:1530517

2024年5月31日发(作者:)

Power Builder9.0 PBL文件结构解析 – 计算机与信息技术

Power Builder9.0 PBL文件结构解析

更新时间 2009-11-23

Power Builder9.0 PBL文件结构解析张春华(东北财经大学 信息工程学院,大连

116025) 摘 要 在PowerBuilder程序开发中,PBL库文件是编程开发的核心文件,

通过对其文件结构的分析研究,编程从PBL文件提取出程序对象的源程序,并能完成对PBL

文件中所有程序对象的修改。通过编程验证,结果表明对文件结构理解的正确性,以及该

文件结构在PowerBuilder机考系统中的应用。 关键词 机考系统;PowerBuilder;

PBL文件;文件结构1 引言 PowerBuilder(简称PB)是专业的客户/服务器结构数

据库应用程序快速开发工具,它支持多种关系数据库管理系统,提供了多种平台的开发环

境,内置了功能强大的数据窗口对象,并且其编程简单易学,因此,PB是应用较为广泛的

数据库应用程序开发工具,拥有大量的用户。从PB9.0后开始提供对nTier结构及Web

数据库应用以及嵌入式设备的支持,鉴于此,PowerBuilder仍然是各学校数据库应用开发

的主要教学内容。 PBL文件是PB应用程序库文件(以下简称库文件),在其中存储了

应用系统所使用到的所有系统对象或者用户自定义对象的集合,同时库文件中还存储了源

代码版本控制信息(Source Code Control,简称SCC),因此,它是PB编程开发中的核

心文件。 我校在PowerBuilder机考系统的开发中由于需要向考生的PBL文件中注入

测试代码,即对PBL文件进行查看与修改,以便阅卷程序能分析程序源码并能测试考生PB

程序答案。然而在不了解PBL文件的情况下只能以二进制方式打开它,这样是无法获得有

用的程序结构及源码,修改其中的代码更是无法处理了。对其文件结构的研究,可以准确

地了解程序结构并能对PBL文件中的程序对象进行修改。同时也有利于库文件的修复,源

程序控制、程序动态执行等方面的工作。2 PB库管理相关知识介绍 在PB中提供了

库文件的管理程序接口ORCA(Powersoft Open Library API),该接口提供了包括六大

类函数,即ORCA会话管理函数、库管理函数、程序对象编译函数、程序对象查询函数、

DLL及EXE生成函数、源代码控制函数。使用这六大类函数,可以完成对库文件中的程序

对象的复制、重命名、删除、移动、导出,导入、伪编译及签入(checkin)签出(checkout)

的版本控制操作,同时还能将PBL文件编译成可执行文件或动态链接库。其库管理的功能

应是比较完整的了。 如果要修改PBL库文件中的某个程序对象,可通过

LibraryEntryExport导出程序对象的源代码,将修改后的源代码用LibraryEntryImport

函数导入到PBL库文件中。然而,这一方法不能修改应用程序对象。因此,必须通过直接

修改库文件的方法来完成对应用程序对象的修改。3 PBL文件结构分析3.1 PBL文件的

存储结构及组织形式 PBL文件存储信息时是以块(BLOCK)为单位为程序对象分配存

储空间的,每块的大小固定为512字节,数据块块号从0开始计算,例如文件头就是0号

数据块,数据块块号与数据块首字节的偏移地址有如下关系(本文中所用偏移地址从0计

数,并以16进制表示): 数据块块号 = 数据块首字节偏移地址/512 整

个文件是由文件头数据块、文件位图数据块、NOD数据块、DAT数据块组成。其中除文

件头及文件位图数据块外,其它数据块均以链表结构组织,而DAT数据块是NOD数据块

中Entry目录表项的具体内容,是从属于NOD数据块的。图1说明了这四类数据块的关

系。 图1中文件头、文件位图及首NOD数据块在存储空间上是相邻的,其中NOD

类型数据块比较特别,占6个数据块,其余数据块只占一个数据块,其空间大小及起始地

址如表1所示。图1 PBL文件总体数据结构表1 PBL文件整体数据结构块号起始偏移

量描述0块0000-01FF文件头1块0200-03FF首文件位图数据块2-7块0400-0FFF首

NOD数据块

本文标签: 文件数据对象程序