roc 发表于 2007-11-30 11:16:11

二进制文件读取问题

在VB中,我们可以用下面的方法读取二进制文件:

Dim   buffer()   As   Byte   
Dim   mlen   As   Long   
mlen   =   FileLen("c:\10.jpg")   
ReDim   buffer(mlen   -   1)   
Open   "c:\10.jpg"   For   Binary   As   #1   
Get   #1,   ,   buffer   
'读文件:   
Get   #1,   ,   buffer   
Close   #1   
MsgBox   UBound(buffer)

在Robot中编译时产生如图所示:

错误提示,哪位大哥怎么办?

roc 发表于 2007-11-30 11:28:22

郁闷ing...
哪位大哥帮忙回答一下啊!

村上舞!舞!舞 发表于 2007-12-1 23:41:59

已经提示你

Dim   buffer()   As   Byte 这一句中的Byte数据类型错误了。怎么会写出Byte这种数据类型出来,你上面有自定义数据类型吗?

roc 发表于 2007-12-3 09:26:38

没有定义,那应该用什么样的数据类型呢?用其他的比如:Variant我也试过了,会产生错误如图:
其他方法又不能读取,如村上舞!舞!舞所说应该怎么读取二进制文件呢?请给与解决方法,谢谢!

板砖 发表于 2007-12-3 09:50:31

学习中.

村上舞!舞!舞 发表于 2007-12-3 10:17:00

这个脚本去参考一下,不知你读取二进制文件目的是什么

Dim   buffer()
Dim str1 as string*3
Dim Blen as Long
Dim   mlen   As   Long   
mlen   =   FileLen("c:\10.jpg")   
ReDim   buffer(mlen   -   1)   
Blen = 1

Open   "c:\10.jpg"   For   Binary   As   #1   len=3
'读文件:   
Get   #1,Blen,str1
Close   #1   
MsgBox   UBound(buffer)

roc 发表于 2007-12-3 18:49:31

我想我的问题说的不够清楚

谢谢村上舞!舞!舞的回答及给出的示例代码。
我的问题是这样的,从WEB页面获取对象EditBox的CompareData验证点如图:


在UEStudio中用十六进制打开如下图示:


我想打开并修改数据“10.61.168.196”为“10.53.188.121”,并且要求修改后还能够用
Gird Comparator打开,也就是说修改数据而不改变文件存储格式。我曾尝试用文本文件方
式打开并写入,结果造成修改后不能用Gird Comparator打开。所以尝试用二进制打开,请
问能不能给出一个解决方案,再次谢谢村上舞!舞!舞版主!

村上舞!舞!舞 发表于 2007-12-3 22:22:32

我看你的那个获取的EditBox的CompareData验证点其实获取的是剪贴板的验证点

,基线文件中的数据也是录制时剪贴板中的数据,其在实际运行时机制是拿你当前剪贴板内的数据与基线文件中的数据相比较。而你要修改基线文件是什么目的,有点晕了。可不可以把你测试中要达到的目的说说。
想获取对象EditBox中的各项属性值包括Value值可不是用你的那个剪贴板验证点实现的啊

roc 发表于 2007-12-4 09:31:12

为什么要改基线文件

我的基线文件内容是FTP服务器的IP地址,由于测试工程文件的移植而导致FTP服务器IP地址的改变(必然导致验证点数据的改变,当然也有其他相关验证点项的改变)。测试要实现一次修改验证点项数据(集中修改工程中要修改的验证点数据,比如本例中的EditBox中的Value值),而不是在一大堆工程文件中去逐一人工查找和修改验证点,而后者必然费时和容易遗漏,也不利于新接手者对Robot工程文件的维护。Robot所有查证点内容如下:
Alphanumeric      —捕获及比较字母或数字的值;
Clipboard — 捕获及比较复制到剪贴板的字母数字的数据;
File Comparison —比较两个文件的内容;      
File Existence —检查一个指定的文件是否存在;
Menu —      捕获及比较菜单的文本、快捷键及状态,能够捕捉到第五级子菜单;
Module Existence —检查连接到指定上下文(过程)或内存的任意地方的模块是否存在;
Object Data —捕获及比较目标数据;
Object Properties —捕获及比较对象的属性;
Region Image      —捕获及比较位图的屏幕区域;
Web Site Compare —捕获Web站点的基线,并及时与另一Web站点比较;
Web Site Scan —检查每次修改后Web站点的内容,确保这些变化不会有差错;      
Window Existence —检查继续回放前指定的窗口是否显示;
Window Image —      捕获及比较位图(菜单、标题栏和未捕获的边框)窗口的客户区域。

再次劳烦,谢谢以上既给解答。

村上舞!舞!舞 发表于 2007-12-4 22:24:12

这些我确实还从未实践过

。这两天找个时间我也去做做。大概了解你的意思了。不过你若是手工修改二进制试过了没?有用吗

roc 发表于 2007-12-5 11:47:33

我也一直再想办法

试过了,如果只是修改那些IP地址,修改后还能够用Gird Comparator打开,谢谢村上舞!舞!舞大哥多次深夜关注小弟问题,谢谢!您辛苦了,希望有空能够一起研究Robot。

roc 发表于 2007-12-7 16:52:10

没人关注,快沉底了!!!!!!!!!!

各位版主,请关注一下吧!

roc 发表于 2007-12-14 11:44:38

看来这个问题是没法解决了!哎......

村上舞舞舞版主那里去了啊!帮小弟解决了没有?怎么没有音讯了?

roc 发表于 2007-12-26 12:31:47

没人关注

没人关注

村上舞!舞!舞 发表于 2007-12-27 16:47:13

我在关注呢,还没忘记.,最近这段时间刚到一家新公司所以都较忙一些.等抽出时间再来一起看看.其它人呢,有办法的话不防过来说一说
页: [1]
查看完整版本: 二进制文件读取问题