2009-09-22

刪除 Adobe Flash Sol 記錄

看到 Adobe Flash 用戶: 請笑一個給世界看, 您上鏡頭了! 以後,因為不知道怎麼樣在 IE8 上讓 Flash 可以正常使用但是又不會使用 Sol 記錄使用者的一些資訊,所以我寫了一個 tcl script 來嘗試刪除這些記錄,下面就是我寫的 script:
set SolFile [set env(USERPROFILE)]
append SolFile {\Application Data\Macromedia}

if {[file exist $SolFile]==1} {
file delete -force $SolFile
}
使用了大絕招(加上參數 -force)來刪除目錄以及其中的所有檔案,這樣就可以半自動的刪除掉這些試圖記錄的資訊。如果有其它的需要或者是需要再增加其它的目錄進行刪除,只要修改一下就 OK 了。

2009-09-20

Eagle

The Eagle Project


Eagle (Extensible Adaptable Generalized Logic Engine) is an implementation of the Tcl scripting language for the Common Language Runtime (CLR).

這是個仍然在發展中的案子,把 Tcl 搬到 .NET 的世界了。

2009-09-15

Tcl and the Tk Toolkit Second Edition is out

根據 comp.lang.tcl 的消息,有人已經收到來自於 Amazon 的實體書了,所以已經正式開賣並且已經開始供貨,但是不知道台灣目前的進口情況,因為博客來和天瓏目前都是處於沒有進口(或許該說沒有東西可以供使用者訂購)的狀況。

雖然沒有加入 8.6 的 OO (物件導向)或者是其它的改進有點可惜,但是按照目前 8.6 的發展情況來看,加入的結果將會使這本書的出版更為難產,我想將版本放在 8.5 是個合理的決定。

目前和 Amazon 的書評綜合看起來,都是比較正面的評價,所以我想第二版仍然維持了清楚並且組織良好的風格,it is a good news.

Update:
2009/10/20 天瓏已經開始賣了,我已經拿到書了。

2009-09-13

優雅的關閉程式

在 Windows 平台下,ActiveTcl 預設是使用 wish.exe 來開啟 .tcl 檔案,如果直接執行不需要 tk 的程式,往往會留下一個 wish window。

解決的方法很簡單,在最後使用 exit 關閉程式就可以了:
exit

這樣就可以優雅的關閉程式而不會留下一個 wish window --- 即使是用 wish.exe 開啟的。

2009-09-09

Tcl and the Tk Toolkit (2nd Edition)



John K. Ousterhout’s Definitive Introduction to Tcl/Tk–Now Fully Updated for Tcl/Tk 8.5

Paperback: 816 pages
Publisher: Addison-Wesley Professional; 2 edition (September 12, 2009)
ISBN-10: 032133633X
ISBN-13: 978-0321336330
光是作者的名字 (John K. Ousterhout and Ken Jones ) 就讓人想要買這本書了啦,但是目前天瓏提供的日期
2009/09/142009/09/29(而且還不確定)。原本在 2005 年就已宣佈有計畫更新為第二版,但是直到現在才又有新的消息。
在 Tcler's Wiki 上也有相關的訊息

2009-09-05

Download and Uncompress zip file

在使用的過程裡,我發覺 vfs 1.4.0 應該是有 bug 的,如果要使用 vfs::zip 來解壓縮,要把版本昇到 1.4.1 才行。

下面是從臺灣證券交易所下載檔案,然後使用 vfs::zip 解壓縮的範例:

#!c:/tcl/bin/tclsh86.exe
package require http
package require vfs::zip

########################################################################
# Now download file from network
########################################################################

set day [clock format [clock seconds] -format {%d}]
set now [clock seconds]

if {$day > 7} {
set value [clock format [clock add $now -30 day] -format {%Y%m}]
} else {
set value [clock format [clock add $now -60 day] -format {%Y%m}]
}

set remoteFile "http://www.twse.com.tw/ch/statistics/download/04/001/"
append remoteFile $value
append remoteFile "_C04001.zip"

puts "======================================================"
puts "URL: $remoteFile"

set localFile $value
append localFile "_C04001.zip"

puts "Download File name: $localFile"
puts "======================================================"

set token [::http::geturl $remoteFile -binary 1]
set data [::http::data $token]

set channel [open $localFile w+]
fconfigure $channel -encoding binary -translation binary
puts -nonewline $channel $data
close $channel

::http::cleanup $token

########################################################################
# Now handle zip file
########################################################################

set mnt_file [vfs::zip::Mount $localFile $localFile]
file copy -force [glob $localFile/*] ./
vfs::zip::Unmount $mnt_file $localFile
file delete $localFile
幫朋友寫的,這樣再做一些適當的設定就可以定時下載最近的企業月報,而季報也可以比照辦理。