🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.tcl
5 messages
5 total messages Started by Marcin Szelest SQ9DJJ Fri, 30 Sep 2005 12:59
obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
#177
Author: Marcin Szelest SQ9DJJ
Date: Fri, 30 Sep 2005 12:59
17 lines
1456 bytes
Witam,

Jecze, miotam sie i wlosy sobie szarpie a za cholere nie moge dojsc  
dlaczego to nie dziala. Sprawa wyglada nastepujaco:

Nacisniecie przycisku button powoduje wywolanie procedury. Procedura ta  
odpala zewnetrzy skryt i powinna na biezaco wywalac wyniki jego pracy.  
Problem polega na tym, ze okiengo wynikowe odswieza sie dopiero wtedy gdy  
procedura dojdzie do konca. Efekt jest taki, ze program przez 5 minut  
wyglada tak jak by sie zawiesil a pozniej nagle wywala na ekran kilkaset  
linii na raz.

Ludzie ratujcie bo sie zaraz przekrece!!

pozdrawiam
Marcin
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
#178
Author: Googie
Date: Fri, 30 Sep 2005 14:19
26 lines
1593 bytes
Marcin Szelest SQ9DJJ napisał(a):
> Ludzie ratujcie bo sie zaraz przekrece!!

Trzeba użyć strumieni, zamiast standardowego execa. Strumienie nie 
blokują wykonywania/odświerzania bierzącego skryptu, ale wymagają nieco 
więcej oprogramowywania. Oto przykład, jak zapisać:

puts [exec polecenie argument1 argument2]

używając strumieni:

proc handlePolecenie {id} {
	set data [read $id]
         puts $data
         if {[eof $id]} {
		# [catch] użyte tak dla pewności.
		catch {close $id}
	}
}
set id [open "|polecenie argument1 argument2" r]
fileevent $id readable "handlePolecenie $id"


-- 
Pozdrawiam!
Googie
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
#179
Author: olo
Date: Mon, 03 Oct 2005 06:19
31 lines
1858 bytes
Googie <no@spam.org> wrote:
> Marcin Szelest SQ9DJJ napisał(a):
>> Ludzie ratujcie bo sie zaraz przekrece!!
> 
> Trzeba użyć strumieni, zamiast standardowego execa. Strumienie nie 
> blokują wykonywania/odświerzania bierzącego skryptu, ale wymagają nieco 
> więcej oprogramowywania. Oto przykład, jak zapisać:
> 
> puts [exec polecenie argument1 argument2]
> 
> używając strumieni:
> 
> proc handlePolecenie {id} {
>        set data [read $id]
>         puts $data
>         if {[eof $id]} {
>                # [catch] użyte tak dla pewności.
>                catch {close $id}
>        }
> }
> set id [open "|polecenie argument1 argument2" r]
> fileevent $id readable "handlePolecenie $id"
> 
> 

A ja musle, ze wywolanie 'update' w zupelnosci wystarczy.
Czyz nie?

Serdecznie pozdrawiam

olo
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
#180
Author: Googie
Date: Mon, 03 Oct 2005 07:12
14 lines
1513 bytes
olo@nowar.pl napisał(a):
> A ja musle, ze wywolanie 'update' w zupelnosci wystarczy.
> Czyz nie?

Zależy co chcesz osiągnąć, ale wydaje mi się że w Twoim przypadku nie 
wystarczy. [update] możesz wykonać dopiero po wykonaniu [exec]a, a ten 
będzie się wykonywał dopóki nie skończy się wywołane w nim polecenie, 
więc update sobie poczeka i zostanie wywołane wtedy, kiedy już tak na 
prawdę nie będzie potrzebne. Tak czy inaczej na czas wykonywania [exec]a 
Tk zdechnie.

-- 
Pozdrawiam!
Googie
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
#181
Author: olo
Date: Tue, 04 Oct 2005 05:23
28 lines
1999 bytes
Googie <no@spam.org> wrote:
> olo@nowar.pl napisał(a):
>> A ja musle, ze wywolanie 'update' w zupelnosci wystarczy.
>> Czyz nie?
> 
> Zależy co chcesz osiągnąć, ale wydaje mi się że w Twoim przypadku nie 
> wystarczy. [update] możesz wykonać dopiero po wykonaniu [exec]a, a ten 
> będzie się wykonywał dopóki nie skończy się wywołane w nim polecenie, 
> więc update sobie poczeka i zostanie wywołane wtedy, kiedy już tak na 
> prawdę nie będzie potrzebne. Tak czy inaczej na czas wykonywania [exec]a 
> Tk zdechnie.
> 

Pytajacy wypowiada sie dosyc nieprecyzyjnie:

> ... odpala zewnetrzy skryt...
<...>
> ... procedura dojdzie do konca...

w zwiazku z czym wydaje mi sie, ze jakiekolwiek
wyrokowanie, czy to czy tamto rozwiazanie jest
zle czy dobre, nie ma sensu. Tym bardziej, ze
nie wiemy nawet, czy rzeczywiscie jest tu mowa
o execu.

Serdecznie pozdrawiam

olo
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads