Re: streams

A-S Saidi <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Organization ECL
Message-ID <[email protected]>
Hi,

Gonna give youthe answer I got some time ago (the same question !).

Things work by the solution (1) but more generaly by (2).

Regards.

Alexandre.

______________________________________________________________

1-

.... Here is what I did (essentially your example but in two steps):

Best regards,
Johannes

$ gprolog
GNU Prolog 1.2.18
By Daniel Diaz
Copyright (C) 1999-2004 Daniel Diaz
| ?- [user].
compiling user for byte code...
entier(0).
entier(succ(N)) :- entier(N).

user compiled, 3 lines read - 348 bytes written, 8476 ms

(1 ms) yes
| ?- open(fichier,write,F), current_input(I), current_output(O),
asserta(streams(F,I,O)),
'$set_top_level_streams'(I, F),entier(succ(succ(0))).
| ?- retract(streams(F,I,O)),
'$set_top_level_streams'(I, O), close(F).

F = '$stream'(2)
I = '$stream'(0)
O = '$stream'(1)

(1 ms) yes
| ?- halt.

$ cat fichier

F = '$stream'(2)
I = '$stream'(0)
O = '$stream'(1)

yes
$

___________________________________________________________

2- via script cpmmand :

Following my question about "stdout redirection in Gprolog", Gurvan Le
Guernic gave a general

answer ("script" command under Unix/Linux) that did the job.

I post it hereby.

This works not only for Gprolog but also for any command.

In order to gather (to mirror) outputs, launch " script -c gprolog
myfile" and "myfile" is a mirrir of the stdout :

(see "man script" also).

Here's an example (sorry for Windoz users !):

---------------------------------------------------------

alex@safran:> script -c gprolog toto

Le script a débuté, le fichier est toto

GNU Prolog 1.2.16

By Daniel Diaz

Copyright (C) 1999-2002 Daniel Diaz

| ?- write(1).

1

yes

| ?- listing.

yes

.......................

| ?- halt.

Script complélé, le fichier est toto

alex@safran:>

alex@safran:> cat toto

Le script a débuté sur mar 01 mar 2005 19:58:00 CET

GNU Prolog 1.2.16

By Daniel Diaz

Copyright (C) 1999-2002 Daniel Diaz

| ?- write(1).

1

yes

| ?- listing.

yes

.....................

| ?- halt.

Script complété sur mar 01 mar 2005 19:58:10 CET

---------------------------------

Cliff Bender a écrit :

Hi,

I'd like some help trying to understand the use of streams. As I
understand, this should produce a file 'out.txt', with the listing in
it. However, the listing gets printed to the screen, and the file is
empty:

| ?- open('out.txt',
write, H, [alias(out)]), current_output(COUT), set_output(out),
listing, set_output(COUT).

squint([], []).
squint([A|B],
[C|D]) :-
integer(A),
C is A * A,
squint(B,
D).
squint([A|B],
[A|C]) :-
squint(B,
C).

COUT = '$stream'(1)
H = '$stream'(2)

(1 ms) yes
| ?-

If anyone has any ideas, suggestions, anything, please reply.

Thanks and have a great weekend.

Cliff

----------

_______________________________________________
Users-prolog mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/users-prolog

--
Aleksander S. Saidi
Ecole Centrale de Lyon
Département Mathématiques-Informatique
Mél : [email protected]
Tél : 04.72.18.65.30, Fax : 04.78.33.16.15

_______________________________________________
Users-prolog mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/users-prolog
Alexandre.Saidi.vcf (text/x-vcard, 395 B)
begin:vcard
fn:A-S Saidi
n:Saidi;Aleksander-Sadegh
org;quoted-printable:Ecole Centrale de Lyon, D=C3=A9p MI;LIRIS-CNRS UMR 5205
adr:;;36 ave. Guy de Collongue;Ecully;Rhone;69134;France
email;internet:[email protected]
title;quoted-printable:Ma=C3=AEtre de Conf=C3=A9rences
tel;work:04.72.18.65.30
tel;fax:04.78.33.16.15
x-mozilla-html:TRUE
url:http://www.mi.ec-lyon.fr
version:2.1
end:vcard
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.