0
안녕하세요, 다음 코드를 시도하고 있지만 오류가 발생합니다. 내가 참조 값을주고 절차가 목록을 위 또는 아래로 움직여야하는 선례. 코드는 다음과 같습니다tcl에서 for 루프 문제가 발생했습니다.
proc getvalue {reference direction} {
if {[regexp {(.*)(x.*$)} $reference cellname family string]} {
puts $family
puts $string
} else {
puts " No string matched"
}
set mylist [T_sel2list [get_lib_cells "*/*${family}*"] ]
set sorted_finallist [lsort $mylist]
set i [lsearch $sorted_finallist *$string ]
if {$direction == "DOWN"} {
if {$direction == "DOWN" && $i > 0} {
incr i -1
set requiredDOWN [lindex $sorted_finallist $i]
puts "$requiredDOWN"
} else {
puts "First in the line"
} else {$direction == "UP" && $i >= 0 && $i < [llength $sorted_finallist] -2} {
incr i
set requiredUP [lindex $sorted_finallist $i]
puts "$requiredUP"
} else {
puts "Last in the line"
}
}
}
내가 오류 말하는 점점 오전 : 오류 : 잘못된 #의 인수 : 여분의 단어 추가 정보를 원하시면 "만약"명령 사용 error_info에서 "다른"절 후. (CMD-013) for 루프에 무엇이 잘못되었는지 알지 못합니다. 누군가 나를 도와주세요.
글쎄, 당신은 아마도'else'를'elseif'로 대체하려고합니다. –
마지막 else를 제외한 else를 elseif로 변경했으며 오류 메시지가 표시되지 않습니다. 프로 시저가 ** DOWN ** 옵션에서 제대로 작동하지만 ** UP ** 옵션에서는 출력이 표시되지 않고 오류 메시지도 표시되지 않습니다. for 루프는 라인에 들어 가지 않습니다 : **} else {$ direction == "UP"&& $ i> = 0 && $ i <[llength $ sorted_finallist] -2} {** – user2533429
그 이유는' 만약'$ direction'이'DOWN'이라면 if' 절을, 안되면? –