void vmsDataFile::SaveToFile(vmsFile &file, vmsDataFileItem &item) { file.WriteString (item.strName); int iDT = (int)item.vt.type (); file.Write (&iDT, sizeof (iDT)); switch (item.vt.type ()) { case VVT_EMPTY: break; case VVT_INT: file.WriteInt (item.vt); break; case VVT_DOUBLE: file.WriteDouble (item.vt); break; case VVT_INT64: file.WriteInt64 (item.vt); break; case VVT_ASTRING: file.WriteString (item.vt); break; case VVT_LPBYTE: file.WriteInt (item.vt.bytebuffersize ()); file.Write ((LPBYTE)item.vt, item.vt.bytebuffersize ()); break; default: ASSERT (false); } }
void vmsDataFile::SaveToFile(vmsFile &file, LPDATAFILETREE ptRoot) { ASSERT (ptRoot != NULL); SaveToFile (file, ptRoot->GetData ()); if (ptRoot->GetData ().vt.empty () == false) return; file.WriteInt (ptRoot->GetLeafCount ()); for (int i = 0; i < ptRoot->GetLeafCount (); i++) SaveToFile (file, ptRoot->GetLeaf (i)); }