Q
读写tcl
0
A
回答
1
虽然w+
模式将工作,但它截断该文件,当你打开它(因为它的修改w
模式,它做同样的事情)。如果您不想擦除现有数据,请改为使用r+
(在这种情况下,文件必须先存在)。
当你想创建文件如果它不存在,能够通过相同的通道读取和写入,并且不想在打开时截断它,你必须使用其他表单模式描述符(来自POSIX描述得出,如果你有兴趣在助记符):
set f0 [open out11.tr {RDWR CREAT}]
(w+
是RDWR CREAT TRUNC
,r+
是平原RDWR
。)
1
下面的示例打开一个文件以w +(手段读/写,但截断c内容如果文件已经存在)。然后它写入每一行,然后回读,写入,然后回读...
set lines {
{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi}
{accumsan est ut ante ornare et porta sem iaculis. Fusce a dolor}
{magna, eget viverra quam. In sem justo, hendrerit a porttitor sit}
{amet, scelerisque eu turpis. Nulla arcu arcu, condimentum vel}
{fermentum sit amet, vulputate et sapien. Aenean convallis, purus vel}
{molestie vehicula, diam eros adipiscing nibh, in dapibus nisi orci}
{ut nisl. Ut fermentum felis a lectus lacinia dapibus. Nunc cursus}
{nunc vitae massa fermentum imperdiet. In eu lectus quis arcu}
{convallis imperdiet in quis tortor.}
}
set f [open out.txt w+]
set lastRead 0
foreach line $lines {
# Write to the file
puts $f $line
# Read it back and display to stdout
seek $f $lastRead
gets $f line2
set lastRead [tell $f]
}
close $f
相关问题
- 1. Tcl:使用tcl编写lambda和map 8.6
- 2. 文件在TCL中的读取,写入和追加
- 3. 编写一个Tcl扩展,可用于多个版本的Tcl
- 4. 阅读TCL中的Bash环境变量
- 5. tcl错误读取包索引文件
- 6. 在tcl的foreach命令读取文件
- 7. Tcl Starkit读取的Sqlite数据库
- 8. tcl exec首先读取stdout然后stderr?
- 9. Tcl/Tk在特定行中写入
- 10. 使TCL哈希不区分大小写
- 11. 将多行写入TCL中的文件
- 12. 编写Python或TCL VMD脚本
- 13. 如何在tcl中读取文件并写入其他文件替换值
- 14. 在Tcl中调用“包需要Tk”而不写入每个.tcl文件
- 15. 文件读/写VS数据库读/写
- 16. 在tcl
- 17. 在TCL
- 18. 表单mysql读写回写
- 19. TCL中的扩展TCL解释器
- 20. 阅读/写作
- 21. 读写用PHP
- 22. Postgres写/读锁
- 23. POSIX raw读/写
- 24. Sparkr读写HDFS
- 25. J2ME RMS读写
- 26. PIC18F46J50 EEPROM读/写
- 27. FileStream读/写
- 28. mysql高读写
- 29. 读/写在Java
- 30. 读/写,C#
您的问题不清楚:您是否想写1到一个文件,一次写一行,然后2)读你刚刚写的行吗? – 2012-07-29 21:19:33
你对这个'multithreading'标签绝对正面吗?你是否需要从多个操作系统线程同时访问一个文件,或者只是关于交织读/写(即关于文件位置管理)? – kostix 2012-07-30 20:41:39