文件管理 · 2022年8月17日

tktcl写文件|TCL/TK是什么

㈠ 请问用什么软件编写TCL/TK的GUI界面,用什么软件编译

TCL/TK是解释性的脚本,只需安装运行环境,无需编译。TK就是写GUI的库,在脚本最开始写上package require Tk就可以了。

㈡ perl/tk 与 tcl/tk 那个更适合 genesis 写脚本

两者是有区别的。网上关于tcl方面的介绍比较多(特别是中文的),但是perl可以和许多软件绑定使用,如可以和ImageMagick等,今后扩展和改进的余地比较大。建议你使用Perl/Tk。

㈢ 什么是tcl脚本,简单分析一下

Tcl(最早称为“工具命令语言”"Tool Command Language", 但是目前已经不是这个含义,不过我们仍然称呼它为TCL)是一种脚本语言。 由John Ousterhout创建。 TCL经常被用于 快速原型开发,脚本编程,GUI和测试等方面。Tcl的特性包括:* 任何东西都是一条命令,包括语法结构(for, if等)。* 任何事物都可以重新定义和重载。* 所有的数据类型都可以看作字符串。* 语法规则相当简单* 提供事件驱动给Socket和文件。基于时间或者用户定义的事件也可以。* 动态的域定义。* 很容易用C,C++,或者Java扩展。*解释语言,代码能够动态的改变。* 完全的Unicode支持。* 平台无关。Win32,UNIX,Mac上都可以跑。* 和Windows的GUI紧密集成;Tk* 代码紧凑,易于维护。TCL本身不提供面向对象的支持。但是语言本身很容易扩展到支持面向对象。许多C语言扩展都提供面向对象能力,包括XOTcl,Incr Tcl等。另外SNIT扩展本身就是用TCL写的。使用最广泛的TCL扩展是TK。 TK提供了各种OS平台下的图形用户界面GUI。连强大的Python语言都不单独提供自己的GUI,而是提供接口适配到TK上。另一个流行的扩展包是Expect. Expect提供了通过终端自动执行命令的能力,例如(passwd,ftp,telnet等命令驱动的外壳).

㈣ TCL/TK是什么

Tcl/Tk 是一种简明,高效,可移植性好的编程语言。在信息产业领域具有广泛的应用。

㈤ Tcl/Tk的范例

下面是TCL程序的例子:#!/bin/sh # next line restarts using tclsh in path exec tclsh $0 ${[email protected]} # echo server that can handle multiple # simultaneous connections. proc newConnection { sock addr port } { # client connections will be handled in # line-buffered, non-blocking mode fconfigure $sock -blocking no -buffering line # call handleData when socket is readable fileevent $sock readable [ list handleData $sock ] } proc handleData { sock } { puts $sock [ gets $sock ] if { [ eof $sock ] } { close $sock } } # handle all connections to port given # as argument when server was invoked # by calling newConnection set port [ lindex $argv 0 ] socket -server newConnection $port # enter the event loop by waiting # on a mmy variable that is otherwise # unused. vwait forever 另外一个TK的例子(来自A simple A/D clock)它使用了定时器时间,3行就显示了一个时钟。proc every {ms body} {eval $body; after $ms [info level 0]} pack [label .clock -textvar time] every 1000 {set ::time [clock format [clock sec] -format %H:%M:%S]} ;# RS 解释:第一行定义了过程every, 每隔ms毫秒,就重新执行body代码。第二行创建了标签其内容由time变量决定。第3行中设置定时器,time变量从当前时间中每秒更新一次。tcl/tk是python等语言默认的图形界面.

㈥ tcl/tk 这种编程语言过时吗

看您用来做什么事,如果想靠这个来吃程序员的饭,就过时了。如果用tcl/tk来做工作中的辅助事情,还时非常高效的。比如写个小型的上位机测控软件,在手机上整个小功能的APP,写个用户量不大的服务器软件,都行

㈦ tcl语言文件夹里文件移动到另一个文件夹

