#1 - 2012-6-6 22:25
lrdcq (yooooooooooooo)
你在开DBPF的时候判断一个文件是不是压缩过的
是用猜的(直接读前4字节看是不是和说的文件长度一样)
还是先遍历找到dir在根据dir来的。。。。

话说我为什么要在这里问。。。。。(bgm38)(bgm38)
#2 - 2012-6-7 08:09
(miaow~~~)
#3 - 2012-6-7 08:49
(おとこの娘になりたい)
竟然在这里问,我无语了(bgm29)

正经:
我是先把Index表读了,然后找找有没有Dir文件。没有的话就说明没有压缩过的文件,有的就读它,读到有哪个Entry就标记哪个

如果是去直接读文件内容看前N个字节的话,那性能以及内存占用都不理想了
#4 - 2012-6-7 10:03
(yooooooooooooo)
目前写的开文件把simcity_1.dat的Index表读出来要用2秒,加上输出成txt要用3秒。。。。lua完全没有优化的余地压力大。。。
#5 - 2012-6-7 10:11
(yooooooooooooo)
要说优化的话,说不定我自己写的这个unpack函数可以优化
function unpackx(bytes,mod)
        local gets=""
        for b in string.gfind(bytes,".") do
                gets=string.format("%02X",string.byte(b))..gets
        end
        if (mod==1) then
                return tonumber(gets)
        else
                return "0x"..gets
        end
end