eleganter weg ein 2d-array in tcl zu deklarieren?

dettus

Bicycle User
guten tag.

kennt jemand von euch einen eleganteren weg um ein 2d-array in tcl zu bauen?
bisher kenne ich nur
Code:
set a(0,0) 1;set a(0,1) 2
set a(1,0) 3;set a(1,1) 4
set a(2,0) 5;set a(2,1) 6

waehrend das in c in meinen augen doch etwas schoener ist

Code:
int a[][]={{1,2},
           {3,4},
           {5,6}};
 
shit, hab gerade das hier auf wiki.tcl.tk gefunden:

How do you get multiple dimension arrays in Tcl?

There are no multi-dimensional arrays in Tcl but they can be simulated by a naming convention:

set a(1,1) 0 ;# set element 1,1 to 0
grrrrrrrrrrrrrrrr.

gibts sowas wie structs?
oder oder weiss jemand wie ich z.b. einen string tokenisieren kann?
sprich
Code:
set a(0) "1;2"
set a(1) "3;4"
set a(2) "5;6"
und dann in einer for-schleife spaeter
Code:
for {set i 0} {$i<100} {incr i} {
    set realpart VORDEMSEMIKOLON(a(i))
    set imagpart NACHDEMSEMIKOLON(a(i))
}

huuuelfe...
 
Ich bin gerade ein wenig unsicher, ob es das ist was du willst, aber hast du dir die Beispiele in lset(n) mal angesehen?
 
Zuletzt bearbeitet:
was ich moechte ist in einer for-schleife ein paar variablen immer auf einen konstanten wert setzen, und etwas damit rechnen.

und irgendwo muss man die konstanten werte ja deklarieren. ;)
 
schon gut, habs rausgefunden:
Code:
#!/usr/bin/wish

set vec {
{1 2 3 4}
{5 6 7 8}
{9 10 11 12}
}
foreach x $vec {
        set i 0
        foreach y $x {
                set a($i) $y
                incr i
        }
        set REALPART $a(0)
        set IMAGPART $a(1)
        puts $IMAGPART
}
 
Zurück
Oben