~/tcltk$ tclsh% file exists hello3.tcl1% file executable testit0% file pathtype ./hello3.tclrelative% set dir1 homehome% set dir2 brianbrian% set dir3 tcltktcltk% file join /$dir1 dir2 dir3/home/dir2/dir3% file delete testit~%文件和路径操作是跨平台环境中具有挑战性的问题。对于主机 OS,Tcl 使用 UNIX路径名(缺省情况下,用‘/’字符分隔)和本机路径名结构。即使当程序内的数据构造正确时,也很难确保用户输入与系统需求匹配。filejoin 命令用于将 UNIX 格式转换成本机路径名。其它路径字符串命令包括 file split、dirname、fileextension、nativename、pathtype 和 tail。在它扮演的“工具控制语言”角色中,Tcl 有许许多多种内部文件测试和操作功能。每条命令都以 file 开始,正如 fileexists name 中一样。其它测试命令(它们都返回布尔值)包括executable、isdirectory、isfile、owned、readable 和 writable。文件信息和操作(再提醒您一次,所有都是以 file 开始)是通过atime、attributes、、delete、lstat、mkdir、mtime、readlink、rename、rootname、size、stat 和 type 来完成。请注意,在 Windows 或 Mac环境中运行一些文件信息命令时,可能会返回未定义的数据,因为例如在那些文件系统中没有表示索引节点和符号(和硬)链接数据。使用 file … 命令而不使用通过 exec 的本机命令的好处在于,前者会提供一个可移植接口

㈧ tk文件制作方法

