能具体点吗?我是菜鸟。 dim str1 as string Open sFile For Binary Access Read Write As #1 Get #2, ,str1 此时的str1就是文件内容吗?
VB的文件操作比较弱用API的话就比较麻烦,SetEndOfFile VB声明 Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long 说明 针对一个打开的文件,将当前文件位置设为文件末尾 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 hFile Long,指定一个文件句柄。文件的当前位置设为文件尾,文件会根据需要缩短 注解 如一个文件正作为打开文件映射对象的基准使用,则不要对其应用这个函数 Public Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long返回值 Long,如执行成功,返回文件句柄。注意文件句柄可能是无效的;例如,假设指定了OF_EXIST标志,文件在函数返回前会关闭,但它打开时的句柄却永远不会返回。如果出错,函数会返回HFILE_ERROR;此时,由lpReOpenBuff指定的OFSTRUCT结构的nErrCode会设置成发生的错误。表OpenFile-2(OFSTRUCT出错代码)对这些错误进行了总结。会设置GetLastError参数 lpFileName ----- String,欲打开文件的名字lpReOpenBuff --- OFSTRUCT,该结构填充的数据包括与文件和操作结果有关的信息wStyle --------- Long,参考表OpenFile-1(OpenFile函数的标志常数表)总结的标志常数的组合,它决定了要采取的操作方式 表OpenFile-1(OpenFile函数的标志常数表) wStyle常数
'关于打开文件用到的常数、类型等Const OFS_MAXPATHNAME = 128 Const OF_CREATE = &H1000 Const OF_READ = &H0 Const OF_WRITE = &H1 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 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
dim str1 as string
Open sFile For Binary Access Read Write As #1
Get #2, ,str1
此时的str1就是文件内容吗?
Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long
说明
针对一个打开的文件,将当前文件位置设为文件末尾
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hFile Long,指定一个文件句柄。文件的当前位置设为文件尾,文件会根据需要缩短
注解 如一个文件正作为打开文件映射对象的基准使用,则不要对其应用这个函数
Public Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long返回值
Long,如执行成功,返回文件句柄。注意文件句柄可能是无效的;例如,假设指定了OF_EXIST标志,文件在函数返回前会关闭,但它打开时的句柄却永远不会返回。如果出错,函数会返回HFILE_ERROR;此时,由lpReOpenBuff指定的OFSTRUCT结构的nErrCode会设置成发生的错误。表OpenFile-2(OFSTRUCT出错代码)对这些错误进行了总结。会设置GetLastError参数
lpFileName ----- String,欲打开文件的名字lpReOpenBuff --- OFSTRUCT,该结构填充的数据包括与文件和操作结果有关的信息wStyle --------- Long,参考表OpenFile-1(OpenFile函数的标志常数表)总结的标志常数的组合,它决定了要采取的操作方式
表OpenFile-1(OpenFile函数的标志常数表)
wStyle常数
Const OF_CREATE = &H1000
Const OF_READ = &H0
Const OF_WRITE = &H1
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 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
---------------------
确实比较麻烦
确定算法。
关于找寻最后10字节的大文件的文章CSDN 里有。
小文件就直接往后读。