lsq726 发表于 2010-3-14 19:41:37

求助。关于二进制文件 如果想替换文件内某几个数据该怎么弄?

本帖最后由 lsq726 于 2010-3-17 23:37 编辑

如:
01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 01

如果想把第20 -28位置的00[红色部分的00] 替换成别如12 34 56 78 12 34 56 78 的该怎么写?

补充一下:
二进制。。没有回车。补充一下第一行的 数字是不定的,但第二行[二进制 没回车 只是方便显示说第二行] 不变

llztt 发表于 2010-3-14 19:58:28

源码区有例子,GO吧

lsq726 发表于 2010-3-14 20:34:31

的确找了。但没找见。
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=%E4%BA%8C%E8%BF%9B%E5%88%B6+site:www.autoitx.com&start=40&sa=N

还请LS的朋友指点一下

水木子 发表于 2010-3-14 22:19:40

正则替换吧!:face (14):

netegg 发表于 2010-3-14 22:41:05

一行还是三行?

水木子 发表于 2010-3-15 11:04:45

本帖最后由 水木子 于 2010-3-15 11:20 编辑

办法比较笨!:face (37):#include <Array.au3>
Dim $avArray = , $z, $x = 1, $Text

$sText = '01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 01' & @CRLF & _
                '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00' & @CRLF & _
                '01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 01'
MsgBox(0, '原字符串', $sText)

$sReg = StringRegExp($sText, '\w+', 3)
For $i = 18 To 25
        $sReg[$i] = $avArray[$z]
        $z += 1
Next

For $o = 0 To UBound($sReg) - 1
        If StringIsInt($x / 15) Then
                $Text &= $sReg[$o] & ' ' & @CRLF
        Else
                $Text &= $sReg[$o] & ' '
        EndIf
        $x += 1
Next

MsgBox(0, '替换结果', $Text)

lsq726 发表于 2010-3-17 23:37:11

二进制。。没有回车。补充一下第一行的 数字是不定的,但第二行[二进制 没回车 只是方便显示说第二行] 不变

llztt 发表于 2010-3-18 08:21:35

的确找了。但没找见。
&start=40&sa=N

还请LS的朋友指点一下
lsq726 发表于 2010-3-14 20:34 http://www.autoitx.com/images/common/back.gif

我说的是源码区啊,你怎么跑GOOGLE上去找了
坛子里有人写了UDF,再源码区有例子
页: [1]
查看完整版本: 求助。关于二进制文件 如果想替换文件内某几个数据该怎么弄?