TCL:将二进制/逻辑数据写入文件

时间:2015-10-28 01:46:33

标签: binary tcl tk

我正在尝试在tcl中写入1或0的列表。我希望最有效的方法是以二进制格式编写它以使用尽可能少的位,特别是因为我预计会处理许多兆字节的数据。我正在关注以下示例:

https://groups.google.com/forum/#!msg/comp.lang.tcl/HrC-VlfRL_E/PAQdLRTyrMEJ http://wiki.tcl.tk/1180

但是当我按照例子去读取我的二进制数据时,我确实得到了“二进制”的工作。到底是怎么回事?

1 个答案:

答案 0 :(得分:2)

上面的示例使用语法

[binary format c1 0 1 1]

但应该转置'格式'和'二进制'

set fp [open text.bin w]
set outBinData [binary format ccc 1 0 1 ]
puts "Format done: $outBinData"
puts -nonewline $fp $outBinData
close $fp
set fp [open text.bin r]
set inBinData [read $fp]
close $fp
binary scan $inBinData ccc val1 val2 val3
puts "Scan done: $val1 $val2 $val3"

根据https://www.tcl.tk/man/tcl8.5/TclCmd/binary.htm#M4

提供所需结果的示例脚本(tcl 8.5可能是其他版本):

{{1}}