反向读取二进制[已解决]
本帖最后由 蜘蛛抱蛋 于 2011-1-30 10:51 编辑可不可以从文件末尾开始读取一定数量的二进制数据?类似 FileRead($File, -100)? $aWords=stringsplit(fileread($file),'')
_ArrayReverse($aWords)
filewritefromarray($fileq, $aWords)
不知道行不行 _WinAPI_CreateFile()
_WinAPI_SetFilePointer()
_WinAPI_SetEndOfFile()
_WinAPI_ReadFile() 回复 2# netegg
呵呵,我说的是比较大的二进制文件。从头开始读太慢,我只要末尾的一定字节长度的数据
回复 3# 3mile
楼上所指的方法我也有想过一直在研究这个帖子 可是怎么的到文件末尾的 指针? _WinAPI_GetFileSizeEx 回复 5# 3mile
谢谢!尽管不懂C语言,仿照例子还是写出来了
#include <WinAPI.au3>
#include <Timers.au3>
Local $sFile, $hFile, $sText, $nBytes, $tBuffer, $pointer
$sFile = @ScriptDir & '\1.zip'
$tBuffer = DllStructCreate("byte")
Local $f = _Timer_Init()
$hFile = _WinAPI_CreateFile($sFile, 2, 2)
$pointer = _WinAPI_GetFileSizeEx($hFile) - 100
_WinAPI_SetFilePointer($hFile, $pointer)
_WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), 100, $nBytes)
_WinAPI_CloseHandle($hFile)
$sText = StringTrimLeft(DllStructGetData($tBuffer, 1),2)
$s = _Timer_Diff($f)
MsgBox(0,'',$s)
ConsoleWrite($sText)
页:
[1]