tcl相关内容

无法理解 TCL proc 输入

嗨,我正在尝试理解由其他人编写的部分代码.这是 proc 的定义: proc defState {state_id 属性 object_id 值放置 args} {全局 state_list state_objs state_attr_vals state_attr_id# 建立定义状态的记录并执行错误检查如果 {[member $state_id $state_list]} {put-erro ..
发布时间:2021-09-04 19:47:32 其他开发

在边界内抓取单词

问题:表达用于在两个边界之间抓取单词的正则表达式.下面的代码不起作用 regexp -- {/b/{(.+)/}}/b}​​ $outputline8 - 过滤 目标: 获取所有引脚名称 xxx/xxx[x] 位于set_false_path 以及 { 和 } 之间. set_false_path 中可能还有另一个选项,例如“-through",我仍然想在这些选项之后抓取这些引脚并将这 ..
发布时间:2021-09-04 19:47:29 其他开发

如何使用三元运算符向 tcl 中的匿名字符串添加可选部分?

我是 tcl 的新手(对不起,如果答案很明显,但阅读教程和文档没有帮助).我在 tcl 中有一个声明: startupitem.start "foo\tbar" 我想做的是让“foo"部分成为可选的,这取决于结果[variant_isset "alice"] 使用三元运算符而不使用变量. 我已经尝试了几件事 startupitem.start "[variant_isset """al ..
发布时间:2021-09-04 19:47:26 其他开发

如何在tcl中获取xml元素值?

试图获取一个元素的值到一个 tcl 变量示例 stats.xml 文件 abc1224.3414 在上面的例子中试图只提取一个元素值,名称或数字 设定值正则表达式“(.*?)"stats.xml 值 解决方案 正如@Peter 所说,最好使用 tdom.尝试使用正则表达式解析 xml 将导致痛苦的世界.(参见 为什么这 ..
发布时间:2021-09-04 19:47:23 其他开发

如何获取代码行号和错误信息?

我正在使用以下 TCL 代码: proc RunCSM { scen } {catch { $scen start }if { "[$scen status]" != "SUCCESS" } {puts "$scen FAILED. 错误信息:"puts "[$scen errorInfo]" ... 问题是,在这种情况下,有错误,它显示错误信息调试信息作为errorInfo标志的输出,但在这 ..
发布时间:2021-09-04 19:47:20 其他开发

TCL:通过 SHELL 环境变量检查文件存在(另一个)

我有一个文件包含带有文件路径的行.有时路径包含 SHELL 环境变量,我想检查文件是否存在.以下是我的解决方案: set fh [打开"the_file_contain_path" "r"]而 {![eof $fh]} {设置行 [获取 $fh]if {[regexp -- {\$\S+} $line]} {catch {exec/usr/local/bin/tcsh -c "echo $lin ..
发布时间:2021-09-04 19:47:17 其他开发

Tcl 无法读取变量:没有这样的变量

以下代码产生错误: 无法读取“n":没有这样的变量执行时"$ns 双工链接 $n$i $n([expr ($i+1)%120]) 1Mb 10ms DropTail"(“为"正文第 2 行)从内部调用“对于 {set i 7} {$i 似乎 $n$i 未评估为 $n7 等所需的格式.非常感谢解决方案中的任何帮助. for {set i 0} {$i 120} {增加我} {设置 n$i " ..
发布时间:2021-09-04 19:47:14 其他开发

处理多行文本文件以单行打印

我是 TCL 脚本的新手.只是想从这里的专家那里得到一些建议. 我希望按照以下格式处理报告.我想打印没有标题的报告,只有一行 - 网络'pmg_ccu_ot2_tam_50mhz_sel_xainfwh'的连接:: 驱动程序a_par/pmg_ccu_ot2_tam_50mhz_sel_xainfwh 输出引脚(a_par) :: 加载b_par/pmg_ccu5_0xainfwh (Pi ..
发布时间:2021-09-04 19:47:11 其他开发

Tcl/Tk:最大化窗口/确定窗口是否最大化?

我可以知道我的顶级窗口是否已最大化,我是否可以以编程方式将其最大化?我在 Windows XP 上使用 R 的 tcltk 包 8.5. 问题的原因是:我想通过先调用撤销然后去图标化来强制执行 事件.但是,如果窗口在这两个函数调用之前最大化,则不是在这些调用之后.有没有更简单的方法来强制执行事件? 解决方案 您可以通过 wm state $toplevel 来发现窗口是否最大化(查找 ..
发布时间:2021-09-04 19:47:08 其他开发

TCL 正则表达式模式搜索

我试图找到一个模式匹配如下abc(xxxx):efg(xxxx):xyz(xxxx) 其中 xxxx - [0-9] 个数字 我用过 set string "我的字符串是 abc(xxxx):efg(xxxx):xyz(xxxx)"正则表达式 abc(....):efg(....):xyz(....) $string result_str 它返回 0.有人可以帮忙吗? 解决方案 ..
发布时间:2021-09-04 19:47:05 其他开发

如何在tcl中实现goto

我想知道如何在 tcl 中实现 GOTO.我正在编写一个测试用例,其中我说了 5 个步骤.如果我的第 1 步失败了,我不想再继续下去,我想跳过现有的东西并转到一个通用的清理部分. 如果 tcl 中有任何 GOTO 命令,请帮助我. 谢谢,拉米亚. 解决方案 Tcl 中没有没有 goto,并且由于相对技术原因,不可能实现. 但是您可以通过其他方式做您想做的事情.由于您正在处 ..
发布时间:2021-09-04 19:47:02 其他开发

tcl 查找列表的最大元素

我是 tcl 的新手,我正在尝试获取给定列表中的最大元素我写了一个打印最大值的函数,但它不能正常工作这是代码 proc findmax { items } {设置最大 1foreach i $items {如果 { $i >$max } {设置 $max $i}}puts "max is = $max"} 我这样调用函数: findmax $items 这是我通过的列表: set ite ..
发布时间:2021-09-04 19:46:59 其他开发

在“array"集合中创建新命令的问题

我想创建一个方便的命令 array values arrayName 作为“数组名称"命令的“另一面". 创建一个简单的过程很简单: proc array_values {arrayName} {upvar 1 $arrayName ary设置值 {}foreach {name value} [array get ary] {lappend values $value}返回 $values ..
发布时间:2021-09-04 19:46:56 其他开发

Eggdrop 上的 TCL 编码问题

我已经在新的 Debian 服务器上安装了 Eggdrop,它带有 TCL8.5 和最新版本的 eggdrop.不幸的是,我的脚本和特殊字符(如 é、J'aime 等)的处理存在问题. 最好举个例子: 13:41 测试13:41 !tr nl 这是一个测试13:41 Dit is een 测试13:41 !tr fr 我是陌生人13:41 Je suis ..
发布时间:2021-09-04 19:46:54 其他开发

如何在 tcl 中调用函数的上下文中对字符串执行扩展

我如何在下面的脚本中实现expand(在tcl中正常扩展命令和变量),我希望它打印出来: '你好 {$b}{tcl世界}' 这是我想象的脚本的样子: proc smart_func {script} {设置脚本 [uplevel 1 expand [list $script]]puts "'$script'"}过程隔离客户端功能{} {打个招呼设置 b 困难设置 c tcl设置 d 世界sm ..
发布时间:2021-09-04 19:46:51 其他开发

如何在 tcl 中执行 getpwnam/getpwuid 等

tcl 是否有进行 NSS 查找的标准方法(getpwnam、setpwent...) 解决方案 Tcl 不会将它们作为 API 公开(它也没有真正在内部使用它们)但是 TclX 扩展包确实支持完全正确你想要什么 我相信.例如: 包需要TclX设置 uid [id 转换用户 $tcl_platform(user)]puts “您的用户 ID 是 $uid 并且您是这些组的成员:[id 组 ..
发布时间:2021-09-04 19:46:48 其他开发

每个连接一个解释器/线程?

我想编写一个服务器,人们可以在其中登录、发送/输入一些命令并退出.很多人可能同时连接,但我不想每个人都有很多状态变量,比如“正在发送姓名"、“正在发送密码"、“正在上传命令的第二阶段"...为每个传入连接运行一次此脚本调用会容易得多: puts -nonewline $out “登录:"获取 $in login ;# 检查 EOFputs -nonewline $out “密码:"获取 $in ..
发布时间:2021-09-04 19:46:45 其他开发

如何复制或移动具有相同扩展名的多个文件?

所以我试图将一堆具有类似扩展名的文件从/home/移动到/root/ 我试过的代码是 文件复制/home/*.abc.xyz/root/ 也试过了 set infile [glob -nocomplain/home/*.abc.xyz]if { [llength $infile] >0 } {文件复制 $infile/root/} 没有成功. 解决方案 由于不同的原因,您的两 ..
发布时间:2021-09-04 19:46:42 其他开发

为什么 expr “i==i"因“无效的裸字"而失败?

1) % expr "1==1"1 2) % expr "i==i"无效的裸字“我"在表达式“i==i"中;应该是 "$i" 或 "{i}" 或 "i(...)" 或 ... 为什么在第 2 步中出现此错误 1) % if {"i" == "i"} {放“海"}海2) % if {i == "i"} {放“海"}无效的裸字“我"在表达式 "i == "i"" 中;应该是 "$i" 或 " ..
发布时间:2021-09-04 19:46:39 其他开发

在 Wayland 显示器 (CentOS) 上使用 tk_messageBox 时出现错误“坏垫值“2m":必须为正屏幕距离

我的 Tcl 脚本在 Ubuntu 上运行良好,但现在我已将其中一个复制到 CentOS Linux 8 并收到上述错误. 即使我刚开始 Wish 并输入 tk_messageBox 命令,也会出现错误. 安装的版本是 tk.x86_64 1:8.6.8-1.el8 有什么办法可以解决这个错误吗? 解决方案 在 Wayland 上,您必须手动设置 tk 缩放.我有这样的代 ..
发布时间:2021-09-04 19:46:36 其他开发