跳到主要內容

截至2006/04/19的Tcl/Tk精華文章

TCL/TK相關的文章都放在這裡。
Tcl 命令列模式的使用
Tcl 本身可以分為兩大模式,一個為命令列模式,另一模式則為Script模式。所謂的命令列模式就如同DOS的Console及一般UNIX系統下登錄後所使 用的命令模式。在這個模式下,Tcl與使用者間具有較高的互動性。使用者所下的每個命令,不論是語法上的錯誤,或是執行上的錯誤,都可立即得到回應。因 此,這個模式也十分合適作為除錯之用途。至於,Script模式則是Tcl的精華所在。
AOL Server簡介
在Tcl 的討論區上貼了一篇簡介Tcllib的文章,有網友建議我寫寫Tcllib的使用心得。可是覺得光是寫寫Tcllib本身的應用好像不是很有意思, Tcllib本身有提供一些Mime的相關函式,相當的好用,但是光是說明這些函式的使用,也不是很有意思。剛好,之前想用Tcl來寫個WebMail的 程式,便想利用這個程式來說明Tcllib的一些弁遄C而使用Tcl來寫Web程式最佳的方法就是在AOL Server上面開發,所以便決定先寫篇文章來介紹一下AOL Server,然後再來進行Tcllib的使用心得。這正是這篇文章誕生的緣由!
Tcl 的變數命名與置換規則
在Tcl 之中,並沒有一般程式語言的變數型態。這也就是說,Tcl不會要求您要事先指定您的變數需要為整數,字串,或是浮點數等型態。這是大部份Script的優 勢,它大大地簡化了Script語言的學習難度。並且,Tcl的變數具有很大的彈性。關於這個部分將會在後面關於Tcl變數的章節中做更詳細的探討。本文 將著重於變數置換(variable substitute)的應用說明。
Tcl 命令置換規則
除了變數置換外,Tcl也提供了直接敘述的某個部分代換成某個命令的結果。
Tcl 的雙引號與大括號置換規則
本文所要說明的是在雙引號及大刮號內,所允許的置換規則。
Tcl 的語法總結
綜觀整個Tcl的語法,其實可以歸納成簡單的一些要點。如能熟記這些要點,對於撰寫Tcl程式將會無往不利。
Tcl 的變數介紹
在前面的文章中,我們已經簡略地介紹Tcl的變數置換規則。本文我們將以更深入的角度來介紹Tcl的變數機制。
Tcl 的直述式流程
所謂的直述式流程,其實也就是所有程式語言的基本。
張貼留言

這個網誌中的熱門文章

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。

PortablePython: http://www.portablepython.com/

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

一個Python程式可幫檔名加上日期與時間

很多時候,我們希望能夠將檔案或是目錄名稱加上一個時間及日期,以便release。所以,我就寫了一個小小的程式來達到這個目的。我把這個程式貼上來,讓有興趣的人可以拿去使用。
--
#!/usr/bin/env python
# -*- coding: ascii -*-
"""
Usage: cfgfn.py [filename or directory list]
"""
import sys
import os
import time
import re
import glob

ro = re.compile(r'(?P<FN>.*)-[0-9]{8}-[0-9]{4}(?P<EXT>.*)')

for fnl in sys.argv[1:]:
for fn in glob.glob(fnl):
mo = ro.match(fn)
if mo:
pre = mo.group('FN')
ext = mo.group('EXT')
else:
pre, ext = os.path.splitext(fn)
newFn = pre + time.strftime('-%Y%m%d-%H%M') + ext
os.rename(fn, newFn)
print 'Rename %s -> %s' % (fn, newFn)