标题: vb问题(2)
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2004-12-27 13:31 资料 个人空间 短消息 只看该作者 QQ
麻烦问一下:假如将一个十六进制的文件(比如英杰传的main.exe)取文件号为#1,那么将该文件地址为0x030FBC的地方改为FF,问语句是什么?谢谢!


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2004-12-28 18:24 资料 文集 短消息 只看该作者


QUOTE:
原帖由阿尔法孝直于2004-12-27, 13:31:49发表
麻烦问一下:假如将一个十六进制的文件(比如英杰传的main.exe)取文件号为#1,那么将该文件地址为0x030FBC的地方改为FF,问语句是什么?谢谢!

dim v as byte
v = 255
put #1, 200636, v

我很久不用vb读写文件了,大概是这么写。


顶部
性别:未知-离线 Tom Joad

Rank: 4
组别 校尉
级别 破贼校尉
功绩 16
帖子 93
编号 6524
注册 2004-4-5


发表于 2004-12-28 20:53 资料 文集 短消息 只看该作者


QUOTE:
原帖由Maxwell于2004-12-28, 18:24:17发表
dim v as byte
v = 255
put #1, 200636, v

我很久不用vb读写文件了,大概是这么写。

地址好象要加1的:
put #1, &H30FBC+1, v
今天天氣好冷啊!
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2004-12-28 21:14 资料 文集 短消息 只看该作者


QUOTE:
原帖由Tom Joad于2004-12-28, 20:53:06发表

QUOTE:
原帖由Maxwell于2004-12-28, 18:24:17发表
dim v as byte
v = 255
put #1, 200636, v

我很久不用vb读写文件了,大概是这么写。

地址好象要加1的:
put #1, &H30FBC+1, v
今天天氣好冷啊!  

嗯,有道理,不知道原文给的地址是0起还是1起的,用c/c++习惯了,都是给什么地址写什么地址的。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-7 13:46 资料 个人空间 短消息 只看该作者 QQ
本人调用了你们所说的语句,发现0x30FBC与0x30FBD都被改成了00(如图所示)
怪哉!Help!


图片附件: jsyx.jpg (2005-1-7 13:46, 111.08 K)

顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-8 12:12 资料 文集 短消息 只看该作者
你用的代码完整贴出来看看,不太清楚是怎么回事。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-8 15:47 资料 个人空间 短消息 只看该作者 QQ
Put 200636,255
Put 200637,255
Put 200637,&HFF
Put &H30FBC,&HFF
Put &H30FBD,&HFF
我就试了这几种,每试完一种后都用原来的main.exe还原改过的main.exe!可就是30FBC=00,30FBD=00!
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2005-1-8 18:17 资料 主页 文集 短消息 只看该作者
你用Maxwell的那个代码是不会出错的。
至于你提供的那些代码,改成CByte(255)试试看
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-9 10:17 资料 个人空间 短消息 只看该作者 QQ
哈哈,终于成功了!
[Put &H30FBD Cbyte(255)]
为表示感谢,送给van和maxwell每人10通宝。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-10 12:30 资料 个人空间 短消息 只看该作者 QQ
但是引发了下一个问题:
虽然30FBC被成功地改成了FF,但30FBD被改成了00(原值是04)!


图片附件: jsyx1.jpg (2005-1-10 12:30, 109.91 K)

顶部
性别:未知-离线 金圭子

白衣伯爵中大夫

Rank: 14Rank: 14Rank: 14Rank: 14Rank: 14
组别 白衣卿相
级别 征西将军
好贴 4
功绩 265
帖子 4926
编号 27961
注册 2004-12-16


发表于 2005-1-10 12:52 资料 文集 短消息 只看该作者
我随便弄了个文件,写一串aaaaaaaa
然后用
Private Sub Command1_Click()
Open "C:\a.txt" For Binary As #1

Put #1, 6, 255

Close #1
End Sub

在5H变成FF,6H变成0


但是如果用
Private Sub Command1_Click()
Open "C:\a.txt" For Binary As #1

Put #1, 6, CByte(255)

Close #1
End Sub
这个则就仅仅是5H变成了FF,6H还是61(a)
好像没出现你的情况啊?
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-11 13:27 资料 文集 短消息 只看该作者


QUOTE:
原帖由阿尔法孝直于2005-01-10, 12:30:46发表
但是引发了下一个问题:
虽然30FBC被成功地改成了FF,但30FBD被改成了00(原值是04)!

如果两个字节被改了说明没有正确识别类型,我觉得我的那个代码应该不会出错。用cbyte转换的也不会出错才对。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-19 13:48 资料 个人空间 短消息 只看该作者 QQ
继续 ask for help
本人做了个实验:
在VB里执行下列语句:
Private Sub Com1_Click()
Open "d:\sgzyjz\Main.exe" For Binary As #1
Dim a As String * 1
Get #1, &H30FBD, a
Debug.Print a
End Sub
结果不是"v",而是空格!Why?
(事先确定30FBC=76)
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-19 14:36 资料 文集 短消息 只看该作者


