示例#1
0
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); 
	}
}
示例#2
0
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));
}