Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: RE: problem calling macros using file write in a program


From   "Martin Weiss" <[email protected]>
To   <[email protected]>
Subject   st: RE: RE: problem calling macros using file write in a program
Date   Wed, 17 Mar 2010 00:24:53 +0100

<>



As soon as you use a -global-, the problem goes away:


*************
clear*
cap erase OLSresults.txt
di in r _rc

prog writeit
     file open results using OLSresults.txt, write replace
      file write results `"$model"'
      file close results
end

glo model Model 1. All states, no controls.
writeit
type OLSresults.txt
*************

See [U], 18.3.


HTH
Martin


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Martin Weiss
Sent: Mittwoch, 17. März 2010 00:19
To: [email protected]
Subject: st: RE: problem calling macros using file write in a program


<>

That -local-, as the name somewhat implies, only exists locally, hence not
within your -program-. BTW, should it not be

-file close results-?


HTH
Martin

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Tim Scharks
Sent: Dienstag, 16. März 2010 23:32
To: [email protected]
Subject: st: problem calling macros using file write in a program

Hi everyone, long time reader, first time asker. I would very much
appreciate any light you could shine on this problem.

I am trying to write a short program to routinize my results output
using file write. Here is a short example of the function I am trying
to automate:

local model "Model 1. All states, no controls."
file open results using OLSresults.txt, write replace
file write results `"`model'"'
file close test

This works fine--my specified file has the local macro text written to
it and I know how to customize with tabs, new lines, and my regression
results.

However, I would think that the above routine could be made even
simpler with a program that would execute from within the .do file. I
have already written a small program in this manner to add stars for
significance to my regression output using a series of if statements
with tests on the p values file write commands. Therefore I thought
this would work:


program define writeit
     file open results using OLSresults.txt, write replace
      file write results `"`model'"'
      file close test
end

local model "Model 1. All states, no controls."
writeit


Obviously the program would be longer with more steps to make it
useful. But even as written here executing the program writes nothing
to my file--with the replace command it wipes it clean but doesn't
write anything!?!

Any help would be greatly appreciated. Thanks, Tim
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index