本帖最后由 Gu_xl 于 2015-5-18 13:16 编辑
XLRX_API里有这样的函数:
XLRX-File-Slb2Slds
功能:输出幻灯片库文件中包含的幻灯片文件
语法: (xlrx-File-Slb2Slds FileName [path])
参数:
FileName 幻灯片库文件名称
path 可选,要保存幻灯片文件目录,不提供则默认为和幻灯片库文件同目录
返回值: 成功返回T,否则返回nil
用法示例
(xlrx-File-Slb2Slds (getfiled "选择幻灯片库文件" "" "slb" 4) )
顺便介绍下幻灯片库文件的结构:
一个完整的slb文件由如下部分构成: sld的头部格式:共32 bytes AutoCAD Slide Library 1.0" CR LF ^Z NUL NUL NUL NUL slb内包含的一个或多个sld文件的入口,36字节一组:One or more slide directory entries (36 bytes each) 一个或者多个sld文件的内容,长度可变:One or more slides (variable length) sld文件的入口的格式:Slide directory entries have the following format: slide名(32字节)+slide文内容的起地址(4字节) Slide name (NUL terminated) (32 bytes)
Address of slide within library file (4 bytes) 总结如下:假设 slb文件中有n个sld文件 则 1:0~31字节为头部 2:(36m+32,36m+63)为各sld文件的名称,其中m=0,1,2,3,。。。。n-1;: 3:(36m+64,36m+67)为各sld文件内容的存储起始地址,其中m=0,1,2,3,。。。。n-1; 如下图中:m=0,第一个sld文件的存储起始地址是这样的:08 06 00 00,换算成10进制为08+06*16*16=1544; 4:(36n+32,36n+67)为无用部分,把前面的部分与sld的内容部分分割开来: 5: 36n+68为第一个sld文件的存储的存储位,其余sld文件的位置要从3获得。
|