各位大侠,小弟写了段代码,是用来读取二进制文件的,要在读取之后对已读取的每一个字节做处理,然后写入另一个文件。代码如下。
Dim buffer() As Byte
ReDim buffer(4095) As Byte
Open "d:\1.dbb" For Binary As #1
Open "d:\2.dbb" For Binary As #2
Do While Not EOF(1)
Get #1, , buffer
For i = 0 To 4095
buffer(i) = buffer(i) Xor a(0) '数组a()已经在程序的其它地方完成了初始化,此处可以直接使用
Next i
Put #2, , buffer
Loop
Close #1
Close #2现在的问题是,当二进制文件小于2G的时候,该程序无误,而一旦当二进制文件超过2G时,程序就会出错,因为Get和Put语句中的记录数(用二进制方式打开则为字节数)是长整型,其表示范围有限,无法表示2G以上的字节数。
这个问题该如何解决呢?
Dim buffer() As Byte
ReDim buffer(4095) As Byte
Open "d:\1.dbb" For Binary As #1
Open "d:\2.dbb" For Binary As #2
Do While Not EOF(1)
Get #1, , buffer
For i = 0 To 4095
buffer(i) = buffer(i) Xor a(0) '数组a()已经在程序的其它地方完成了初始化,此处可以直接使用
Next i
Put #2, , buffer
Loop
Close #1
Close #2现在的问题是,当二进制文件小于2G的时候,该程序无误,而一旦当二进制文件超过2G时,程序就会出错,因为Get和Put语句中的记录数(用二进制方式打开则为字节数)是长整型,其表示范围有限,无法表示2G以上的字节数。
这个问题该如何解决呢?
CreateFile, SetFilePointer, GetFileSize, ReadFile, WriteFile, ...话说当文件大于2G时,你这代码会很“卡”吧