lsj0416 发表于 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)
怎么就会把源文件改成了一个文本文件了呢?

haijie1223 发表于 2015-3-31 17:16:24

目测第六行的$sFile应该改成$hFile

lsj0416 发表于 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)改过来,也不行。

user030 发表于 2015-3-31 22:55:35

回复 1# lsj0416

如果数据是二进制数据变量(而不是文本),那么将会一个字节一个字节的写入. 要进行二进制操作(Binary operation)必须使用 Fileopen() 并加上 binary 标志打开文件。
(来自 http://www.autoitx.com/Doc/html/functions/filewrite.htm上的描述)
可以试试。

lsj0416 发表于 2015-4-1 06:26:23

谢谢回答,我错在哪里呢?该怎么做呢?

lsj0416 发表于 2015-4-1 11:21:59

参照这个帖子解决了!
http://www.autoitx.com/forum.php?mod=viewthread&tid=16496&highlight=%B6%FE%BD%F8%D6%C6

user030 发表于 2015-4-1 12:34:22

不好意思LZ,我看错了,谢谢反馈信息,学习了

haijie1223 发表于 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)

lsj0416 发表于 2015-4-2 07:58:58

不是读出来的,而是,知道里面就这内容。
页: [1]
查看完整版本: 请各位帮忙,这个二进制文件如何进行读写操作?[已解决]