找回密码
 加入
搜索
查看: 4061|回复: 11

[AU3基础] AU3如何采用二进制读取一个文件的内容

  [复制链接]
发表于 2010-8-8 10:09:02 | 显示全部楼层 |阅读模式
本帖最后由 feicuiboy 于 2010-8-8 10:47 编辑

AU3如何采用二进制读取一个文件的内容,有这样一个命令或函数吗??
比如exe或其他文件,作用是想把文件以文本方式保存,用的时候在该后缀即可。

比如图一改各后缀就成图二的exe文件了,而且正常使用。







FileOpen ??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-8-8 10:31:18 | 显示全部楼层
为什么要用2进制。
 楼主| 发表于 2010-8-8 10:49:13 | 显示全部楼层
回复 2# xsjtxy


保存文件用
发表于 2010-8-8 10:50:49 | 显示全部楼层
用16进制不更好吗?
发表于 2010-8-8 10:52:30 | 显示全部楼层
fileopen(x,16)
 楼主| 发表于 2010-8-8 11:12:31 | 显示全部楼层
本帖最后由 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进制呢,很奇怪



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-8-8 11:42:14 | 显示全部楼层
汗咯……Lz先搞明白二进制储存和以二进制显示文件的关系。 你已经以二进制写入了文件,你的文本软件讲二进制转化为ANSI字符了

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-8-8 11:52:36 | 显示全部楼层
#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")

评分

参与人数 2金钱 +30 收起 理由
afan + 20
feicuiboy + 10 谢谢

查看全部评分

 楼主| 发表于 2010-8-8 12:06:05 | 显示全部楼层
回复 8# 3mile


  对DllStructCreate这类语句,看了帮助文件后还是没能弄懂,能不能解释一下,谢谢
发表于 2010-8-8 13:14:57 | 显示全部楼层
这个不大好解释,请GOOGLE"数据结构"
发表于 2010-8-15 08:28:38 | 显示全部楼层
16进制就是二进制啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-4 18:00 , Processed in 0.089087 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表