文件与通道 Tcl除了具有C语言里面的stdio库的功能外,还提供很多其他的文件操作命令,很像shell脚本,虽然比较繁琐。见下面的例子: glob *.tcl用来列出当前目录下的所有.tcl文件。file /from/path/file.ext /to/path.file delete /from/path/file.ext.file rename before.txt after.txt.cd /an/other/directory.pwd如果要临时更换目录,执行代码,可以这样:set here [pwd]cd $someotherdir#… code herecd $here更准确的来说,一般很多文件操作工作都是用"通道"来实现的,如:1、标准通道 (stdin, stdout, stderr)2、打开的普通文件 (open …)3、管道命令 (|)4、套接字 (TCP)文件名 通常,文件时用路径名来定位的,在Unix下,用"/"作为路径分隔符,而在Windows下是用"\",这往往给Tcl,乃至C语言,都带来了麻烦。因为在这两种语言里,"\"表示转义字符。如,\t是水平制表符,\n是换行符。幸运的是Windows也接受"/",所以,在Tcl和C里,你可以放心的用左斜杠"/"作为路径分隔符。但有些情况,你要注意一下转义序列1、防止转义字符被解释的情况,如 \\2、用花括号括起来的反斜杠路径路径名:{\foo\bar\grill.txt}但Tc允许你在所有的情况用标准的分隔符"/",所有这样用你一般都比较安全的。Mac下就不行了,因为从MacOS开始,只接受冒号":"所为路径分隔符。如果有必要的话,你可以这样来转换: % file normalize \\foo\\bar\\grill.txt C:/foo/bar/grill.txt % file nativename /foo/bar/grill.txt \foo\bar\grill.txt还可以用 file join命令,如 file join arg1 arg2 … argN,这时,Tcl会帮你考虑所有平台无关的细节,给你返回一个平台无关的路径。例如: set somepath [file join foo bar grill.txt] 在Windows下将产生 foo/bar/grill.txt 输入输出Tcl的输入输出命令几乎都非常接近C语言的stdio库里的命令(只不过去掉了开头的字符f):set handle [open filename ?mode?]set data [read $handle ?int?]tell $handleseek $handle offset ?from?puts ?-nonewline? ?$handle? contentgets $handle ?varname?close $handleC里的printf命令的功能在Tcl里被分割成两个命令:format,将数据转换成字符串(类似C的sprintf)puts,输出结果为字符串,如:puts $handle [format "%05d %s" $number $text]按行处理文本文件有两种方法,如果文件只有几个M,你可以一口气读完: set f [open $filename] foreach line [split [read $f] \n] { # work with $line here … } close $f文件稍大了,你只好一行一行的读,虽然相比之下,有点慢: set f [open $filename] while {[gets $f line] >= 0} { # work with $line here … } close $f最后,如果你想格式化你的文件,使之成为可以执行的Tcl代码,下面的命令最快 source $filename要touch一个文件,具体的说,如果文件不存在就新建,文件存在就更新其修改时间,可以这么做: proc touch name {close [open $name a]}二进制文件所有的文件都是由字节构成,字节又都是位,即二进制。文件的"二进制"是指那种字节可以是任何值的文件,而且行结束符(在DOS/Windows下,即是回车加换行)不被翻译过来。在Tcl里,可以很好的对二进制文件进行操作,只需要打开一个通道然后设置一下就行了: set fp [open tmp.jpg] fconfigure $fp -translation binary set content [read $fp] close $fp运行上面的命令之后,变量content就存有文件的内容,每个字节都一样。要检验一个文件是否是二进制文件,即是否存在空字节,可以这样, proc binary? filename { set f [open $filename] set data [read $f 1024] close $f expr {[string first \x00 $data]>=0} }一些文件操作的命令:很多有用的文件操作命令都集中在file命令下,file命令的第一个参数将告诉你要干什么 * file atime name ?time? * file attributes name * file attributes name ?option? * file attributes name ?option value option value…? * file channels ?pattern? – returns the handles of currently open files * file ?-force? ?- -? source target * file ?-force? ?- -? source ?source …? targetDir * file delete ?-force? ?- -? pathname ?pathname … ? * file dirname name – e.g. [file dirname /foo/bar/grill.txt] -> /foo/bar * file executable name * file exists name * file extension name – e.g. [file extension /foo/bar/grill.txt] -> .txt * file isdirectory name * file isfile name * file join name ?name …? * file link ?-linktype? linkName ?target? * file lstat name varName * file mkdir dir ?dir …? – creates one or more directories (folders) * file mtime name ?time? * file nativename name * file normalize name * file owned name * file pathtype name * file readable name * file readlink name * file rename ?-force? ?- -? source target * file rename ?-force? ?- -? source ?source …? targetDir * file rootname name – e.g. [file rootname /foo/bar/grill.txt] -> /foo/bar/grill * file separator ?name? * file size name * file split name – e.g [file split /foo/bar/grill.txt] -> {foo bar grill.txt} * file stat name varName * file system name * file tail name – e.g. [file tail /foo/bar/grill.txt] -> grill.txt * file type name * file volumes – Windows: returns your "drive letters", e.g {A:/ C:/} * file writable name

㈨ Tcl/Tk的Tcl/Tk 的起源

Tcl 是“工具控制语言(Tool Control Language)”的缩写。Tk 是 Tcl“图形工具箱”的扩展,它提供各种标准的 GUI 接口项,以利于迅速进行高级应用程序开发。John K. Ousterhout于 1988 年开始开发 Tcl/Tk(读作“tickle tee-kay”),当时其是加州大学伯克利分校(UCB)的教授。Tcl 是以可扩展性、短的学习曲线和易于嵌入为特定目标而设计的。Tk 的开发始于 1989 年,第一个版本于 1991 年问世。Ousterhout 博士在他离开 UCB 之后继续开发 Tcl/Tk,然后由于工作需要,他去了Sun Microsystems 公司工作。现在,也就是在写本文之时,他在 Scriptics(它开发出 Ajuba Solutions,已由 Interwoven 收购)继续改进该语言,目前的稳定版本是 8.5.13,在写本文的时候,8.6b3 版本正在开发之中。

㈩ TCL/TK语言 如何把TCL/TK中text文本里的每一行语言输出到某一个文档中去。

set fid [open "file.txt" w+] #创建您想输出的文件名,得到文件通道号set str [.text get 1.0 end] #获取控件.text的所有文本到str变量puts $fid $str #将str变量值写入fid文件flush $fid #刷新文件close $fid #关闭文件