将对象保留到文件
将对象保存到文件本帖最后由 dianyancao 于 2013-05-14 01:30:21 编辑Type ClassifierA As LongB As LongN
将对象保存到文件
本帖最后由 dianyancao 于 2013-05-14 01:30:21 编辑
Type Classifier
A As Long
B As Long
NextAClassifier As Long
NextBClassifier As Long
AManagement As New Collection 'A管理的类别
BManagement As New Collection
End Type
Private Const MaxCountOfClassifiers As Long = 35 * 35
Public ClassifierTree(MaxCountOfClassifiers) As Classifier
Public ClassifierUpper As Long
可以自己写拷贝函数,将集合对象中的元素保存到文件
怎么用CopyMemory将ClassifierTree()正确复制到字节数组呢?
[解决办法]缺乏常识,脱离实例的指针是无意义的。
要使得保存到文件的元素有意义,必须是值。
对象的“序列化/反序列化”就是“保存成员值/按照值构建成员相同的对象”。
[解决办法]直接将整个自定义结构写入二进制文件. 前提是结构中每个元素都需要有确切的长度大小.
[解决办法]集合必须固定才能计算结构Classifier所占的字节大小。
集合固定的含义是:集合的元素的数据类型要确定(简单数据类型,如果是对象那又麻烦了),元素个数要确定。
[解决办法]必须自己定义一个保存方法,一个对象恢复方法,定义每个成员如何保存,你的数据类型里又有collection对象,必须规划好如何保存,以便能正确恢复;因为collection可以包含任意的对象,所以必须仔细的规划对象如何分界,集合的成员类型如何识别和分界