Gegeben sei das Wort MAKESODFELDER das Zahlenfelder ausgibt.
Im file FELDER.FS steht als letztes dann MAKESODFELDER BYE
Die Kommandozeile "gforth felder.fs > sodfelder3.txt" beim Aufruf des
gforth tut was es soll. Die Felder stehen anschließend im file
SODFELDER3.TXT - soweit so gut.
Nun möchte ich aber statt dessen versuchen das file SODFELDER3.TXT
aus dem file FELDER.FS heraus zu erzeugen. Und dazu den output
vorübergehend umlenken, um danach weiter zu compilieren. So dachte ich
folgendes würds tun:
...
s" sodfelder3.txt" r/w create-file throw value fd-out
s" > sodfelder3.txt" w/o open-pipe throw value pipe-id
makesodfelder
pipe-id close-pipe throw drop
fd-out close-file throw
inlude sodfelder3.txt
...
Damit wird zwar das file angelegt, aber nichts hinein geschreiben, der
output geht weiter über das Terminal.
Ich seh schon, auf der nächsten Forthtagung brauche ich ein Pipes-
Tutorial. ;-)
Michael
Ha, ich habs!
> Nun möchte ich aber statt dessen versuchen das file SODFELDER3.TXT
> aus dem file FELDER.FS heraus zu erzeugen. Und dazu den output
> vorübergehend umlenken, um danach weiter zu compilieren.
s" sodfelder3.txt" r/w create-file throw value fd-out
fd-out to outfile-id
makesodfelder
stdout to outfile-id
fd-out close-file throw
include sodfelder3.txt
Das tuts.
Aber neugierig geworden bin ich ja nun doch:
Was könnte denn ein OPEN-PIPE für mich tun?
Michael
Du könntest den Output in ein anderes Programm 'reinleiten.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
> Du könntest den Output in ein anderes Programm 'reinleiten.
Hm. Wenn ich zwei gforth prozesse hätte, also in zwei verschiedenen
terminals, könnten die sich dann unterhalten? Hat das schon mal jemand
ausprobiert?
Michael
Sowas wird man normalerweise nicht ueber OPEN-PIPE machen, und
normalerweise laeuft das andere Programm im selben Terminal. Eine
Ausnahme ist, wenn das andere Programm ein eigenes Terminal aufmacht;
ein Beispiel dafuer siehst Du in
<http://www.complang.tuwien.ac.at/viewcvs/cgi-bin/viewcvs.cgi/*checkout*/gforth/status.fs>,
wo das andere Programm xterm ist, und dazu verwendet wird, um den
Stack-Status anzuzeigen.
- anton
--
M. Anton Ertl Some things have to be seen to be believed
an...@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html