我来详细解释一下,' Q# D( p: t9 a( b3 E' j
open FDDE DIR 1
% o9 u3 t/ { D/ eopen FDDE TOC 2 $ j9 m, m% l" g& H+ W" u2 j
相当于打开2个文件,后面的1,2相当于句柄
' J/ W; ]7 s, x. i/ W3 Y' ^; ?& V% ?! G2 U/ f% i3 r6 L
do
9 c, F* K! s% m+ Q$ ?, { getdstring CHUNK 4 2
# z0 [/ t e4 i3 N+ k get DUNNO long 2
( ]! w E) p& H% {% }' o! ?/ N get DUNNO long 2 * D4 ^7 H9 z8 C' O
get FILES long 2
/ k; ^1 ]( s; H2 q: L) c9 h n9 A get DUNNO long 2
' S5 ^. B3 Z0 d9 K2 I# G get DUNNO long 2 2 E9 d' @4 A" z% T" j
get DUNNO long 2
" ^, N5 `2 \5 U: S; H. S- e4 K& U+ P get DUNNO long 2
% t8 V# z- Q1 ewhile CHUNK != "REST". x+ V% ]. Z* r# a. E: M
: S* p( y( j0 o# ?5 R) p: I这段主要是打开TOC ,读取文件数FILES 。
9 i2 T( Z; Q3 r, T4 P4 x9 n: c你算算FILES 就能分析出是BE还是LE的。8 M: @0 C9 J$ i( d5 s$ C+ k( }
0 V& C# o+ b! f( C6 ?
后面2段是
, F/ A# W& }0 n3 f) m读取toc里面的每个文件的SIZE ,offset
% l+ D! h* v0 v7 t+ T# \读取dir里面的每个文件的NAMEOFF ,NAME, P2 n0 O4 I* K
最后根据每个文件的SIZE ,offset,NAME到dat里面把每个文件切出来。
, i$ _9 @8 S6 N. m& V2 o5 p. I. ?' q, E1 K, ?4 o) n+ q5 L: O
该明白了吧? |