找回密码
 加入
搜索
查看: 3159|回复: 8

[AU3基础] 请各位帮忙,这个二进制文件如何进行读写操作?[已解决]

  [复制链接]
发表于 2015-3-30 08:23:17 | 显示全部楼层 |阅读模式
本帖最后由 lsj0416 于 2015-4-1 11:24 编辑

附件是个二进制文件,数据结构为两列,第一列为时间,第二列为数值,内容是:1427414400        2000,我想修改成1175212800        32.88,使用以下代码:
$sFile = "test.Dat"
$hfile = FileOpen($sFile, 2 + 16)
$dt = "1175212800"
$VAR = "32.88"
$dat = Binary($dt & "        " & $VAR)
FileWrite($sFile, $dat)
FileClose($hfile)
怎么就会把源文件改成了一个文本文件了呢?

本帖子中包含更多资源

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

×
发表于 2015-3-31 17:16:24 | 显示全部楼层
目测第六行的$sFile应该改成$hFile
 楼主| 发表于 2015-3-31 19:23:37 | 显示全部楼层
$sFile = "test.Dat"
$hfile = FileOpen($sFile, 2 + 16)
$dt = "1175212800"
$VAR = "32.88"
$dat = Binary($dt & "        " & $VAR)
FileWrite($hfile, $dat)
FileClose($hfile)
改过来,也不行。
发表于 2015-3-31 22:55:35 | 显示全部楼层
回复 1# lsj0416

如果数据是二进制数据变量(而不是文本),那么将会一个字节一个字节的写入. 要进行二进制操作(Binary operation)必须使用 Fileopen() 并加上 binary 标志打开文件。
(来自 http://www.autoitx.com/Doc/html/functions/filewrite.htm  上的描述)
可以试试。
 楼主| 发表于 2015-4-1 06:26:23 | 显示全部楼层
谢谢回答,我错在哪里呢?该怎么做呢?
 楼主| 发表于 2015-4-1 11:21:59 | 显示全部楼层
发表于 2015-4-1 12:34:22 | 显示全部楼层
不好意思LZ,我看错了,谢谢反馈信息,学习了
发表于 2015-4-1 17:12:19 | 显示全部楼层
内容是:1427414400        2000


你这个内容,我到底是没明白你是怎么读出来的~~

$sFile = 'test.dat'
$hFile = FileOpen($sFile, 16)
$sText = FileRead($hFile)
FileClose($hFile)
ConsoleWrite($sText & @CRLF & Dec(Hex($sText)) & @CRLF)
 楼主| 发表于 2015-4-2 07:58:58 | 显示全部楼层
不是读出来的,而是,知道里面就这内容。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 17:06 , Processed in 0.093147 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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