BF命令行打包解包工具
BF的文件格式虽然简单,打包器却不是太好做,我觉得还是有必要写写的
BF格式有两个特点:
其一是文件表的递归存放,这个不算难,Quickbms也可以用
Start Function XX
End Function XX
Call Function XX
来做递归,不过输出读入时文件名前面要加上目录名和/,还是有点小麻烦....
其二是,包文件主体中文件的存放顺序并不是按照文件名表中来的,
举个例子,文件名表中,每个文件的内容是这样的:
文件名长度 文件名 文件大小 偏移量
也就是说,偏移量才代表了该文件在包中的位置,偏移量最小的文件,就是主体中存放在最前面的,却不是文件名表中的第一个。
这是很麻烦的一点。
这样一来,打包的时候就不能按照文件名表中文件顺序来打包,而必须根据偏移量大小顺序来依次打包。
这儿我用的方法是把每个文件的信息(文件名、大小、偏移)存放到一个结构数组中。
然后对这个数组按照偏移量做个排序,然后按照排完的顺序依次打包。
之前肥牛的图形打包器似乎用了数据库,不过我看不太懂delphi,也不懂数据库....
目前还存在的问题是,这个打包器无法通用:
因为文件数量比较大,考虑到排序算法的效率,我用了结构数组做Quicksort,而用数组的话,数组大小(即文件数量)就是确定的值了。如果要大小可变,那么似乎用链表比较合适,不过用链表做quicksort我搞不定....做insertionsort效率又比较低下....不知有没有高人有更好的办法
不过实际要通用也很容易,之前解包出来后看一下文件数量
然后把代码开头 #define FILENUM 760 后面定义的数值改成文件数量,重新编译一下就行了。
解包脚本,打包器,代码都在压缩包里,打包代码我写了不少注释,欢迎各位高手指正。
打包器使用方法,和解包后的文件放在同一文件夹下,命令提示符下输入 pack Filename
filename即要输出的包文件名
查看全部
同类推荐
精品推荐
网友评论
同类下载
CF百宝箱21M459人在玩CF百宝箱最新破解版是一款内存占用少,绿...
下载影之刃3GG修改器3M423人在玩影之刃3是经典ARPG动作手游大作影之刃...
下载赛博朋克2077存档转储工具11M298人在玩赛博朋克2077存档转储工具;这是一款由...
下载赛博朋克2077列出游戏设置二进制内容工具11M296人在玩赛博朋克2077列出游戏设置二进制内容工...
下载赛博朋克2077元数据游戏工具11M295人在玩赛博朋克2077元数据游戏工具;这是一款...
下载合成大西瓜辅助器3M143人在玩合成大西瓜是一款很有意思的休闲小游戏,玩...
下载三国群英传8图片替换工具9M628人在玩三国群英传8图片替换工具;这是一个可以进...
下载天谕手游胡歌捏脸数据3M341人在玩天谕手游胡歌捏脸数据;这是仿明星胡歌制作...
下载天谕手游锐雯捏脸数据3M340人在玩天谕手游锐雯捏脸数据;这是仿英雄联盟中的...
下载天谕手游阿狸捏脸数据3M339人在玩天谕手游阿狸捏脸数据;这是仿英雄联盟中的...
下载
0条评论