- 解析 header
- 解析 FAT
- 解析 miniFAT
- 解析 direntry
- 有大量的 lazy bytestring 和 strict bytestring 的转化,需要考虑去掉这一步。
- 校验 MagicNumber 和 CLSID
- 校验 Minor Version
- V3 版本校验 num_of_director_sector
convert.py 需要智能化处理不同类型下面的字段名相同的情况实现工具查找 optional 字段!手动检查所有文件的 optional 字段- ├── ODraw
- │ └── OfficeArts.hs
- ├── OShared
- │ ├── Hyperlinks.hs
- │ ├── SmartTags.hs
- │ └── Toolbars.hs
- └── Types
- ├── Bases.hs # ftcBi :: Maybe Int, -- not sure 待验证
- ├── Dops.hs
- ├── Plcs.hs
- ├── Spls.hs
- ├── Sprms.hs
- └── Sttb.hs
- cfb 中的 dir_entry 改成树形的
- [ Y ] OCrypto 的文件校验
- [ Y ] ODraw 的文件校验
- [ Y ] OShared 的文件校验
- [ Y ] OCrypto 的 parser 生成
- [ Y ] ODraw 的 parser 生成
- [ Y ] OShared 的 parser 生成
- 2024/11/06: 因 ms-doc debug 成本过高,暂停 ms-doc 开发。
ref: https://logand.com/git/olefs.git/
作为技术验证项目,不宜开源
- byteStringToUArray 25%
- reduceInts 3%
- readSlice 18%
- readFatInSector 5.4%
- trimFreeSect 14.4%