二进制流转换为word


现在把一个WORD文件存储到数据库中了,然后,在查询到此文件时如何将它打开呢?我尝试用msword,但是木有成功,各位有啥高见哇?

13 个解决方案

#1


是以二进制的形式存储的。。。。

#2


把它存成一个临时的doc,再用word打开这个临时的doc.

#3


引用 2 楼 zyq5945 的回复:
把它存成一个临时的doc,再用word打开这个临时的doc.


能具体的说一下吗?这个问题困扰我好几天了。。。。难道还要去研究office的格式?

#4


引用 2 楼 zyq5945 的回复:
把它存成一个临时的doc,再用word打开这个临时的doc.


如何存成一个临时的DOC呢?

#5


存到二进制字段的就是word的二进制,从数据库中读取后再存成一个word文件(临时文件),在用word打开这个文件

#6


读取数据库数据,用WriteFile()生成一个binary文件,后缀名可以改为.doc

#7


引用 5 楼 zyq5945 的回复:
存到二进制字段的就是word的二进制,从数据库中读取后再存成一个word文件(临时文件),在用word打开这个文件


现在我把数据库中的数据已经转换成字符串指针了,然后现在就是不懂如何将这个指针存成你所说的Word临时文件。。。新手,希望不吝赐教。。。

#8


引用 6 楼 mcmcmc 的回复:
读取数据库数据,用WriteFile()生成一个binary文件,后缀名可以改为.doc


我试了一下,writeFile()貌似生成的是稳健句柄,木有生成bianry文件哇。。。。

#9


我写的是这样的,但是打开的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();

#10


加CFile::typeBinary标志读写文件,比如CFile::modeCreate|CFile::modeWrite|CFile::typeBinary

#11


引用 10 楼 zyq5945 的回复:
加CFile::typeBinary标志读写文件,比如CFile::modeCreate|CFile::modeWrite|CFile::typeBinary


还是不行呢,如果开始是以TXT的形式存储进数据库的,在读取的时候便可以用WORD打开,但是,如果开始是以.doc的格式存储的,便依然是乱码。。。。好无奈。。。。

#12


先测试看下是否是读写文件的问题还是存取到数据库问题,一个一个排除。

#13


引用 12 楼 zyq5945 的回复:
先测试看下是否是读写文件的问题还是存取到数据库问题,一个一个排除。


好的。。。谢谢。。。。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告