社区
VB基础类
帖子详情
Byte数组的内容保存到Variant变量中,然后再从该Variant变量中读出来,为什么就不对?
wan_j_zhang
2002-08-17 04:47:10
比如:
dim ssVar() as byte
open "C:\test.doc" for binary as #1
Get #1,,ssVar
Close #1
dim temp as variant
temp=ssVar
Open "d:\test.doc" for binary as #2
put #2,,temp
Close #2
为什么写出来的文件不对?
...全文
53
4
打赏
收藏
Byte数组的内容保存到Variant变量中,然后再从该Variant变量中读出来,为什么就不对?
比如: dim ssVar() as byte open "C:\test.doc" for binary as #1 Get #1,,ssVar Close #1 dim temp as variant temp=ssVar Open "d:\test.doc" for binary as #2 put #2,,temp Close #2 为什么写出来的文件不对?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
enmity
2002-08-18
打赏
举报
回复
转换成variant等类似的非定长变量,会在写入的数据之前添加该类型的标示和数据的长度。你看看,使用variant后的长度是否比原来的大12个字节?
建议,不要试图用variant作为万能的中介,应该保持数据的类型
2个比较好的Binary 文件读写函数:
Public Function ReadBianryFile(ByVal strFile As String) As Byte()
Dim o_intFileNum As Integer
Dim o_bytContent() As Byte
o_intFileNum = FreeFile()
Open strFile For Binary As #o_intFileNum
ReDim o_bytContent(0 To LOF(o_intFileNum) - 1)
Get #o_intFileNum, , o_bytContent
Close #o_intFileNum
ReadBianryFile = o_bytContent
End Function
Public Function WriteBianryFile(ByVal strFile As String, _
ByRef bytContent() As Byte) As Boolean
Dim o_intFileNum As Integer
Dim o_bytContent() As Byte
o_intFileNum = FreeFile()
Open strFile For Binary As #o_intFileNum
Put #o_intFileNum, , bytContent
Close #o_intFileNum
WriteBianryFile = True
End Function
陈杰Damon
2002-08-17
打赏
举报
回复
上面写错了,应该是:
ReDim ssVar(FileLen("C:\test.doc") - 1)
陈杰Damon
2002-08-17
打赏
举报
回复
Byte数组未分配空间,导致错误,加一句:
ReDim ssVar(FileLen(1) - 1)
dengwei007
2002-08-17
打赏
举报
回复
确实如此,我也碰到过这样的问题,如果文件是全English的文本文件就没有问题,不过DOC肯定会有了!具体原因不好解释(一下子说不清),你只要弄明白midB和mid的问题就懂了。
a="中"
b=midB(a,1)+midB(a,2)
c=mid(a,1)+mid(a,2)
看看b,c各是什么?
Variant
输入出参数,ocx传递
byte
数组
,safearray使用方法,vc写ocx在vb下调用
在VC的OCX控件
中
,有时需要传输大量二进制数据,如图像或文件
内容
,这时字节
数组
(
Byte
Array)就显得非常实用。SafeArray 是一种在 COM
中
管理多维
数组
的结构,特别适合传输字节
数组
。在VC
中
,可以创建一个...
VBA语法大全,非常全
本文档将对VBA语言的基本概念、语法元素、数据类型、
变量
、常量、
数组
、注释和赋值语句等方面进行详细的介绍。 一、标识符 标识符是VBA语言
中
的一种基本概念,用于标识
变量
、常量、过程、函数、类等语言构成单位。...
VARIANT
中
存取
数组
,本例以
BYTE
数组
为例
//////////////////////////////////////////////////////////////////////////...//
VARIANT
中
存取
数组
,本例以
BYTE
数组
为例 // 本例适用于
VARIANT
中
存取一维
数组
//////////////////////////////////////////////////
BYTE
数组
与_
variant
_t
数组
互转
VARIANT
转为
BYTE
数组
_
variant
_t vtValue=com返回值; if(vtValue.vt==(VT_ARRAY|VT_UI1)) {
BYTE
*p
Byte
=NULL; ::SafeArrayAccessData(vtValue.parray,(void**)&p
Byte
); memcpy(pBuff,p
Byte
,sizeof(HEADER_...
使用
VARIANT
传递
数组
的方法及步骤
在使用COM/DCOM写组件时经常要传递
数组
,...经过查找资料发现使用
VARIANT
变量
可以传递任何类型的
数组
,随将使用
VARIANT
数组
的方法总结一下。其实在
VARIANT
传递
数组
的方法非常简单,只要理解SAFEARRAY
数组
的使用方法即可
VB基础类
7,786
社区成员
197,586
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章