void CPersistentDataContainer::_serialize(VArchive& ar,std::vector<std::string>& dataNames,std::vector<std::string>& dataValues)
{
	if (ar.isStoring())
	{ // Storing
		ar << int(dataNames.size());
		for (int i=0;i<int(dataNames.size());i++)
		{
			ar << (unsigned char) (1);

			ar << int(dataNames[i].size());
			for (int j=0;j<int(dataNames[i].size());j++)
				ar << (unsigned char)(dataNames[i][j]);

			ar << int(dataValues[i].size());
			for (int j=0;j<int(dataValues[i].size());j++)
				ar << (unsigned char)(dataValues[i][j]);
		}
		ar << (unsigned char) (0);
	}
	else
	{		// Loading
		int count;
		ar >> count;
		if (count>0)
		{
			unsigned char d=1;
			while (d!=0)
			{
				ar >> d;
				if (d!=0)
				{
					std::string dat;
					std::string val;

					int l;
					unsigned char v;
					ar >> l;
					for (int i=0;i<l;i++)
					{
						ar >> v;
						dat+=v;
					}

					ar >> l;
					for (int i=0;i<l;i++)
					{
						ar >> v;
						val+=v;
					}

					dataNames.push_back(dat);
					dataValues.push_back(val);
				}
			}
		}