我来详细解释一下,+ Z1 |7 I2 n, s" s" ^
open FDDE DIR 1 ( S* Y0 A6 i' d6 b9 H" y1 t O. h; b# k
open FDDE TOC 2
+ o+ E9 {# l n1 q1 k% a相当于打开2个文件,后面的1,2相当于句柄
/ y' Y" N, ?5 \4 I
& c# w+ J' J! tdo
( q4 P; i# e& j' u% ?, R; s+ t$ t getdstring CHUNK 4 2, [: s: B% A# T9 h$ L
get DUNNO long 2 " |% |/ E) [1 X* _8 H+ o5 O4 x
get DUNNO long 2
: N5 C, c7 E3 X/ W1 H6 q2 c get FILES long 2 9 c; T1 ?9 a) ` _" T) P
get DUNNO long 2 8 ~" }" w1 H& Y0 }' t! a8 C
get DUNNO long 2
! n# _( i; p, m& @) C. x# w get DUNNO long 2
. r, x6 G! F7 A# @6 W get DUNNO long 2
& h% x) k7 {( }9 x1 e* nwhile CHUNK != "REST". {, J! x7 p. g6 ^$ ~
) k$ B3 }7 c' v9 p
这段主要是打开TOC ,读取文件数FILES 。; t9 o4 f& D: Y
你算算FILES 就能分析出是BE还是LE的。6 |' \% G3 K8 f, T$ k" q
* c0 P. }+ y7 C
后面2段是. B% _. K; M# B, f, V6 \
读取toc里面的每个文件的SIZE ,offset$ P# f1 d/ Q$ K+ A+ |
读取dir里面的每个文件的NAMEOFF ,NAME$ O3 p- q# N: k; x+ r
最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。5 K" ?) `; d0 Z( n8 n9 z' x- R
- x4 U- j$ e2 E- A5 | B) X6 X
该明白了吧? |