打包与解包(转)

打包与解包(转)

在一台计算机上创建的演示文稿有时需要拿到另一台计算机上播放,如果文件较小可以用软盘直接携带,对于较大的文件可以使用“打包”功能将演示文稿和字体打包到一起,它也能将PowerPoint 播放器和演示文稿一起打包。

  打包过程

  打开要打包的演示文稿,单击“文件”菜单中的“打包”命令,启动“打包”向导,在“打包”向导的开始画面上,列出了打包过程,按照“打包”向导的指示进行操作即可。

  “选择打包的文件”确定是打包当前文件还是其他文件,如果是其他文件选择路径和文件名;“选择目标”确定将打包的文件复制到哪个驱动器中,默认指定A驱动器;“链接”指定包含的文件和演示文稿中使用的字体;“播放器”确定是否要包含PowerPoint 播放器;“完成”将要打包的内容压缩后存入目标,如果一张软盘不够,系统会提示插入新的软盘。

  当打包结束时,系统会给出提示信息,并在目标位置上建立名为pngsetup打包文件。

  解包过程

  为了在另一台计算机上放映演示文稿,必须首先将打包的演示文稿进行解包。将包含打包的演示文稿的软盘插入相应的驱动器中,在Windows资源管理器中,找到并打开软盘所在的驱动器,双击打包文件pngsetup,将弹出一个用于解包的“打包”对话框,在该对话框中键入解压缩后的演示文稿存放的位置,单击“确定”按钮,此时在指定的位置建立了一个演示文稿,同时会显示消息框,询问是否要放映幻灯片,单击“是”按钮,开始放映。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-115871/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14102/viewspace-115871/

void CPackDlg::OnBtnPack() { // TODO: Add your control notification handler code here CFileDialog savedlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"(类型:*.free)|*.free||"); if (IDOK != savedlg.DoModal()) return; int nTimeBegin = time(NULL); int nMiliTimeBegin = timeGetTime(); CString strPathName = savedlg.GetPathName(); CString strExt = savedlg.GetFileExt(); if (strExt!="free") strPathName+=".free"; int nFileNum = m_listFile.GetCount(); m_progress.SetRange(0,nFileNum); FILE* pFilePack = fopen(strPathName.GetBuffer(0),"wb"); if(!pFilePack) return; int nNumWrite = fwrite(&nFileNum;,sizeof(int),1,pFilePack); for (int i=0;i<nFileNum;i++) { CString str; m_listFile.GetText(i,str); int nFileNameLen = str.GetLength(); fwrite(&nFileNameLen;,sizeof(int),1,pFilePack); fwrite(str.GetBuffer(0),1,nFileNameLen,pFilePack); FILE* pFileOri = fopen(str.GetBuffer(0),"rb"); if (!pFileOri) { char buf[256]; sprintf(buf,"文件:\"%s\"不存在,打包失败!",str.GetBuffer(0)); fclose(pFilePack); MessageBox(buf); return; } fseek(pFileOri,0,SEEK_END); int nFileSize = ftell(pFileOri); fwrite(&nFileSize;,1,sizeof(int),pFilePack); fseek(pFileOri,0,SEEK_SET); // //方法一:这种方法效率比较低 // while(nFileSize-->0) // { // char c; // fread(&c,1,1,pFileOri); // fwrite(&c,1,1,pFilePack); // } //方法二:这种方法效率比较高 char *pBuf = new char[nFileSize]; fread(pBuf,1,nFileSize,pFileOri); fwrite(pBuf,1,nFileSize,pFilePack); delete []pBuf; m_progress.SetPos(i+1); fclose(pFileOri); } fclose(pFilePack); int nTimeEnd = time(NULL); int nMiliTimeEnd = timeGetTime(); char bufTime[128] = ""; char bufMiliTime[128] = ""; sprintf(bufTime,"打包用时:%d秒",nTimeEnd-nTimeBegin); sprintf(bufMiliTime,"打包用时:%d毫秒",nMiliTimeEnd-nMiliTimeBegin); if (nTimeEnd-nTimeBegin==0) MessageBox(bufMiliTime); else MessageBox(bufTime); } void CPackDlg::OnBtnUnpack() { // TODO: Add your control notification handler code here CStrin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值