| 
 | 
 
这个是个很重要的功能,保存功能必须和加载的对应,不然你知道的,读出来肯定不是你需要的,再然后操作芯片也不是你需要的,再然后出问题也不是你需要的。 
下面就是操作函数,非常乏味的处理过程,有兴趣的一定要跟一遍,不然你肯定不明白。 
- void CProgDeviceManage::OnOK() 
 
 - {
 
 -         // TODO: Add extra validation here
 
 -         CFile savefile;
 
 -         TypeStruct* pTypeStruct; 
 
 -         TypeStruct1* pTypeStruct1; 
 
  
-         //保存文件代码
 
 -         parent->SetAppLog("保存开始...");
 
 -         if(savefile.Open(parent->m_sAppPath+"device.pdl",CFile::shareCompat|CFile::modeCreate|CFile::modeWrite,NULL))
 
 -         {
 
 -         ZeroMemory(&m_stDFileHead, sizeof(DeviceListFileHeadStruct));
 
 -         strcpy(m_stDFileHead.Appname,"UUProg V"+parent->m_sAppVer);
 
 -         strcpy(m_stDFileHead.DeviceListFileVer,parent->m_sAppVer);
 
 -         m_stDFileHead.DeviceCount = parent->m_arDeviceList.GetSize();
 
 -         m_stDFileHead.TypeListCount = parent->m_arTypeList.GetSize();
 
 -         m_stDFileHead.OperationListCount = parent->m_arOperationList.GetSize();
 
 -         m_stDFileHead.SizeListCount = parent->m_arSizeList.GetSize();
 
 -         m_stDFileHead.PinListCount = parent->m_arPinList.GetSize();
 
 -         m_stDFileHead.DataWidthListCount = parent->m_arDataWidthList.GetSize();
 
 -         m_stDFileHead.PackageListCount = parent->m_arPackageList.GetSize();
 
 -         m_stDFileHead.VCCListCount = parent->m_arVCCList.GetSize();
 
 -         m_stDFileHead.VPPListCount = parent->m_arVPPList.GetSize();
 
 -         m_stDFileHead.AdapterListCount = parent->m_arAdapterList.GetSize();
 
 -         
 
 -         savefile.Write(&m_stDFileHead,sizeof(DeviceListFileHeadStruct));
 
 -                 //Type List
 
 -                 for (int i=0; i<parent->m_arTypeList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arTypeList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //Operation List
 
 -                 for (i=0; i<parent->m_arOperationList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arOperationList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //Size List
 
 -                 for (i=0; i<parent->m_arSizeList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arSizeList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //Pin List
 
 -                 for (i=0; i<parent->m_arPinList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arPinList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //DataWidth List
 
 -                 for (i=0; i<parent->m_arDataWidthList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arDataWidthList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //Package List
 
 -                 for (i=0; i<parent->m_arPackageList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arPackageList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
 -                 
 
 -                 //VCC List
 
 -                 for (i=0; i<parent->m_arVCCList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct1 = &parent->m_arVCCList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct1,sizeof(TypeStruct1));
 
 -                 }
 
  
-                 //VPP List
 
 -                 for (i=0; i<parent->m_arVPPList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct1 = &parent->m_arVPPList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct1,sizeof(TypeStruct1));
 
 -                 }
 
  
-                 //Adapter List
 
 -                 for (i=0; i<parent->m_arAdapterList.GetSize(); i++)
 
 -                 {
 
 -                         pTypeStruct = &parent->m_arAdapterList.GetAt(i);
 
 -                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
 
 -                 }
 
  
-                 //Device List
 
 -                 for (i=0; i<parent->m_arDeviceList.GetSize(); i++)
 
 -                 {
 
 -                         m_stDFile = parent->m_arDeviceList.GetAt(i);
 
 -                         savefile.Write(&m_stDFile,sizeof(DeviceListFileStruct));
 
 -                 }
 
 -                 savefile.Close();
 
 -         parent->SetAppLog("保存完成");
 
 -         }        
 
 -         else
 
 -         {
 
 -                 parent->SetAppLog("保存失败");
 
 -         }
 
 -         
 
 -         CDialog::OnOK();
 
 - }
 
  复制代码 基本就是不停的循环,不停的写盘。 
 
 |   
 
 
 
 |