home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 December / PCWorld_2002-12_cd.bin / Software / Komercni / Baltik / katB.exe / katB / DESIGN / DESIGN_C.IO < prev    next >
Text File  |  2002-09-16  |  4KB  |  115 lines

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //----------------------------------------------------------------------------//
  3. //-----project DESINGER, copyright 2002 Libor Bareτ-------------------------//
  4. //----------------------------------------------------------------------------//
  5. ////////////////////////////////////////////////////////////////////////////////
  6.  
  7.  
  8.  
  9.  
  10. void SerializeStringRead(long File, string& strText){
  11.    unsigned n;
  12.    Soubor¼tiBlok(File,&n,sizeof(n));
  13.    StrVytvo²(strText);
  14.    StrNastavVelikost(strText,n);
  15.    Soubor¼tiBlok(File,(char*)strText,n);
  16. }
  17. void SerializeStringStore(long File, string strText){
  18.    unsigned n=StrVelikost(strText);
  19.    SouborPiτBlok(File,&n,sizeof(n));
  20.    SouborPiτBlok(File,(char*)strText,n);
  21. }
  22. void SerializeClassItemsRead(long File,CLASSITEM ** pClassItems,int nSize){
  23.  int nPos = 0;
  24.  *pClassItems= (CLASSITEM*) malloc(sizeof(CLASSITEM)*nSize);
  25.  CLASSITEM * item;
  26.  for(;nPos < nSize; nPos++){
  27.          item = &(*pClassItems)[nPos];
  28.      Soubor¼tiBlok(File,item,sizeof(CLASSITEM));
  29.      SerializeStringRead(File,item->strText);
  30.  }
  31.  
  32. }
  33. void SerializeClassItemsStore(long File,CLASSITEM * pClassItems,int nSize){
  34.  int nPos = 0;
  35.  CLASSITEM * item;
  36.  for(;nPos < nSize; nPos++){
  37.          item = &(pClassItems)[nPos];
  38.      SouborPiτBlok(File,item,sizeof(CLASSITEM));
  39.      SerializeStringStore(File,item->strText);
  40.  }
  41.  
  42. }
  43.  
  44.  
  45. DIAGRAMCELL* IO_READ(long File,DIAGRAMCELL * cells,int ** zorder, int &nSize){
  46.   int Size = 0,xSize=0;
  47.   SouborNastavPozici(File,0,0);
  48.   DIAGRAMCELL* pCell;
  49.   Soubor¼tiBlok(File,&Size,sizeof(int));
  50.   cells = (DIAGRAMCELL*) malloc(sizeof(DIAGRAMCELL)*Size);
  51.   *zorder= (int*) malloc(sizeof(int)*Size);
  52.   int h=0;
  53.   for(;h<6;h++)SerializeStringRead(File,m_strExInfo[h]);
  54.   while(!SouborKonec(File)&& Size > xSize){
  55.  
  56.      pCell = &cells[xSize];
  57.      Soubor¼tiBlok(File,&(*zorder)[xSize],sizeof(int));
  58.      Soubor¼tiBlok(File,&cells[xSize],sizeof(DIAGRAMCELL));
  59.      SerializeStringRead(File,pCell->ClassName);
  60.      SerializeStringRead(File,pCell->strExStereotypes);
  61.      SerializeStringRead(File,pCell->strExProperties);
  62.      int i;
  63.      int nSizeDependents=pCell->nSizeDependents;
  64.      if(nSizeDependents > 0){
  65.        pCell->pDependents = (int*)malloc(sizeof(int)*nSizeDependents);
  66.        for(i=0;i < nSizeDependents; i++){
  67.            Soubor¼tiBlok(File,&pCell->pDependents[i],sizeof(int));
  68.       }
  69.      }
  70.          if(pCell->nSizeVariable > 0){
  71.                  SerializeClassItemsRead(File,((CLASSITEM**)(&(pCell->pVariable))),pCell->nSizeVariable);
  72.          }
  73.      if(pCell->nSizeOperation > 0){
  74.                  SerializeClassItemsRead(File,((CLASSITEM**)(&(pCell->pOperation))),pCell->nSizeOperation);
  75.          }
  76.      xSize++;
  77.  
  78.   }
  79.   nSize = Size;
  80.   //nSize = Size-1;
  81.   return cells;
  82.  
  83. }
  84. void IO_WRITE(long File,DIAGRAMCELL* pCells,int * zorder,int nSize){
  85.  
  86.   // export to file ...
  87.   SouborNastavPozici(File,0,0);
  88.   SouborU²ízni(File);
  89.   SouborPiτBlok(File,&nSize,sizeof(int));
  90.   int h=0;
  91.   for(;h<6;h++)SerializeStringStore(File,m_strExInfo[h]);
  92.   int nActual=0;
  93.   DIAGRAMCELL * pAc = 0;
  94.   for(;nActual < nSize;nActual++){
  95.      pAc = & pCells[nActual];
  96.      SouborPiτBlok(File,&zorder[nActual],sizeof(int));
  97.      SouborPiτBlok(File,pAc,sizeof(DIAGRAMCELL));
  98.      SerializeStringStore(File,pAc->ClassName);
  99.      SerializeStringStore(File,pAc->strExStereotypes);
  100.      SerializeStringStore(File,pAc->strExProperties);
  101.      if(pAc->nSizeDependents > 0){
  102.         int i;
  103.         for(i=0;i < pAc->nSizeDependents;i++){
  104.            SouborPiτBlok(File,&pAc->pDependents[i],sizeof(int));
  105.         }
  106.      }
  107.          if(pAc->nSizeVariable > 0){
  108.                  SerializeClassItemsStore(File,(CLASSITEM*)(pAc->pVariable),pAc->nSizeVariable);
  109.          }
  110.      if(pAc->nSizeOperation > 0){
  111.                  SerializeClassItemsStore(File,(CLASSITEM*)(pAc->pOperation),pAc->nSizeOperation);
  112.          }
  113.  
  114.   }
  115. }