QUOTE:
原帖由阿尔法孝直于2005-01-19, 13:48:54发表
继续 ask for help
本人做了个实验:
在VB里执行下列语句:
Private Sub Com1_Click()
Open "d:\sgzyjz\Main.exe"
For Binary As #1
Dim a As String * 1
Get #1, &H30FBD, a
Debug.Print a
nd Sub
结果不是"v",而是空格!Why?
(事先确定30FBC=76)

这里有点问题吧
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2005-1-19 20:54 资料 主页 文集 短消息 只看该作者
那你把a转成byte数组,看看首元素是多少?
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:15 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由Maxwell于2005-01-19, 14:36:35发表

QUOTE:
原帖由阿尔法孝直于2005-01-19, 13:48:54发表
继续 ask for help
本人做了个实验:
在VB里执行下列语句:
Private Sub Com1_Click()
Open "d:\sgzyjz\Main.exe"
For Binary As #1
Dim a As String * 1
Get #1, &H30FBD, a
Debug.Print a
nd Sub
结果不是"v",而是空格!Why?
(事先确定30FBC=76)

这里有点问题吧

按照十六进制的表示方法,第一字节是0,而按照VB的表示方法,第一字节是1
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:19 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由van于2005-01-19, 20:54:26发表
那你把a转成byte数组,看看首元素是多少?

将它改了一下:
Private Sub Com1_Click()
Open "d:\sgzyjz\Main.exe" For Binary As #1
Dim a As Byte
Get #1, &H30FBD, a
Debug.Print a
End Sub
结果不是118,而是0
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2005-1-20 12:20 资料 主页 文集 短消息 只看该作者
刚才copy了你的代码试了一下,是“v”啊,不应该出问题的
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2005-1-20 12:22 资料 主页 文集 短消息 只看该作者
那估计是路径错了。你看看lof(1)是不是0,是0就说明没有找到文件
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-20 12:26 资料 文集 短消息 只看该作者


QUOTE:
原帖由阿尔法孝直于2005-01-20, 12:15:56发表

QUOTE:
原帖由Maxwell于2005-01-19, 14:36:35发表
[quote]原帖由阿尔法孝直于2005-01-19, 13:48:54发表
继续 ask for help
本人做了个实验:
在VB里执行下列语句:
Private Sub Com1_Click()
Open "d:\sgzyjz\Main.exe"
For Binary As #1
Dim a As String * 1
Get #1, &H30FBD, a
Debug.Print a
nd Sub
结果不是"v",而是空格!Why?
(事先确定30FBC=76)

这里有点问题吧

按照十六进制的表示方法,第一字节是0,而按照VB的表示方法,第一字节是1 [/quote]
用vb不用从0计,这样看上去太不方便了。
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-20 12:29 资料 文集 短消息 只看该作者
我没有你用的文件,但是试了一下其他的文件也没有问题。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:35 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由van于2005-01-20, 12:22:16发表
那估计是路径错了。你看看lof(1)是不是0,是0就说明没有找到文件

d:\sgzyjz\main.exe确实存在。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:44 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由van于2005-01-20, 12:20:58发表
刚才copy了你的代码试了一下,是“v”啊,不应该出问题的

你瞧,一个空格!(红圈处)


图片附件: error6.jpg (2005-1-20 12:44, 99.72 K)

顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:49 资料 个人空间 短消息 只看该作者 QQ
30FBC确实等于76("v")


图片附件: jsyx2.jpg (2005-1-20 12:49, 161.34 K)

顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-20 12:50 资料 文集 短消息 只看该作者
你先读个简单文件试试。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-20 12:54 资料 个人空间 短消息 只看该作者 QQ
简单文件可以正常读。
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2005-1-20 13:07 资料 主页 文集 短消息 只看该作者
你把一开始的Close移到Debug后面去。为什么一开始要close而最后反而不用呢?
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-21 10:50 资料 个人空间 短消息 只看该作者 QQ
防止二次打开文件产生错误。
顶部
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6036
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2005-1-21 12:08 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由van于2005-01-20, 13:07:04发表
你把一开始的Close移到Debug后面去。为什么一开始要close而最后反而不用呢?

我按照你的建议,改了一下:

Private Sub Com1_Click()
Open "d:\sgzyjz\main.exe" For Binary As #1
Dim a As String * 1
Get #1, &H30FBD, a
Debug.Print a
Close #1
End Sub

结果仍然是空格
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-21 12:20 资料 文集 短消息 只看该作者
你传这个文件上来试试吧。


顶部

正在浏览此帖的会员 - 共 5 人在线




当前时区 GMT+8, 现在时间是 2025-2-5 20:01
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.017109 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP