不用copymemeoy如果将数组的某一部份存入文件中?

Liubin 2003-11-19 10:31:56
我有一个databuf(200000),每次保存到文件中可能只有前几千个字节,如何只保存前面部分到文件中?
在C中很简单,只要
_write(fHandle,databuf,buflen)
指定一下长度即可。
在vb中如下
put #1,,databuf()
无法使用长度,如何解决?
我目前用copymemeory将前面部分数据拷贝到一个新数组,可频繁的copymemory毕竟耗资源啊?
...全文
53 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liubin 2003-11-19
  • 打赏
  • 举报
回复
yunfeng007(一水寒)
那和用copymemory有区别吗?资源占用?
TechnoFantasy 2003-11-19
  • 打赏
  • 举报
回复
这里是一个writefile的范例:

http://www.mentalis.org/apilist/773DDD91012366DDBACF7DFF056CA37C.html
TechnoFantasy 2003-11-19
  • 打赏
  • 举报
回复
sorry,搞错了,望里面写是不行的,他不会改变长度,只是将某部分不写入。你还是需要使用copymemory方式或者是使用WriteFile这样的API函数。
yunfeng007 2003-11-19
  • 打赏
  • 举报
回复
有点困难,要不你用c++包装一个dll,写入,读出都用这个dll,然后你在vb中调用就行了。
Liubin 2003-11-19
  • 打赏
  • 举报
回复
TechnoFantasy(www.applevb.com)
出问题了:我直接用
put #1,buflen,databuf()
写入的数据和原来的不一样,前面多了很多0
好像是从文件的buflen开始写我的真实数据,并且可能把databuf()都放到文件中了
Liubin 2003-11-19
  • 打赏
  • 举报
回复
MSDN:
recnumber 可选。Variant (Long)。记录号(Random 方式的文件)或字节数(Binary 方式的文件),指明在此处开始写入。
翻译的够烂的了,真是耽误了我啊!
谢谢TechnoFantasy(www.applevb.com) ,五星大哥的话就是圣旨,我马上去试
TechnoFantasy 2003-11-19
  • 打赏
  • 举报
回复
Put [#]filenumber, [recnumber], varname
中间的那个参数就是长度啊。
subzero 2003-11-19
  • 打赏
  • 举报
回复
频繁调用api并不会占用资源多少

7,766

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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