以下TCL函數被調用n次。每次將numid和type傳遞給此函數時,我都試圖爲每種類型添加numid。將TCL數組或列表操作轉換爲變量
例如
如果傳遞的值如下
2 BLACK
1 RED
1 BLACK
3 BLUE
1 BLUE
2 BLUE
2 RED
我得到的是以下使用set_numid_type功能輸出
black_color_str 2 1
red_color_str 1 2
blue_color_str 3 1 2
但我需要的輸出如下。當type不在順序中時,它應該被附加到不同的變量類型。
black_color_str 2
red_color_str 1
black_color_str 1
blue_color_str 3 1 2 (since BLUE color is called in sequence)
red_color_str 2
proc set_numid_type {numid type} {
variable black_color_str
variable red_color_str
variable blue_color_str
if {$type == "BLACK"} {
if {![info exists black_color_str] || ![llength $ black_color_str]} {
set black_color_str ""
}
lappend black_color_str $numid
}
if {$type == "RED"} {
if {![info exists red_color_str] || ![llength $ red_color_str]} {
set red_color_str ""
}
lappend red_color_str $numid
}
if {$type == "BLUE"} {
if {![info exists blue_color_str] || ![llength $ blue_color_str]} {
set blue_color_str ""
}
lappend blue_color_str $numid
}
}
建議張貼調用代碼。這只是一個管理狀態的問題,即確定當前顏色是應該添加到序列中還是創建新行的最後一種顏色。 – Matthew
調用代碼來自xslt端,如下所示: – tcluser