f

    技术2022-05-11  49

    void CMapEditDlg::OnButtonSave() { FILE  *pFilein;  char caption[100]; //»ñÈ¡Ò¶ÃæÄÚÈÝ strcpy(caption,csMapName);  char stype[100]; strcpy(stype,csMapStyle); char texture[100]; CString csTemp = _T(""); csTemp.Format(_T("%d"),m_nFloorNum); strcpy(texture,csTemp); char music[100]; strcpy(music,csMapMusic);//  int height = m_nHeight;//  int width = m_nWidth;//  int t = 0;//  int mymap[143];// // //  for (int i = 0; i < width; i++)//  {//   for (int j = 0; j < height; j++)//   {//    mymap[t] = t;//    t++;//   }//  }// csTemp = m_csMapPath + // str = "C://"+m_cCaption+".map"; //**************************************************************************    if ((pFilein = fopen(csTemp, "ab+")) == NULL)    {      printf("cannot open file");      exit(0);    }    FILE *stream = tmpfile();//´´½¨ÁÙʱÎļþ    fwrite(&caption, 100, 1, stream); // ½«ÄÚÈÝдÈëÁÙʱÎļþ fwrite(&stype, 100, 1, stream);  fwrite(&texture, 100, 1, stream);  fwrite(&music, 100, 1, stream);  m_progress.SetPos(1); int i = 2; for (int nRow = 0; nRow < 11; nRow++) {  for (int nCol = 0; nCol < 13; nCol++)  {   fwrite(&m_stMapObj[nRow][nCol],16,1,stream);   i++;   int n = static_cast<int>((static_cast<float>(i)/static_cast<float>(286))*100);   m_progress.SetPos(n);  } } rewind(stream);//ÒÆÖÁÎļþÍ· //¼ÓÃÜÎļþ

     char ch; ch=fgetc(stream); CString s = _T("passwordfsdfasdfasdf"); char *psw = s.GetBuffer(0); int j = 0;  i = 0; while(psw[++i]); int z = 0; while(!feof(stream)) {  ch=ch^psw[j>=i?j=0:j++];    fputc(ch,pFilein);  ch=fgetc(stream);  z++;  int n= 50 + static_cast<int>((static_cast<float>(z)/static_cast<float>(5376))*100);  m_progress.SetPos(n); } _rmtmp();//ɾ³ýÁÙʱÎļþ    fclose(pFilein);  m_progress.ShowWindow(FALSE); m_progress.SetPos(0);}void CMapEditDlg::ReadMap(){ FILE *pFileout;  // Îļþ²Ù×÷Ö¸Õë char caption[100] = ""; char stype[100] = ""; char texture[100] = ""; char music[100] = ""; int t = 0; CString str; // ÒÔ¶þ½øÖÆ·½Ê½´ò¿ªuser.datÎļþ  CFileDialog dlg(TRUE,"*.map",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"Map Files (*.map)|*.map|",NULL); if (dlg.DoModal() == IDOK) {  str = dlg.GetPathName(); } else {  return; } if ((pFileout = fopen(str, "rb")) == NULL) {  printf("cannot open file");  exit(0); } // ³É¿é´ÓÎļþÖжÁÈ¡ FILE *stream = tmpfile();//´´½¨ÁÙʱÎļþ //½âÃÜÎļþ char ch;

     ch=fgetc(pFileout); CString s = _T("passwordfsdfasdfasdf"); char *psw = s.GetBuffer(0); int a,b; b = a = 0; while(psw[++a]); int z = 0; while(!feof(pFileout)) {  ch=ch^psw[b>=a?b=0:b++];  fputc(ch,stream);  ch=fgetc(pFileout);  z++;  int n= static_cast<int>((static_cast<float>(z)/static_cast<float>(5376))*100);  m_progress.SetPos(n); } fclose(pFileout); rewind(stream);//ÒÆÖÁÎļþÍ· fread(&caption, 100, 1, stream); fread(&stype, 100, 1, stream);  fread(&texture, 100, 1, stream);  fread(&music, 100, 1, stream); int i = 0; for (int nRow = 0; nRow < 11; nRow++) {  for (int nCol = 0; nCol < 13; nCol++)  {   fwrite(&m_stMapObj[nRow][nCol],16,1,stream);   i++;   int n = 50 + static_cast<int>((static_cast<float>(i)/static_cast<float>(286))*100);   m_progress.SetPos(n);  } } _rmtmp();//ɾ³ýÁÙʱÎļþ m_progress.ShowWindow(FALSE); m_progress.SetPos(0);} 


    最新回复(0)