有没有以字节打开文件并快速读取的方法………………

FrankWang 2000-09-06 10:14:00
用VB的Open FileName for random as #1 len=1 的方式打开文件实在太慢
有没有可以用的API,比如在一两秒内读出文件的每一个字节并储存在变量中!
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playyuer 2000-09-07
  • 打赏
  • 举报
回复
Dim FileBuffer() As Byte
Dim FileNumberS As Long
'将文件一次全取到 FileBuffer 数组里:
FileNumberS = FreeFile
Open FilePath For Binary Access Read As #FileNumberS
Dim lFileLen As Long
lFileLen = FileLen(FilePath)
If lFileLen > 0 Then
ReDim FileBuffer(1 To lFileLen) As Byte
Get #FileNumberS, , FileBuffer '将文件一次全取到 FileBuffer 数组里了
End If
shines77 2000-09-06
  • 打赏
  • 举报
回复
【VB声明】
Private Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

【说明】
从文件中读出数据。与lread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽

【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError。如启动的是一次异步读操作,则函数会返回零值,并将ERROR_IO_PENDING设置成GetLastError的结果。如结果不是零值,但读入的字节数小于nNumberOfBytesToRead参数指定的值,表明早已抵达了文件的结尾

【备注】
并非每种操作系统都支持对每种设备进行异步操作。Windows
95不支持对一个磁盘文件进行异步读操作(重复读)

【参数表】
hFile ---------- Long,文件的句柄

lpBuffer ------- Any,用于保存读入数据的一个缓冲区

nNumberOfBytesToRead - Long,要读入的字符数

lpNumberOfBytesRead - Long,从文件中实际读入的字符数

lpOverlapped --- OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal
As Long,并传递零值)
Putao 2000-09-06
  • 打赏
  • 举报
回复
WinAPI:ReadFile.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