

########################################################################
# Emulation partielle de la version tcl8 de "array set"
#     arraySet myTabName  {
#         index_1 value_1
#         index_2 value_2
#         ...
#         index_n value_n
#     }
# 
proc arraySet {arrayName parList} {

    upvar $arrayName ar

    if {[llength $parList] % 2} {
      error "La liste \"parList\" doit etre multiple de deux"
    }
    
    set i -1
    while {$i < [expr [llength $parList] -1]} {
    
        set   ar([lindex $parList [incr i]])    [lindex $parList [incr i]]
        
    } ;# endfor
  


}
########################################################################
# Emulation partielle de la version tcl8 de foreach
#     foreach2s v1 v2 $myParList {
#         # my code here...
#     }
# 
# FAIRE AUSSI foreach2, foreach3 et foreach4 ainsi que les versions
# travaillant sur plusieurs listes : foreach2bis, foreach3bis, ...
#     foreach2bis v1 v2 $myList1a $myList1b {
#         # my code here...
#     }

proc foreach2 {v1Name v2Name list2 script} {
    upvar $v1Name v1
    upvar $v2Name v2
    
    if {[llength $list2] % 2} {
      error "La liste \"list2\" doit etre multiple de deux"
    }
    
    set i -1
    while {$i < [expr [llength $list2] -1]} {
        set v1    [lindex $list2 [incr i]]
        set v2    [lindex $list2 [incr i]]
        uplevel $script
    } ;# endfor
  
} ;# endproc 






