Evaluated proc ascii2map str { set out [list]; foreach line [split $str \n] { set chunks [ltrim [split $line "\x03"]]; set cout [list]; foreach chunk $chunks { set re [regexp -inline {(\d+)*(,(\d+))*(.+)$} $chunk]; set cout [linsert $cout end [list [dfl [lindex $re 1] -] [dfl [lindex $re 3] -] [lindex $re 4]]] }; set out [linsert $out end $cout]}; ltrim $out }