Tcl 我需要一些帮助。。。。。剧本。。。。。这可以做到以下几点

Tcl 我需要一些帮助。。。。。剧本。。。。。这可以做到以下几点,tcl,Tcl,假设我输入一个模式,如aabbccc 然后脚本应该像T1 0a-4b-2c-30t1那样打印 其中T1为抽头,0表示下一行 如果帕特恩像AAABBCC 卡布卡 然后脚本应该生成一个模式T1 0A-3B-2C-20T1 0CABBC-2BA0T1#应以T1开头,以T1结尾。。。。两个模式之间只允许有一个T1。。。。。。 我是TCL的新手,请帮忙 set pattern1 {AAAABBCCC} set pattern2 {AAABBCC CABCCBA} proc process {patter

假设我输入一个模式,如aabbccc

然后脚本应该像T1 0a-4b-2c-30t1那样打印

其中T1为抽头,0表示下一行

如果帕特恩像AAABBCC 卡布卡

然后脚本应该生成一个模式T1 0A-3B-2C-20T1 0CABBC-2BA0T1#应以T1开头,以T1结尾。。。。两个模式之间只允许有一个T1。。。。。。 我是TCL的新手,请帮忙

set pattern1 {AAAABBCCC}
set pattern2 {AAABBCC
CABCCBA}

proc process {pattern} {
    lappend result "T1"
    foreach line [split $pattern "\n"] {
        lappend result "0"
        foreach {chunk symbol} [regexp -all -inline {(.)(?:\1+)?} $line] {
            set num [string length $chunk]
            lappend result $symbol[expr {($num>1)?"-$num":""}]
        }
        lappend result "0" "T1" "\n"
    }
    return [join $result]
}

puts [process $pattern1]
puts [process $pattern2]
上述代码的输出:

T1 0 A-4 B-2 C-3 0 T1

T1 0 A-3 B-2 C-2 0 T1
 0 C A B C-2 B A 0 T1
上述代码的输出:

T1 0 A-4 B-2 C-3 0 T1

T1 0 A-3 B-2 C-2 0 T1
 0 C A B C-2 B A 0 T1

Hi GrAnd:如果我有一个只有两行的文件,wer在一个变量中,如R mul=64,在同一行中有一个anoy=ther变量a,表示a必须乘以64倍。。。。。。ie A-64…类似地,下一行有B和mul=32表示B-32…如何做到这一点…对不起,我不明白您的意思。这似乎与我的回答无关。不管怎样,尽一点努力,自己做点什么。如果您陷入困境,请向我们展示您的代码,社区将尽力提供帮助。这个网站不是一个从零开始要求完整解决方案的好地方(为你的实验室?)。嗨,格兰德:如果我有一个只有两行的文件,wer包含一个变量,如R mul=64,在同一行中有一个anoy=ther变量a,它表示a必须乘以64倍。。。。。。ie A-64…类似地,下一行有B和mul=32表示B-32…如何做到这一点…对不起,我不明白您的意思。这似乎与我的回答无关。不管怎样,尽一点努力,自己做点什么。如果您陷入困境,请向我们展示您的代码,社区将尽力提供帮助。这个网站不是一个要求从零开始提供完整解决方案的好地方(你的实验室?)。