2013-04-22 4 views
0

TCL 스크립팅을 처음 사용했습니다. 다섯 번째 위치에 요소를 삽입하려고합니다. 이 목록에는 처음에는 값 (빈 목록)이 없습니다.TCL에 요소 삽입

"linsert"명령으로 시도했지만 문제는 나로 지정된 위치에 요소를 삽입 할 수 없다는 것입니다. 코드 조각입니다 다음,

set newlist {} 
set newlist [linsert $newlist 5 value_to_be_inserted] 

이 코드는 오히려 0 번째 요소의 시작 부분에 삽입, 5 위치에 삽입에게 요소를 doesnot. 어떻게이 작업을 수행 할 수 있습니다.

내 도움을 얻으려면 도움이 될 것입니다.

답변

3

목록의 요소가 없습니다. 5 번째 위치에 삽입 할 수 없을 때 어떻게 5 번째 위치에 삽입 할 수 있습니까? 결과 목록은 무엇을 기대합니까? 나는 가능하게 생각할 수있는 유일한 것은 당신이 예를 들어,의 동작을 원하는 경우

set newlist [list {} {} {} {} {} value_to_be_inserted] 
3

말 5 개 빈 요소는 단순히 달성 할 수있는 당신의 요소, 다음에해야하는 것 자바 스크립트, 색인이 길이보다 큰 경우 목록이 빈 요소로 확장되는 경우 프로 시저를 만들어야 할 것입니다.

proc expandInsert {list index args} { 
    set nEmpties [expr {$index - [llength $list]}] 
    if {$nEmpties > 0} { 
    lappend list {*}[lrepeat $nEmpties ""] 
    } 
    # insert or append args 
    return $list 
} 
+0

답변 해 주셔서 감사합니다. 나는 요소가 특정 위치의 빈 목록에 삽입 될 수 있다는 오해가있었습니다. –