如何将word文件读入内存,以备写入数据库大对象字段

boxnoodle 2008-10-20 10:55:02
RT,需要读入本地一个doc、pdf等文件,以备将来写入数据库大对象字段,应该怎么做?
不能直接保存文件地址,因为实际中读完后就要删除。
我如下的代码读入后,写出来的doc是乱码,pdf打不开,说文件损坏。
ifstream in("D:\\doc.doc");
//ifstream in("D:\\pdf.pdf");
in.seekg(0, ios::end);
int len = in.tellg();
in.seekg(ios::beg);

char* str = new char[len];
in.read(str, len);
in.close();

ofstream fout("D:\\result.doc",ios::binary);
//ofstream fout("D:\\result.pdf",ios::binary);
fout.write(str, len);
fout.close();
...全文
106 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
elainte 2008-10-20
  • 打赏
  • 举报
回复
mark。。。
oldnwind 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 icosagon 的回复:]
读写都要以二进制,ifstream in("D:\\doc.doc");
是文本的,非二进制
[/Quote]

对.
doc, pdf 文件均带有各式信息,必须用binary形式读写才能保留其所有信息且
不会在I/O过程中被意外改动。
赵Andy 2008-10-20
  • 打赏
  • 举报
回复
mark
hai040 2008-10-20
  • 打赏
  • 举报
回复
可以用ue比较一下
icosagon 2008-10-20
  • 打赏
  • 举报
回复
读写都要以二进制,ifstream in("D:\\doc.doc");
是文本的,非二进制
boxnoodle 2008-10-20
  • 打赏
  • 举报
回复
读txt和bmp文件就没有问题
boxnoodle 2008-10-20
  • 打赏
  • 举报
回复
但是写出来的doc和pdf的大小和原文件是一样的,不知怎么回事。
帅得不敢出门 2008-10-20
  • 打赏
  • 举报
回复
Visual C++ 中操纵 MS Word 123
http://www.vckbase.com/document/viewdoc/?id=1174
帅得不敢出门 2008-10-20
  • 打赏
  • 举报
回复
为什么不直接用文本文件写? 或者 .dat等等 都可以
你偏偏要用.doc当然有问题了
文档操作应该要有专门的处理
  • 打赏
  • 举报
回复
非二进制的也可以用二进制整啊!~ rb……等

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