Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Eric Booth <ebooth@ppri.tamu.edu> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: problem calling macros using file write in a program |
Date | Tue, 16 Mar 2010 18:22:07 -0500 |
Hi Tim: One problem is that you -file open-/-file write- to the handle "results" and you -file close- the handle "test". Second, if you -set trace on- before you run your program, you'll see that it's not writing `model' because the program is not passed `model', so it writes what it sees (e.g., " file write results `""' ") Instead, you might want to pass the 'using' file and the local macro as part of the syntax; something like this should get you started: ********** cap erase "OLSresults.txt" //--just so that we know that this program wrote the macro ** cap program drop writeit program define writeit syntax using/ , LOCal(string) cap file close results file open results using "`using'", write replace file write results `"`local'"' file close results end **examples** writeit using "OLSresults.txt", local("Model 1. All States, no controls.") set trace on writeit using "OLSresults2.txt", loc("Model 2. Yada Yada") set trace off ********** ~ Eric __ Eric A. Booth Public Policy Research Institute Texas A&M University ebooth@ppri.tamu.edu Office: +979.845.6754 On Mar 16, 2010, at 5:32 PM, Tim Scharks wrote: > > 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 On Mar 16, 2010, at 5:32 PM, Tim Scharks wrote: > 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/