【问题标题】:File reading, writing and appending in TCLTCL中的文件读写和追加
【发布时间】:2011-08-03 00:35:27
【问题描述】:

在 TCL 中,如何使用for 循环或foreach 循环将不同的内容附加到单个文件中?

【问题讨论】:

  • “不同的内容”是什么意思?

标签: file-io tcl


【解决方案1】:

你的意思是这样的吗?

set fo [open file a]
foreach different_content {"text 1" "text two" "something else" "some content"} {
  puts $fo $different_content
}
close $fo

您以a 模式(追加)打开文件file 并写入文件描述符(示例中为$fo)。

更新:如果要追加变量内容,则必须将脚本更改为:

set fo [open file a]
foreach different_content [list $data1 $data2 $data3 $data4] {
  puts $fo $different_content
}
close $fo

【讨论】:

  • 没关系。但我还有一个问题。问题是假设如果我这样声明: set data1 "connect / as sysdba;\n" set data2 {spool $TMP/"DBTEST"_dbmode.txt} set data3 "\nSELECT OPEN_MODE, NAME, CONTROLFILE_TYPE FROM V\$ DATABASE;\n" 等等....如果我想写入一个文件,那么我该如何替换 data1,data2 ..... 值。正是我想要的我想把 $data1 值放在 foreach 循环中,所以我该怎么做,请帮帮我.. set data4 "spool off;\n"
  • @galvin:我不确定我是否理解正确,但我更新了我的答案。
  • 看看我定义变量值的情况让它成为:设置数据1“这是数据1值”,第二个是设置数据2“这是数据2值”现在我想写变量data1的值和data2 使用 foreach 循环,所以我该怎么做,请帮助我。我在这里这样做: set fo [open $filename w] foreach different_content {data1 data2} { puts $fo $different_content } close $fo } 但它不起作用.???????????? ???
  • @galvin:如果你这样做,你会将“data1”和“data2”写入文件。你必须做例如foreach different_content "$data1 $data2" {puts $fo $different_content}
【解决方案2】:

以下代码适用于从文件中读取,其中 sample.tcl 文件位于“p”文件夹中。

标题

set fp [open "p://sample.tcl" r]

set file_data [read $fp]

puts $file_data

close $fp

【讨论】:

    【解决方案3】:

    以下代码在文件夹'P' 中创建一个文本文件并写入其中。

    set fid [open p:\\temp.txt w]
    
    puts $fid "here   is the first line."
    
    close $fid
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 2017-02-07
      • 2011-12-24
      • 2015-03-16
      • 1970-01-01
      相关资源
      最近更新 更多