多谢各位版主的教导和帮助,我在这里解释一下,欲写入的文件比较特殊,它的数据方式似乎有他自己的排列和计算方式,所以需要写入的值有些奇怪,例如,1~9他要求写入的值是01~09;
A~F他要求写入的值是0A~0F;G~Z他要求写入的是10~29。我原来没有发现这个问题,只是直接读取,所以出现0H、0G等等,这是我的不对,给各位带来麻烦,真是不好意思。
目前我已经TXT文件内容按照他要求的值正常生成了,里面包含有00~09、0A~0F、10~29等大部分的值,也能正确读取和写入文件(我用的是笨方法),但是新的问题出现了,本来我只想改写文件的从237字节开始每第六个字节值,但是改写完后发现,不但从237字节开始每第六个字节值被改变了(这是正确的),六个字节中第一个字节也发生了改变,全变成“00”了,
例如:原6个字节是412D41510001,我要改变成412D41510003,但经过我的程序改写后,却变成002D41510003。
百思不得其解,不知道哪里错了,还请各位版主多多帮助。
我的写入程序如下:
程序代码:
i = 0
'Dim A1 As Variant
Open Dir2.Path & "\" & File2.FileName & "-temp2.txt" For Input As #5
Open Dir1.Path & "\" & File1.FileName For Binary As #6
Do While Not EOF(5)
Line Input #5, temp2
' A1 = Hex("&H" + temp2)
If temp2 = "00" Then
Put #6, (((i * 6) + 5) + 237), &H0
End If
If temp2 = "01" Then
Put #6, (((i * 6) + 5) + 237), &H1
End If
If temp2 = "02" Then
Put #6, (((i * 6) + 5) + 237), &H2
End If
If temp2 = "03" Then
Put #6, (((i * 6) + 5) + 237), &H3
End If
If temp2 = "04" Then
Put #6, (((i * 6) + 5) + 237), &H4
End If
If temp2 = "05" Then
Put #6, (((i * 6) + 5) + 237), &H5
End If
If temp2 = "06" Then
Put #6, (((i * 6) + 5) + 237), &H6
End If
If temp2 = "07" Then
Put #6, (((i * 6) + 5) + 237), &H7
End If
If temp2 = "08" Then
Put #6, (((i * 6) + 5) + 237), &H8
End If
If temp2 = "09" Then
Put #6, (((i * 6) + 5) + 237), &H9
End If
If temp2 = "0A" Then
Put #6, (((i * 6) + 5) + 237), &HA
End If
If temp2 = "0B" Then
Put #6, (((i * 6) + 5) + 237), &HB
End If
If temp2 = "0C" Then
Put #6, (((i * 6) + 5) + 237), &HC
End If
If temp2 = "0D" Then
Put #6, (((i * 6) + 5) + 237), &HD
End If
If temp2 = "0E" Then
Put #6, (((i * 6) + 5) + 237), &HE
End If
If temp2 = "0F" Then
Put #6, (((i * 6) + 5) + 237), &HF
End If
If temp2 = "10" Then
Put #6, (((i * 6) + 5) + 237), &H10
End If
If temp2 = "11" Then
Put #6, (((i * 6) + 5) + 237), &H11
End If
If temp2 = "12" Then
Put #6, (((i * 6) + 5) + 237), &H12
End If
If temp2 = "13" Then
Put #6, (((i * 6) + 5) + 237), &H13
End If
If temp2 = "14" Then
Put #6, (((i * 6) + 5) + 237), &H14
End If
If temp2 = "15" Then
Put #6, (((i * 6) + 5) + 237), &H15
End If
If temp2 = "16" Then
Put #6, (((i * 6) + 5) + 237), &H16
End If
If temp2 = "17" Then
Put #6, (((i * 6) + 5) + 237), &H17
End If
If temp2 = "18" Then
Put #6, (((i * 6) + 5) + 237), &H18
End If
If temp2 = "19" Then
Put #6, (((i * 6) + 5) + 237), &H19
End If
If temp2 = "20" Then
Put #6, (((i * 6) + 5) + 237), &H20
End If
If temp2 = "21" Then
Put #6, (((i * 6) + 5) + 237), &H21
End If
If temp2 = "22" Then
Put #6, (((i * 6) + 5) + 237), &H22
End If
If temp2 = "23" Then
Put #6, (((i * 6) + 5) + 237), &H23
End If
If temp2 = "24" Then
Put #6, (((i * 6) + 5) + 237), &H24
End If
If temp2 = "25" Then
Put #6, (((i * 6) + 5) + 237), &H25
End If
If temp2 = "26" Then
Put #6, (((i * 6) + 5) + 237), &H26
End If
If temp2 = "27" Then
Put #6, (((i * 6) + 5) + 237), &H27
End If
If temp2 = "28" Then
Put #6, (((i * 6) + 5) + 237), &H28
End If
If temp2 = "29" Then
Put #6, (((i * 6) + 5) + 237), &H29
End If
i = i + 1
If i = (114 * 118) - 1 Then
Exit Do
End If
Loop
Close #5
Close #6
MsgBox "ok"
附件清单如下:欲改写的文件、需要写入的第六位字节(TXT文件)、写入第六位字节前读出的6位字节、写入第六位字节后读出的6位字节,共四个文件。