浅谈Umd文件格式
2009-09-10 00:00:00 来源:WEB开发网2. 写入1个字节’#’,2个字节的0x0a,2个字节的0x0900,4个字节的随机数
在所有正文数据块写入完毕后,写入1个字节’#’,2个字节数据类型0x81,表示正文写入完毕,2个字节0x0901,4个字节随机数,1个字节0x24,4个字节随机数(一致),接下来是4个字节,内容是数据块的数目*4+9,然后,还记得每个数据块写入前都生成了4个字节的随机数吗,从最后一个开始,倒序写如这些随机数,每个4个字节,结束正文的写入。
接下来是封面,1个字节的’#’,2个字节的数据类型0x82,3个字节0x010a01,4个字节的随机数,1个字节的0x24,4个字节的随机数,4个字节的数据和封面字节数有关,内容是封面字节数+9,然后再写入封面字节数据,不需要压缩。
到此为止,主要数据都写完了,但我发现有些Umd生成工具还会生成一些数据类型是0x87的,这一块具体功能还不是非常清楚,大概是生成一些数据来通知Umd解析器应该使用什么样的PageOffset来显示内容,具我测试,这部分不写入也能正常解析,对这部分有兴趣的朋友,可以参考我提供的代码。
该结束了,1个字节的’#’,2个字节的数据类型0x0c表示文件结束,2个字节的0x0901,4个字节的文件长度+4,完成了。
附,数据类型表:
0x01--文件开始
0x02--标题
0x03--作者
0x04--年
0x05--月
0x06--日
0x07--小说类型
0x08--出版商
0x09--零售商
0x0b--内容长度
0x83--章节偏移
0x84--章节标题,正文
0x81--正文写入完毕
0x82--封面
0x87--PageOffset
0x0c--文件结束
写了一大堆,写完之后才发现像流水帐,看来和电脑用长了文字功底都还老师了,不过应该还是能看明白的^_^。
来源:www.shoujihw.com
更多精彩
赞助商链接