VB中关于二进制的操作
二进制文件的操作是最基础,最简单,也是最强悍的. 我们先来看看相关语法,Open语句: Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength] 各个部分的含义如下: pathname 必要的字符串表达式,指定带路径的文件名. mode 必要关键字,指定文件方式Append,Binary,Input,Output或Random方式.如果未指定方 式,则以 Random 访问方式打开文件. access 可选关键字,说明打开的文件进行的操作.有Read,Write或Read Write 操作. lock 可选关键字,说明限定于其它进程打开的文件的操作,有Shared,Lock Read,Lock Write和 Lock Read Write 操作. filenumber 必要一个有效的文件号,范围在1到511之间.使用FreeFile 函数可得到下一个可用的文件号. reclength 可选小于或等于32767(字节)的一个数. 对于用随机访问方式打开的文件,该值就是记录长度 对于顺序文件,该值就是缓冲字符数. *如果 pathname 指定的文件不存在,则用Append,Output或Random方式打开文件时,可以建立这一文件. *如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生. *如果 mode 是 Binary 方式,则 Len 子句会被忽略掉.在Binary,Input 和Random方式下可以用不同的文件号打开同一文件,而不必先将该文件号关闭.在Append 和Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件号. 相关操作语句: Get 语句,将一个已打开的磁盘文件读入一个变量之中. 语法 各部分含义如下: filenumber必要的有效文件号 recnumber 可选Variant (Long)记录号(Random 方式的文件)或字节数(Binary 方式的文件),以表 示在此处开始读出数据 varname 必要一个有效的变量名,将读出的数据赋值给该变量.
Put语句正好是Get的反过程.
例子一: 打开一个二进制文件,读取每一个字节的值. Dim f As Integer,b() As Byte Dim i as Long f = FreeFile Open app.Path & "/1.dat" for Binary As #f i = lof(f) Redim b(1 to f) For i = 1 to lof(f) Get #f,i,b(i) Next i Close #f
例子二: 修改某个二进制文件特定字节的值,比如PlantsVSZombies(植物大战僵尸)这个游戏的存档文件,我们要修改它的金钱.金钱在User2.dat中,偏移量(OffSet)为00000008到0000000B四个字节,即一个Long.但是游戏最小金钱单位是10所以只要写入99999游戏中就显示999990了. Open App.Path & "/user2.dat" For Binary As #1 这里我们直接写入一个Long,而不是单个字节的写,那样麻烦.好了开始有人想写修改器了. Seek 语句可以用来获取当前读取的位置,目前我感觉没多大用处,所以就不说了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |