站长在 Bluesky 新开了微博帐号 ▷▷▷ 敬请关注 ◁◁◁
手机版
TCL2HTML
- 卢昌海 -
本软件编写迄今已近六年, 由于最近几年我未再使用 Tcl/Tk, 也未对本软件进行更新,
因此本软件所能识别的 Tcl/Tk 的关键词想必已不全。 不过用户可以按照软件内的说明自行添加关键词。
我尚未在 Windows Vista 上运行过本软件, 如果哪位用户试过, 欢迎告知结果。
此外, 三年多前曾有一位中文用户来信提及过一个问题, 我将解决办法作为补注附在文末了。 [2008-03-30]
English Version
一. 背景介绍
Tcl2Html 是本人编写的一个小软件, 它能把 Tcl/Tk 的源程序转变成 HTML 文件, 便于在网上交流程序。
编程的人可能对 C/C++、 Java、 C# 等所谓的 System Language 比较熟悉,
Tcl/Tk 则属于一类被称为 “Scripting Language” 的 “另类” 语言。
其实说 Scripting Language 另类有些冤枉, 因为一来 Scripting Language
的历史之悠久并不亚于 System Language,
自二十世纪六十年代以来两者就并存于各操作系统之中; 二来
Scripting Language 家族中的 VBScript、 Perl 等传播之广也不在 System Language 之下,
而后起之秀诸如 Python、 Ruby 等也为写书人赚了不少银子。
不过 Tcl/Tk 对大多数人来说确实算是比较陌生。
Tcl/Tk 由核心语言部分 Tcl 和界面编程部分 Tk 所组成, 除此之外还有许多其它软件包可供下载。
与其它 Scripting Language 类似, 用 Tcl/Tk 编程远比用
System Language 方便。 以 C 语言为例, 据统计每一行 C 程序平均对应于
5 行汇编语言指令, 而对于 Tcl/Tk 来说, 这一数字是 100 到 1000!
也就是说一行 Tcl/Tk 程序平均对应于数十行乃至上百行 System Language 程序。
别的倒也罢了, 在编写用户界面 (GUI) 方面, Tcl/Tk 委实可以让埋首于
MFC、 Java 等的人有耳目一新之感。 即使考虑到
VC++、 Java、 C# 等各有大型的 (很不幸也都是昂贵的) 编程环境 (IDE) 的支持,
Tcl/Tk 在编程简洁性上依然有其独特的优势。 尤其是在必须直接对源程序进行修改的时候,
用 IDE 产生的程序往往因为含有冗余 code 而给阅读和修改带来额外的复杂性。
这时候逻辑清晰、 语法简明的 Tcl/Tk 所具有的优势就颇为明显。
由于 Tcl/Tk 在界面编程方面的长处,
目前流行的几种主要的 Scripting Language, 比如 Perl 和 Python,
在界面编程上都采取了仿照 Tcl/Tk 的方法。 由于 Python 是最近才流行的,
Perl 也是在较新的版本中才有所谓 Perl-Tk 的, 在这些语言还不存在,
或还没有与 Tcl/Tk 相似的界面编程功能的时候, Tcl/Tk 的 “大隐于市” 实在是编程界的一种奇怪的现象。
或许是因为传统上人们认为 Scripting Language 只是用来处理文本数据的缘故吧,
也或许是由于 Scripting Language 的运行速度较慢,
在计算机硬件不发达的时候往往达不到人们对运行速度的要求。
而今天, 硬件的发展使得速度瓶颈对许多软件来说已不复存在,
这给 Scripting Language 创造了在更多方面与 System Language
争锋的机遇。 即使有 Perl 和 Python 等语言的竞争, Tcl/Tk 依然有其便利之处,
语言功能的比较或许是各有千秋, 但对于业余编程的人来说,
Tcl/Tk 的一个有利之处, 就是它有一些很不错的免费编译器,
其中最出色的是 TclPro, 它是一个商业软件, 但 TclPro 1.4 (含 Tcl/Tk 8.3.2)
可以免费下载, 它们可以将 Tcl/Tk 编译成可执行文件。
编译器对于象 C++ 这样的 “编译型” 语言自然不新鲜,
但 Scripting Language 通常是由所谓的 Interpreter 来执行的,
因而要求用户机器安装相应的 Interpreter,
这样的一层额外要求对于软件的传播带有不可忽视的负面影响。 因此拥有象 TclPro 这样的编译器,
从而免除用户安装 Tcl/Tk Interpreter 的麻烦, 是 Tcl/Tk 的一个显著优势。
王婆卖瓜吆喝了半天, 除了真心实意要替 Tcl/Tk 呐喊几声外,
也是为 Tcl2Html 作点背景介绍。 如果你从来没有用过 Tcl/Tk 的话,
不妨试着用一下, Tcl/Tk 的 Interpreter 是可以免费下载的。
你会发现学习 Tcl/Tk 比 C++、 Java、 C# 等容易多了, 很值得一试。
顺便说一下 Tcl2Html 本身就是用 Tcl/Tk 编写, 并用 TclPro 编译的。
希望这个小软件能对 Tcl/Tk 在网上的传播交流起到一些帮助。
二. 用户界面
The Main Screen
The Font/Color Preference
The Style Preference
The Indentation Preference
三. 效果展示:
以下文件便是用 Tcl2Html 1.0 产生的 HTML 文件的显示效果:
#!/bin/sh
# the next line restarts using wish
exec wish "$0" "$@"
# timer --
# This script generates a counter with start and stop buttons.
label .counter -text 0.00 -relief raised -width 10
button .start -text Start -command {
if $stopped {
set stopped 0
tick
}
}
button .stop -text Stop -command {set stopped 1}
pack .counter -side bottom -fill both
pack .start -side left -fill both -expand yes
pack .stop -side right -fill both -expand yes
set seconds 0
set hundredths 0
set stopped 1
proc tick {} {
global seconds hundredths stopped
if $stopped return
after 50 tick
set hundredths [expr $hundredths + 5]
if {$hundredths >= 100} {
set hundredths 0
set seconds [expr $seconds + 1]
}
.counter config -text [format "%d.%02d" $seconds $hundredths]
}
bind . <Control-c> {destroy .}
bind . <Control-q> {destroy .}
focus .
|
四. 下载及使用
下载 Tcl2Html
1.0 for Windows (zip 文件, 1.7MB), 解压缩后直接运行 tcl2html.exe 即可。
二零零二年三月写于纽约 二零零二年三月三十日发表于本站 https://www.changhai.org/
本文的讨论期限已过, 如果您仍想讨论本文, 请在每个月前七天的 “读者周” 期间前来讨论。
>> 查阅目前尚在讨论期限内的文章 <<
|