Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.
SET ALTERNATE
, Set(“Alternate”)The SET ALTERNATE
commands let you send certain kinds of output to a file as well as to the screen. Think of the output it creates as a “log file” (but don’t confuse it with the log files created by the Coverage Logging option in the Debugger).
SET ALTERNATE TO [ FileName [ ADDITIVE ] ]
SET ALTERNATE ON | OFF
cOnOrOff = SET("ALTERNATE")
cFileName = SET("ALTERNATE",1)
Back when Tamar used to teach dBase, she needed a way for students to perform a series of commands and turn something in that showed they’d done it right. Fortunately, someone had added SET ALTERNATE
to the language. The students could see their output on screen, but a duplicate of it appeared in a file that could be printed out and turned in. Other than that, we’ve never found much use for these commands. Back in ancient Xbase history, before the TextMerge commands came along, SET ALTERNATE
was handy for creating text files.
SET ALTERNATE
is confusing to use. (The students certainly found it so.) It’s a two-step process to turn it on and a two-step process to turn it off (unless you use CLOSE ALTERNATE
). SET ALTERNATE
TO lets you specify a file to contain the output. That file stays in effect until you issue the command without a file or SET ALTERNATE
TO a different file. Actually, of course, it’s all analogous to the SET PRINT commands and provides you an alternate output file.
Once you’ve established an alternate file, SET ALTERNATE
ON or OFF determines whether eligible output goes to that file. (Output from ?, ??, DISPLAY and LIST
is eligible.) The text you send to the file is echoed to the active window unless you SET CONSOLE
OFF.
SET ALTERNATE TO Test.TXT
USE Employee
* Start logging
SET ALTERNATE ON
LIST First_Name,Last_Name
* Stop logging
SET ALTERNATE OFF
LIST Birth_Date
* Turn off log file
SET ALTERNATE TO
Close Alternate, Set, Set Console, Set Device, Set Print, Set TextMerge, StrToFile()