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