Markus: TCL/TK

hey zusammen,
ich hab ein Tcl-Script, das folgenden Zeile beinhaltet:
-------------
after 5000 {exec {C:\Program Files\Internet Explorer\IEXPLORE.EXE} $line}
-------------

allerdings wird folgender Fehler angezeigt:
-------------
can't read "line": no such variable
    while executing
"exec {C:\Program Files\Internet Explorer\IEXPLORE.EXE} $line"
    ("after" script)
-------------

Kann mir da jemand weiterhelfen...

Danke und Gruß,
Markus

  1. Da wurde wohl die Varable "line" zuvor noch nicht definiert.

    1. Da wurde wohl die Varable "line" zuvor noch nicht definiert.

      "puts $line" liefert mir allerdings den korrekten wert ...!

      ?

      Gruß,
      Markus

      1. "puts $line" liefert mir allerdings den korrekten wert ...!

        Dein puts steht _direkt_ vor der after-zeile ?

        1. Dein puts steht _direkt_ vor der after-zeile ?

          ja...
          allerdings steht kein puts (spielt aber keine rolle, glaub ich), sondern folgendes direkt davor:
          ---------
          .lnewmsg configure -text "You received a new message:\n$line\n"
          ---------

          Gruß,
          Markus

          1. Hm, ersetze mal die aeusseren geschweiften Klammern {} durch Anfuehrungsstriche "":

            after 5000 "exec {C:\Program Files\Internet Explorer\IEXPLORE.EXE} $line"

            1. eigentlich kannste die andere klammer auch durch " ersetzen

            2. ... funktioniert leider auch ned ...

              Hier nochmal das komplette Script, vieeleicht hilft Dir das weiter:

              ---------------
              #!/bin/sh

              \

              exec wish $0 ${1+"$@"} || exit 1

              proc ServerProzedur { channel client_host_address client_port } {
                 while { [gets $channel line] >= 0 } {

              .lnewmsg configure -text "\n$line\n"
                   after 5000 "exec {C:\Program Files\Internet Explorer\IEXPLORE.EXE} $line"
                   after 7000 {.lnewmsg configure -text ""}
                }
              }

              #--------Hauptprogramm----------
              button .bquit -text "Shut down" -command "exit"
              label .lnewmsg -width 50
              pack configure .bquit -side bottom
              pack .lnewmsg -side top

              socket -server ServerProzedur 8888

  2. danke, ich hab den fehler...

    ich hab das ganze in ner schleife dringehabt und bei aufruf war der wert der variable nicht mehr definiert... mit meinen angaben hat auch keiner draufkommen können... sorry und danke an "sirdan"...

    @sirdan: scheinbar kennst Du Dich (im Gegensatz zu mir) mit Tcl etwas aus... weißt Du vielleicht, wie man einen Ton (beep) ausgeben kann ?!

    Gruß,
    Markus