tcl相关内容

如何将来自串行端口的传入变量保存到列表中

我想保存通过串行端口传入的 7 个变量.传输从一个空行开始,然后是 7 行,每行由一个变量组成.没有空格,但在每一行末尾都有一个回车.每个变量也可以由空格组成.这是反复进行的.如果空行会引起问题,在我的外部设备中可以省略它. #!/usr/bin/env 希望控制台显示设置 Term(Port) com5设置术语(模式)“9600,n,8,1"设置结果 [列表]设置数据{}proc 接收者 {c ..
发布时间:2021-09-04 19:48:34 其他开发

在 Tcl 脚本中转换列表中的列

我想使用 Tcl 脚本将文件的一列转换为列表.我有一个文件名“input.dat",其中包含两列数据,如下所示: 7 09 90 22 13 4 我想将第一列转换成一个列表,我编写了如下的 Tcl 脚本: 设置输入[打开“input.dat"r]设置数据 [读取 $input]设置值 [列表]foreach 行 [拆分 $data \n] {lappend 值 [lindex [split ..
发布时间:2021-09-04 19:48:31 其他开发

从文件中拆分一行以替换 tcl 中的元素

我正在尝试执行以下操作: 打开文件读取 分割线 确定感兴趣的线路 将名称 Prefix_2 替换为 Prefix_999 删除所有带有 Prefix_1 的行将行保存到原始文件 我最多可以做第 3 点,但是在替换名称时,我似乎无法将感兴趣的行拆分为元素,以便我可以用 Prefix_999 替换 Prefix_2> 它总是替换为整个感兴趣的行,如下所示,例如 Pre ..
发布时间:2021-09-04 19:48:28 其他开发

用tcl处理多维列表很困难

我需要用 tcl 处理一些复杂的数据.我需要 3 维列表来存储数据,但我发现 tcl 对这项工作不利. 根据我目前的研究,tcl 不支持列表的简单索引,如:listname(index). 所以对于多维列表,如果我想为某个元素分配一个新的值,会很麻烦. 是否有一些技巧可以有效地处理数据? 解决方案 多维数组最有效的表示是嵌套列表(除非您要使用稀疏数组).为了解决这个问题, ..
发布时间:2021-09-04 19:48:25 其他开发

使用参数从python运行tcl脚本

我正在尝试从 python 运行 tcl 脚本,tcl 脚本需要命令行参数才能执行,当我从 python 获取 tcl 文件时,它会显示错误说 tclsh.eval('source "test.tcl"' )_tkinter.TclError: 无法读取 "::argv": 没有这样的变量 我进行了很多搜索,其中大多数询问如何在 tcl 中将参数传递给 python. 蟒蛇代码 导入t ..
发布时间:2021-09-04 19:48:22 Python

何时以及如何使用 Tk 设置窗口大小

我正在编写一个脚本来将内容输出到一个窗口,该窗口包含一个 Tkhtml 小部件和一个在 ttk::panedwindow 中显示在彼此上方的文本小部件.两个小部件都可以垂直和水平滚动.还有一个按钮允许用户清除文本小部件. 我正在运行 Ubuntu 的笔记本电脑上进行一些开发.窗口管理器允许以 2x2 阵列的形式提供四个桌面工作区,当第一次显示 GUI 时,底部的五分之一左右从我正在使用的工作 ..
发布时间:2021-09-04 19:48:19 其他开发

如何使用分隔符解析 tcl 中的文本文件?

我有一个格式的文本文件 35|4636|4937|5138|2240|139|3641|4 我必须通过分隔符“|"将文件读入数组其中左侧是数组的键,右侧是值. 我使用了以下代码 foreach {line} [split [read $lFile] \n] {#puts $lineforeach {lStr} [拆分 $line |] {如果 { $lStr!="" } {设置 lPa ..
发布时间:2021-09-04 19:48:16 其他开发

Tk 文本小部件索引表达式和 Unicode

(这个问题基于那个) 让我们考虑以下代码: 包需要 Tk 8.6包 [文本 .t].t 插入结尾“abcdefgh\nабвгґдеє\n一伊依医咿噫欹泆"puts "[.t 索引 1.4+1l] [.t 索引 1.4+2l]"puts "[.t 索引 3.4-1l] [.t 索引 3.4-2l]"退出 0 输出: 2.2 3.22.6 1.8 如果行足够长,我宁愿希望 +1l 和 ..
发布时间:2021-09-04 19:48:13 其他开发

TCL 正则表达式

我有两种类型的接口“Ethernet9/12/1 和 Ethernet8/34".我想使用单个正则表达式解析这两种类型的接口. 我试图通过以下方式实现这一目标: set int "Ethernet9/12/1"regexp -nocase "(.*t)((\\d+)\/(\\d+)/\(\\d+))" $int - int_type int_num mod_num 端口broken_por ..
发布时间:2021-09-04 19:48:11 其他开发

如何获取过程接受的参数数量?

TCL 有没有办法获取程序接受的参数数量?例如我们有程序: proc func {a} {把 $a} 我需要一种方法来将 func 过程接受的参数数量置于变量中. 解决方案 您可以尝试以下方法: info args func 这将获得 func 需要的参数. 然后你可以用它来获取参数的数量: set num [llength [info args func]] 在您的情况 ..
发布时间:2021-09-04 19:48:08 其他开发

跨多行的正则表达式模式

我有一个很长的正则表达式模式需要在 TCL 中匹配 regexp {.*%MKA-5-SESSION_START: +\((.*) +:.*\) +MKA 会话开始于.*([0-9A-Fa-f]{4}.[0-9A-Fa-f]{4}.[0-9A-Fa-f]{4}).*AuditSessionID +(.*), +AuthMgr-Handle +(.*)} $op - intfmac auditse ..
发布时间:2021-09-04 19:48:05 其他开发

如何从 .cc 文件访问 tcl 脚本中的值

我正在尝试从 .cc 中获取价值.在我的文件中,AgentCPU.h 和 AgentCPU.cc有一个名为“npkts_"的整数和一个用于接收数据包的函数“recv"当我最终完成一个数据包时,我会增加“npkts_"1此外,在我的 tcl 脚本中,我想访问“npkts_"我的代码是这样的 set cpu [new Agent\AgentCPU]puts [格式“%d"“$cpu set npkt ..
发布时间:2021-09-04 19:48:02 C/C++开发

使用 Eggdrop & 读取活动日志文件的最后一行.tcl

你好,我想知道是否可以使用eggdrop和.tcl脚本读取实时日志文件的最后一行,我可以读取日志文件的第一部分,但就是这样,它不再读取了 解决方案 是否可以对日志文件的一行长度设置上限?如果是这样,很容易得到最后一行: # 一个不错的胖上限!设置上界长度 1024# 打开日志文件set f [打开 $logfile r]# 走到尽头一段距离;抓住因为不在乎这里的错误catch {seek ..
发布时间:2021-09-04 19:47:53 其他开发

在 tcl 中计算 proc 内的命令?

有什么方法可以在执行前从指定的 proc 名称计算命令(可能是调用堆栈编号,包括 tclcmds)?我认为需要假设源是可用的(不是预编译的).谢谢你. 解决方案 动态分析 您可以使用跟踪来查找在执行特定过程期间执行了多少命令.在不重新输入命令(即不是递归的)的假设下,您执行以下操作: proc theProcedureOfInterest {} {#这里随便...对于 {set i ..
发布时间:2021-09-04 19:47:51 其他开发

tcl vwait 和之后不符合预期?

我对 TCL 还是个新手,用得不多,主要是在遗留代码中.我遇到了代码问题,通过简化它,我得到了下面的代码.在第二个“之后"中,我的代码有时需要更长的时间,有时比​​第一个“之后"更快.我希望我的代码在其中任何一个完成时继续运行,而忽略另一个.但是,我的 vwait 总是在等待我拥有的最新“之后". 全局 tkf设置 tkf bputs "ini: $tkf"# 等待 7 秒,然后设置 tkfse ..
发布时间:2021-09-04 19:47:48 其他开发

TCL 中带有括号和大括号的双美元是什么意思?

问题 下面这行有什么作用? eval "设置 abc \$${SID}(abc)" 我的尝试 我知道 $someArray(index) 是在 TCL 中访问数组的方式.所以 设置 abc $SID(abc) 希望 abc 成为数组 SID 的键(据我所知,abc 可以是 TCL 中的所有数组是关联的.这是正确的吗?).然后将值赋给 abc. 所以在伪代码中该行是 确保 ..
发布时间:2021-09-04 19:47:43 其他开发

ns2 无法连接到现有的 nam 实例

我正在尝试使用 nam 运行以下代码. set ns [新模拟器]设置 nf [打开 lab1.nam w]$ns namtrace-all $nfset f [打开 lab1.tr w]过程记录{} {全球汇 fset ns [模拟器实例]设定时间 0.12set bw [$sink set bytes_]立即设置 [$ns now]puts $f "$now [expr (($bw/$tim ..
发布时间:2021-09-04 19:47:40 其他开发

TCL\TK 调整窗口大小:绑定

我在调整窗口大小时遇到​​问题,我不明白为什么,当我移动窗口 . 我用 .c bind cir 创建的另一个窗口[列表窗口 %x %y] 不要跟随我的窗口 .我相信我必须使用 作为选项,但我不知道该怎么做 感谢您的帮助 我的代码如下: proc 窗口 {crx 哭} {设置 w1 .win抓住 {摧毁 $w1}顶层 $w1wm 最小尺寸 $w1 300 100wm maxsize $ ..
发布时间:2021-09-04 19:47:37 其他开发

如何在 Tcl 中修复以下正则表达式?

我在 TCL 中有以下代码: "\\*05.|__|##|.T|__|__|" 尝试匹配以下输出: *05 |__|##|T|__|__| 并且匹配. 但是如果输出是: *05 |__|##|__|__|__| 它也匹配,是什么问题,如何解决? 解决方案 字符 | 是一个特殊字符,用于表示正则表达式中的“或".你需要做的是逃避它. "\\*05.\\|__\\|##\\ ..
发布时间:2021-09-04 19:47:35 其他开发