Re: waiting command
- To: mathgroup at smc.vnet.net
- Subject: [mg40243] Re: waiting command
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 28 Mar 2003 04:28:05 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <b5uono$lkb$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
what is with
WaitForExternalFile[command_, filename_String,
maxCount_Integer,
pattern_:"*.txt"] :=
Module[{i = 0, found = False},
Run[command];
While[i++ < maxCount,
Pause[10];
(* look if the file is created *)
found = MemberQ[FileNames[pattern], filename];
If[found, Break[]];
];
found
]
and something like
WaitForExternalFile["EMFIELD.EXE -p1 -p2","Results.txt",10000]
should work.
Possibly you get a timing problem, when the program
has not finished the file but Mathematica try
to read from an open file.
The best way would be to write a MathLink program
that return the result to the kernel.
Regards
Jens
Roberto Brambilla wrote:
>
> Hi,
>
> I'd like to use Mathematica to run an extermal program,
> let me say EMFIELD.EXE with some parameters p1 , p2 :
>
> Run["EMFIELD.EXE -p1 -p2"]
>
> The external program put results in the ascii file Results.txt
> (a filename that I can change every time).
> Then I read results from it with
>
> ReadList["Results.txt", Number,...]
>
> After an analysis of them inside the same session of Mathematica,
> I modify the parameters p1, p2 and run again the external program.
> And so on for many times until analysis is OK.
> Since EMFIELD may take seconds or hours to generate the results,
> depending on the complexity of the problem and the values of parameters,
> how can I tell Mathematica to wait until the Results.txt file is
> created or updated? Pause[n] would be fine if I knew n, but this is
> not the case and putting a guessed large n is a poor solution
> (offending Mathematica lovers!).
>
> Many thanks, Roberto
>
> Roberto Brambilla
> CESI
> Via Rubattino 54
> 20134 Milano
> tel +39.02.2125.5875
> fax +39.02.2125.5492
> rlbrambilla at cesi.it