2016-04-21 26 views
0

我公司開發的TCL UI與需要由用戶輸入幾個輸入。第一次用戶將輸入所有文件路徑,但我想將用戶定義的條目保存在一個文件中,然後再加載它。 儲蓄是罰款...我想保存所有這些變量在一個文件中,但是從文件加載它需要一個映射,它可以怎麼做? 任何示例將有幫助 enter image description hereSaveTCL輸入項中,然後加載它

+0

請添加一個用於保存變量的代碼示例。 –

回答

0

我通過下面的代碼實現了這一點,雖然不是非常優化。 首先我保存一個輸入文件的變量值,然後按相同的順序讀取它們。

proc save_input_entries {} { 
    global ENTRYfilename ENTRYfilename2 ENTRYfilename3 ENTRYfilename4 ENTRYfilename5 ENTRYfilename6 ENTRYfilename7 ENTRYfilename8 ENTRYfilename9 ENTRYfilename10 ENTRYfilename11 ENTRYfilename12 ENTRYfilename13 ENTRYfilename14 ENTRYfilename15 ENTRYfilename16 ENTRYfilename17 topdir corner_dir corner_name 
    set filename Input_entries.txt 
    set fileId [open $filename "w"] 
    puts $fileId $ENTRYfilename 
    puts $fileId $ENTRYfilename3 
    puts $fileId $ENTRYfilename4 
    puts $fileId $ENTRYfilename5 
    puts $fileId $ENTRYfilename7 
    puts $fileId $ENTRYfilename8 
    puts $fileId $ENTRYfilename15 
    puts $fileId $ENTRYfilename14 
    puts $fileId $ENTRYfilename16 
    puts $fileId $ENTRYfilename17 
    close $fileId 

    } 


    proc load_input_entries {} { 
    global ENTRYfilename ENTRYfilename2 ENTRYfilename3 ENTRYfilename4 ENTRYfilename5 ENTRYfilename6 ENTRYfilename7 ENTRYfilename8 ENTRYfilename9 ENTRYfilename10 ENTRYfilename11 ENTRYfilename12 ENTRYfilename13 ENTRYfilename14 ENTRYfilename15 ENTRYfilename16 ENTRYfilename17 

    set fp [open Input_entries.txt] 
     set stuff [read $fp] 
     set lines [split $stuff "\n"] 
      set ENTRYfilename [lindex $lines 0] 
      set ENTRYfilename3 [lindex $lines 1] 
      set ENTRYfilename4 [lindex $lines 2] 
      set ENTRYfilename5 [lindex $lines 3] 
      set ENTRYfilename7 [lindex $lines 4] 
      set ENTRYfilename8 [lindex $lines 5] 
      set ENTRYfilename15 [lindex $lines 6] 
      set ENTRYfilename14 [lindex $lines 7] 
      set ENTRYfilename16 [lindex $lines 8] 
      set ENTRYfilename17 [lindex $lines 9] 
} 
1

如果你有靈活定義,其中的內容將被存儲在文件的格式,我建議存儲內容的方式,使得讀取/寫入映射到按鍵,並且是訂單無關。這將允許您更新您的用戶界面以添加/刪除輸入字段,而不用擔心它們在文件中被捕獲的順序。

對於例如,文件格式可能會是這樣的:

Top Directory: <value> 
LEF File: <value> 
. 
. 
. 

你必須仔細選擇鍵(標籤)和值之間的分隔符。

如果這將是在TCL一直使用,你可以把它簡單通過存儲在一個文件中的數組。當您加載文件以填充UI中的條目時,這也會加速。例如,您的文件格式可能是這樣的:

set inputFields("Top Directory") <value> 
set inputFields("LEF File") <value> 
相關問題