我發現 Active Tcl 更新了安裝檔案,所以也跟著更新了。這次的更新也更新了原本附帶的套件到目前的最新版(例如說 VFS),所以我已經昇級到這個版本了。
注意:這一版的 code base 仍然是 Tcl/Tk 8.6 beta 1,可以算是針對一些套件做 upgrade 的吧。
我發現 Active Tcl 更新了安裝檔案,所以也跟著更新了。這次的更新也更新了原本附帶的套件到目前的最新版(例如說 VFS),所以我已經昇級到這個版本了。
注意:這一版的 code base 仍然是 Tcl/Tk 8.6 beta 1,可以算是針對一些套件做 upgrade 的吧。
package require registry
label .show -text "Below is the list:"
grid .show -row 0 -column 0 -columnspan 2 -pady 3 -ipady 1
set count 0
set rootKey "HKEY_CURRENT_USER\\Software\\Microsoft\\VCExpress\\9.0\\ProjectMRUList"
foreach id [registry values $rootKey] {
if {[string length $id] >= 4} {
set text [registry get $rootKey $id]
ttk::checkbutton .$count -text $text -variable check($id)
grid .$count -column 0 -columnspan 4 -ipady 1 -sticky nsew
set check($id) 0
incr count 1
}
}
proc doClean {} {
foreach id [registry values $::rootKey] {
if {[string length $id] >= 4} {
if {$::check($id) == 1} {
registry delete $::rootKey $id
}
}
}
exit
}
# Let our button in next row
incr count 1
button .exit -text "Exit" -command exit
grid .exit -column 2 -row $count -pady 3 -ipady 1 -sticky nsew
button .clean -text "Clean" -command doClean
grid .clean -column 3 -row $count -pady 3 -ipady 1 -sticky nsew
使用 checkbutton 建立列表,讓使用者選擇要清除最近使用的專案列表中的哪一個。我們使用一個陣列記住目前使用者的選擇,如果使用者按 Clean,就去清掉使用者所選擇的那些項目。Tcl 是個極容易擴充的語言(並且因此影響到後面出現或者是同期的 scripting language),在處理 XML 方面,有二個主要的套件:
我會比較偏好 tDom,因為他雖然是用 C 實作,而且在架構上沒有 TclXML 的野心那麼大,但是 tDom 在管理上比較簡單(只有一個套件),不像 TclXML/TclDOM 需要好幾個套件組合起來、而且 TclDOM 隨著各個實作的不同,能力也不同(pure Tcl, Expat, libxml2)。
更多資料:TclDOM vs tDOM
package require tdbc::postgres
tdbc::postgres::connection create db -user danilo -password test -port 5432
set statement [db prepare {
SELECT VERSION()
}]
$statement foreach row {
puts [dict get $row version]
}
$statement close
db close
沒錯,確實已經可以運作了,而 tdbc::postgres 主要是透過 libpg 來實作的。