首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB怎么从文件的x字节开始读取,读y个字节

2013-01-01 
VB怎样从文件的x字节开始读取,读y个字节如题了,搜索到了用字节读取文件,可以把整个文件用二进制读取,但文

VB怎样从文件的x字节开始读取,读y个字节
如题了,搜索到了用字节读取文件,可以把整个文件用二进制读取,但文件非常的大,在需要数据的时候只要其中的一个小段,如何做到呢?
[解决办法]
Seek 语句示例
本示例使用 Seek 语句在文件内设置下一次读写的位置。示例中假设 TESTFILE 文件内含有用户自定义数据类型 Record 的记录。

Type Record   ' 定义用户自定义数据类型。
   ID As Integer
   Name As String * 20
End Type

如果以随机方式打开文件,Seek 将读写位置设置到下一个记录。

Dim MyRecord As Record, MaxSize, RecordNumber   ' 声明变量。
' 以随机文件方式打开文件。
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord)   ' 取得文件中的记录的数。
' 用循环读入所有记录,但是从最后的记录开始往前读。
For RecordNumber = MaxSize To 1 Step - 1
   Seek #1, RecordNumber   ' 设置读写位置。
   Get #1, , MyRecord   ' 读入一个记录。
Next RecordNumber
Close #1   ' 关闭文件。

如果不以 Random 打开文件,则 Seek 设置下一个操作发生的位置。假设 TESTFILE 文件内含有文本数据。

Dim MaxSize, NextChar, MyChar
Open "TESTFILE" For Input As #1   ' 打开输入文件。
MaxSize = LOF(1)   ' 取得文件的总字符数。
' 用循环读入所有记录,但是从最后的记录开始往前读。
For NextChar = MaxSize To 1 Step -1   
   Seek #1, NextChar   ' 设置读写位置。
   MyChar = Input(1, #1)   ' 读入一字符。
Next NextChar
Close #1   ' 关闭文件。


[解决办法]
以二进制方式打开文件, 

Open "filename" For Binary As #1

Seek #1, 位置

[解决办法]
Get # 语句就可以直接指定读取位置,可以省略 Seek # 语句了。
Option Explicit

Sub Main()
    Dim hFile As Integer
    Dim bytes() As Byte
    Dim i As Long
    
    hFile = FreeFile()
    Open "C:\temp\1.txt" For Binary Access Read As #hFile
    
    ReDim bytes(0 To 9) '长度为 10 字节
    Get #hFile, 15, bytes '从第 15 个字节开始
    
    Close #hFile
    
    '验证一下读取的数据
    For i = 0 To UBound(bytes)
        Debug.Print i, Hex(bytes(i)), Chr(bytes(i))
    Next
End Sub

热点排行