文件解析器应包含在一组源文件中,并包含以下文件,其中【XXX】表示数据格式的助记符。有关具体示例,请参阅下表中标识的ASCII过滤器示例。
通用文件名 | 内容 | 示例ASCII过滤器文件 |
VS_【XXX】.C | 码 | VS_ASC.C |
VSD_【XXX】.C | 数据 | VSD_ASC.C |
VS_【XXX】.H | 键入定义 | VS_ASC.H |
VSP_【XXX】.H | 便携性信息 | VSP_ASC.H |
可移植性信息文件使得过滤器平台的移植更容易。为了允许文件解析器用于内容索引,提供了一组包含文件,它们将允许条件编译从同一组源文件中获取所有这些需求的可执行DLL。
您的VSP_ 【XXX】 .H文件应如下所示。(有关更多信息,请参阅相应的ASCII过滤器文件。)
*静态数据的结构类型和名称。
#define VwStreamStaticType ???
#define VwStreamStaticName ???
解析器不能更改结构的内容,因为它在解析器的所有实例之间共享。
*动态数据的结构类型和名称。
#define VwStreamDynamicType ???
#define VwStreamDynamicName ???
VwStreamDynamicName是为了一致性,并没有真正的用途,因为所有的动态数据通过假名PROC访问。解析器的每个实例都有单独的动态数据副本。
*保存数据的结构类型和名称。
#define VwStreamSaveType ???
#define VwStreamSaveName ???
VwStreamSaveName应引用VwStreamDynamicType结构中的元素。在每次呼叫VwStreamSectionFunc和VwStreamReadFunc之后,将保存此结构中的数据,并在每次呼叫VwStreamReadFunc之前恢复。
*段数据的结构类型和名称。
#define VwStreamSectionType ???
#define VwStreamSectionName ???
如果这两个都不被定义,则文件解析器被假定为【单节】.VwStreamSectionName应引用VwStreamDynamicType结构中的元素。此结构中的数据在每次调用VwStreamSectionFunc后保存,并保证包含当前部分的条目数据VwStreamReadFunc.
该示例显示了各种保存区域与动态数据结构的关系。
typedef struct {en
...
} VwStreamSaveType;
typedef struct {en
...
} VwStreamSectionType;
typedef struct {en
...
VwStreamSectionType VwStreamSectionName; //多分段
VwStreamSaveType VwStreamSaveName;
} VwStreamDynamicType;
*流标识符名称和计数。
#define VwStreamIdName ???
#define VwStreamIdCount ???
VwStreamIdName是VSD_ 【XXX】 .C中的FILTER_DESC数组的名称,VwStreamIdCount是此数组中的元素数。像静态数据一样,这个数据不应该被解析器所改变。
*包含文件的名称。解析器使用的所有结构类型都应在此文件中定义。
#define VwInclude“vs_xxx.h”
#define VwStreamUserSaveType ???
#define VwStreamGenSeekName ???
#define VwStreamOpenFunc xxx_stream_open
#define VwStreamSeekFunc xxx_stream_seek
#define VwStreamTellFunc xxx_stream_tell
#define VwStreamReadFunc xxx_stream_read
#define VwStreamReadRecordFunc xxx_stream_readrecord
#define VwStreamSectionFunc xxx_stream_section
#define VwStreamCloseFunc xxx_stream_close
#define VwGetInfoFunc xxx_getinfo
#define VwGetRtnsFunc xxx_getrtns
#define VwGetDataFunc xxx_getdata
#define VwSetDataFunc xxx_setdata
#define VwAllocProcFunc xxx_alloc_proc
#define VwFreeProcFunc xxx_free_proc
#define VwLocalUpFunc xxx_local_up
#define VwLocalDownFunc xxx_local_down
#define VwGetSectionDataFunc xxx_getsectiondata
#define VwSetSectionDataFunc xxx_setsectiondata
* VS_ 【XXX】 .C文件的顶部应该是这样的。
#include“VSP_XXX.H”
#include“VSCTOP.H”
#include“VS_XXX.PRO”