二进制流转换为word 现在把一个WORD文件存储到数据库中了,然后,在查询到此文件时如何将它打开呢?我尝试用msword,但是木有成功,各位有啥高见哇? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把它存成一个临时的doc,再用word打开这个临时的doc. 能具体的说一下吗?这个问题困扰我好几天了。难道还要去研究office的格式? 如何存成一个临时的DOC呢? 存到二进制字段的就是word的二进制,从数据库中读取后再存成一个word文件(临时文件),在用word打开这个文件 读取数据库数据,用WriteFile()生成一个binary文件,后缀名可以改为.doc 现在我把数据库中的数据已经转换成字符串指针了,然后现在就是不懂如何将这个指针存成你所说的Word临时文件新手,希望不吝赐教 我试了一下,writeFile()貌似生成的是稳健句柄,木有生成bianry文件哇。 我写的是这样的,但是打开的word乱码。,应该也是建了一个临时文件CFile file; file.Open("F:\\Project\\MyProject\\ChkProject (二进制流) - 副本\\1.doc",CFile::modeCreate|CFile::modeWrite); file.Write(_T(pBuff),m_DocLen); file.Close(); _Application sapp; if(!sapp.CreateDispatch(_T("word.Application")))//启动WORD { AfxMessageBox("word启动失败!"); return; } _Document sDoc;//文档对象 Documents sDocs;//文档集合对象,派生于COleDispatchDriver sDocs.AttachDispatch(sapp.GetDocuments(),true);//得到文档集合对象attach anIDispatch pointer to the COleDispatchDriver object //打开文档对象 _variant_t FileName(_T("F:\\Project\\MyProject\\ChkProject (二进制流) - 副本\\1.doc")); VARIANT varOptional; VariantInit(&varOptional); varOptional.vt=VT_ERROR;//指示Scode varOptional.scode=DISP_E_PARAMNOTFOUND; sDoc=sDocs.Open(&FileName, &varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional); //显示文档并激活文档 sapp.SetVisible(true); sDoc.Activate(); sapp.ReleaseDispatch(); 加CFile::typeBinary标志读写文件,比如CFile::modeCreate|CFile::modeWrite|CFile::typeBinary 还是不行呢,如果开始是以TXT的形式存储进数据库的,在读取的时候便可以用WORD打开,但是,如果开始是以.doc的格式存储的,便依然是乱码。好无奈。 急求! ShowWindow(SW_SHOWMAXIMIZED); 后恢复窗口原来大小怎么做? mscomm 打开端口3389 项目周期估计 多文档应用程序中的右键菜单如何加? icrsint.h文件的问题(没有ADO_VARIABLE_LENGTH_BINDING_ENTRYD定义) 创建com组件实例失败一般是什么原因? 怎么画一个坐标轴啊,而且怎么在坐标系中画网格啊(很急!) CObList的用法 做一名VC++开发工程师需要掌握什么能力,小弟初学VC 如何给tab控件的每一个标签加上图标? 这个group box怎样和 2个radio button: 男 ,女关联来啊?
能具体的说一下吗?这个问题困扰我好几天了。难道还要去研究office的格式?
如何存成一个临时的DOC呢?
现在我把数据库中的数据已经转换成字符串指针了,然后现在就是不懂如何将这个指针存成你所说的Word临时文件新手,希望不吝赐教
我试了一下,writeFile()貌似生成的是稳健句柄,木有生成bianry文件哇。
file.Open("F:\\Project\\MyProject\\ChkProject (二进制流) - 副本\\1.doc",CFile::modeCreate|CFile::modeWrite);
file.Write(_T(pBuff),m_DocLen);
file.Close();
_Application sapp;
if(!sapp.CreateDispatch(_T("word.Application")))//启动WORD
{
AfxMessageBox("word启动失败!");
return;
} _Document sDoc;//文档对象
Documents sDocs;//文档集合对象,派生于COleDispatchDriver
sDocs.AttachDispatch(sapp.GetDocuments(),true);//得到文档集合对象attach anIDispatch pointer to the COleDispatchDriver object
//打开文档对象
_variant_t FileName(_T("F:\\Project\\MyProject\\ChkProject (二进制流) - 副本\\1.doc"));
VARIANT varOptional;
VariantInit(&varOptional);
varOptional.vt=VT_ERROR;//指示Scode
varOptional.scode=DISP_E_PARAMNOTFOUND;
sDoc=sDocs.Open(&FileName, &varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional,&varOptional); //显示文档并激活文档
sapp.SetVisible(true);
sDoc.Activate();
sapp.ReleaseDispatch();
还是不行呢,如果开始是以TXT的形式存储进数据库的,在读取的时候便可以用WORD打开,但是,如果开始是以.doc的格式存储的,便依然是乱码。好无奈。