AU3如何采用二进制读取一个文件的内容
本帖最后由 feicuiboy 于 2010-8-8 10:47 编辑AU3如何采用二进制读取一个文件的内容,有这样一个命令或函数吗??
比如exe或其他文件,作用是想把文件以文本方式保存,用的时候在该后缀即可。
比如图一改各后缀就成图二的exe文件了,而且正常使用。
FileOpen ?? 为什么要用2进制。 回复 2# xsjtxy
保存文件用 用16进制不更好吗? fileopen(x,16) 本帖最后由 feicuiboy 于 2010-8-8 11:17 编辑
写了个读取的,但是保存还是文本,奇怪?$sFile = "2.txt"
$hFile = FileOpen($sFile, 16)
$bBinary = FileRead($hFile)
FileClose($hFile)
FileWrite(@ScriptDir & '\11.txt, $bBinary)
Msgbox(0, "", $bBinary)但是为什么文本里显示不是16进制呢,很奇怪{:face (301):}
汗咯……Lz先搞明白二进制储存和以二进制显示文件的关系。 你已经以二进制写入了文件,你的文本软件讲二进制转化为ANSI字符了 #include <WinAPI.au3>
Global $sFile, $hFile, $sText, $nBytes, $tBuffer, $iMemo,$slen
$sFile="pi.exe"
$objfile="abc.exe"
$hfile=FileOpen($sFile,16)
$sText=FileRead($hFile)
$slen=BinaryLen($sText)
FileClose($sFile)
MsgBox(0,0,"read ok")
$tBuffer = DllStructCreate("byte[" & $slen & "]")
DllStructSetData($tBuffer, 1, $sText)
$obj_hFile = _WinAPI_CreateFile($objFile, 0,4)
_WinAPI_WriteFile($obj_hfile,DllStructGetPtr($tBuffer),$slen, $nBytes)
_WinAPI_CloseHandle($obj_hFile)
MsgBox(0,0,"write ok")
回复 8# 3mile
对DllStructCreate这类语句,看了帮助文件后还是没能弄懂,能不能解释一下,谢谢 这个不大好解释,请GOOGLE"数据结构" 16进制就是二进制啊 谢谢分享
页:
[1]