2010-06-14 32 views

Antwort

-5

Verwenden Sie den Befehl list.

http://wiki.tcl.tk/440

Alternativ finden Sie unter "split": http://wiki.tcl.tk/1499

split "comp.unix.misc" 

returns "comp Unix misc"

+5

Sie Möglichkeiten geben, eine Liste aus einer Zeichenfolge zu machen. Die Frage fragt nach dem Gegenteil - wie man von Liste zu Zeichenfolge gelangt. –

5

explict Umwandlung als String Ihrer Liste verwenden Wenn Sie nur den Inhalt wollen, können Sie legt ListeVar $ und es wird der Inhalt als String schreiben.

Sie können die Liste um eine Ebene reduzieren oder ein Trennzeichen mithilfe von join einfügen, wie oben beschrieben.

Beispiel:

% set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 } 
1 2 3 4 { 5 6 { 7 8 9 } } 10 
% puts $a 
1 2 3 4 { 5 6 { 7 8 9 } } 10 
% join $a "," 
1,2,3,4, 5 6 { 7 8 9 } ,10 
% join $a 
1 2 3 4 5 6 { 7 8 9 } 10 
+2

Wenn Sie auch mehrstufige Listen reduzieren müssen, sehen Sie sich das Tcllib-Paket struct :: list und den Unterbefehl flatten an. http://tcllib.sourceforge.net/doc/struct_list.html – schlenk

1
set list {a b c d e f} 
for {set i 0} {$i<[llength $list]} {incr i} { 
    append string [lindex $list $i] 
} 
puts $string 
-1
set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 } 
set rstr [regexp -all -inline {\S+} $a] 
puts $rstr 
0

Um eine Liste mit Klassen verflachen:

set list { 1 2 3 4 { 5 6 { 7 8 9 } } 10 } 

package require struct::list 
struct::list flatten -full $list 
Verwandte Themen