高分求助:存储一个较复杂的结构的问题,甚急,如好,愿将可用分倾囊相赠!!!
环境:VS2008 MFC
windowsXP
描述:我有一个较复杂的绘制图形用的结构数组,数组成员是每一种图形模块的初始化信息,该结构体数组用于图形的初始化。希望能够将这个结构体保存为文本文件,这样在这个结构值变更就只需要修改这个文本文件就可以了。
我搞不清楚的是:如果保存成二进制文件问题不大,但若要保存成文本文件,存储和读取都麻烦很多,不知道怎么控制,希望大家能够给个思路,有相似的实例必高分赠送,若能得到满意答复,可双倍送分。谢谢
还有,图形模块是我自定义的类,不支持串行化
以下是我定义的结构体数组
typedef struct tagStaticDB //静态模块初始信息
{
FILEVERSION stVersion; //版本信息
BLOCKELEMENTINFO stInitData[BL_TYPE_COUNT]; //存储顺序与enum BLOCK_TYPE相同
}STATICDB,*pSTATICDB;
STATICDB是我想要存进文件的结构体,其中包含了一个结构体数组stInitData[BL_TYPE_COUNT]
BLOCKELEMENTINFO的结构描述如下
typedef struct tagBlcokElementInfo
{
//information for universal purpose
int iModuleType; //模块的类型
ELEMENTNODE stSelfIndexInWarehouse; //模块在仓库中的自索引
ELEMENTNODE stFatherIndexInWarehouse; //父模块在仓库中的索引
CList<ELEMENTNODE,ELEMENTNODE&> clsBrotherListInWarehouse; //弟模块在仓库中的索引链表
CList<ELEMENTNODE,ELEMENTNODE&> clsSonListInWarehouse; //子模块在仓库中的索引链表
ELEMENTNODE stInIndexInWarehouse; //入模块在仓库中的索引
ELEMENTNODE stInOutdexInWarehouse; //出模块在仓库中的索引
int iNameOfChainBelong; //所属的显示链表
int iSelfIndexInChain; //所属链表中的索引号
BLOCKCONFIGINFO stConfigInfo; //模块的配置信息
//information for graph
DISPLAYENVIRONMENT stDispEv; //显示环境
POINTXY stCenter; //模块的中心坐标
RECTXY stRect; //模块的区域坐标(若模块为矩形有效)
POINTXY stInPort; //入口点坐标
POINTXY stOutPort; //出口点坐标
int iAdsorbRegion; //吸附范围
int iLayer; //所属图层
int iState; //状态指示
//information for script
int iCodeStartPos; //脚本起始位置
int iCodeEndPos; //脚本结束位置
SCRIPTTEMPLETE stScript; //脚本模板
}BLOCKELEMENTINFO,*pBLOCKELEMENTINFO;