Const OFS_MAXPATHNAME = 128
Const OF_CREATE = &H1000
Const OF_READ = &H0
Const OF_WRITE = &H1
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long
Private Type OVERLAPPED
Internal As Long
InternalHigh As Long
offset As Long
OffsetHigh As Long
hEvent As Long
End Type
Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
Private Sub Command1_Click()
Dim OF As OFSTRUCT
Dim hFile As Long
Dim flen As Long
Dim hfilename As String
Dim lnglong As Long
Dim buff() As Byte
Dim i As Long
Dim realnum As Long
hfilename = "D:\ms\swinapi12\mc.txt"
hFile = OpenFile(hfilename, OF, OF_READ)
flen = GetFileSize(hFile, lnglong)
ReDim buff(flen - 1)
i = ReadFile(hFile, buff(0), flen, realnum, ByVal 0&)
CloseHandle hFile
Dim s As String
s = StrConv(buff, vbUnicode)
Text1.Text = s
End Sub
Open "d:\csys\8504\ctc" For Binary Access Read As #1
ReDim Buff(267)
Do While Not EOF(1)
Get #1, , Buff '每次读268个byte进来
'Call 处理Buff 的Routine
Loop
Close #1
'以下是写入Binary file的程式
Dim Buff() As Byte
Open "c:\tc" For Binary Access Write As #1
ReDim Buff(10)
Buff = StrConv("这是一个11", vbFromUnicode)
Put #1, , Buff
ReDim Buff(1)
Buff(0) = 210
Buff(1) = 70
Put #1, , Buff
Close #1
End Sub