如何读取Vartype为8209的VBscript变量?
VBScript读取第三方软件多边形GEOMETRY变量问题
我在第三方软件中使用VBScript开发,调试方式仅支持写入日志文件或MsgBox。尝试读取多边形对象的GEOMETRY变量时,发现其VarType为8209,判断这是字节数组(vbByte类型),数据格式为包含多边形相关信息的二进制结构。
已尝试以下操作:
- 执行代码
for each x in GEOMETRY,触发「类型不匹配」错误 - 执行代码
v = GEOMETRY(0),触发「类型不匹配」错误 - 调用
UBound(GEOMETRY),返回值为1179
补充测试:执行UBound(GEOMETRY,2)失败,确认GEOMETRY是一维数组。
补充操作:已成功将GEOMETRY加载到ADODB.Stream对象,但结果不符合预期。使用代码如下:
Set BinaryStream = CreateObject("ADODB.STREAM") BinaryStream.Type = 1 'binary BinaryStream.Open BinaryStream.Write GEOMETRY MsgBox("Size " & BinaryStream.Size & vbNewLine & _ "vartype " & vartype(BinaryStream.Read))
运行后MsgBox显示:Size为1180,vartype为1(即vbNull)。
内容的提问来源于stack exchange,提问作者Bryan
相关产品推荐
相关产品推荐

