On Thu, 14 Jul 2011, Ignacio Diaz-Emparanza wrote: > El 14/07/11 08:52, Pietro Battiston escribió: >> >> I'm trying to have a rapid way to output numbers to files, and wrote the >> following: >> >> # A function to dump numbers to files: >> function scalar to_file(scalar numb, string format, string filename) >> set echo off >> set messages off >> outfile filename --write >> printf format, numb >> outfile --close >> set echo on >> set messages on >> return 0 >> end function >> >> which however doesn't work. By trying different specifications, I think >> I have understood that the "filename" parameter of "outfile" and the >> "format" parameter of "printf" cannot be variables, they are parsed >> directly as strings by the interpreter. >> >> Did I understand correctly? >> Is there anything I can do to solve my problem? >> >> I do not care too much, in the end, about "format", but if there is no >> way to pass an arbitraray string to "outfile" I'm clearly trying >> something stupid. > > I think that only adding "@" to the filename of the 'outfile' command as in: > > outfile @filename --write > > your function should work. (not tested)
Yes, "outfile" is a gretl command, not a function that accepts a string variable as input. But you can use gretl's string substitution mechanism, with the '@' operator preceding the name of a string variable to "cash it out". The same goes for the "printf" command: you could do printf "@format", numb -- Allin Cottrell Department of Economics Wake Forest University, NC