TEXT ... ENDTEXT Command
Outputs lines of text, the results of expressions and functions, and the contents of variables.
TEXT [TO VarName [ADDITIVE] [TEXTMERGE] [NOSHOW]] TextLines ENDTEXT
- Specifies the text sent to the current output device. TextLines can consist of text, memory variables, array elements, expressions, functions or any combination of these.
Expressions, functions, memory variables, and array elements specified with TextLines are evaluated only if SET TEXTMERGE is ON and must be enclosed in the delimiters specified by SET TEXTMERGE DELIMITERS. If SET TEXTMERGE is OFF, the expressions, functions, memory variables, and array elements are output as literals along with their delimiters.
For example, today's date is output if SET TEXTMERGE is ON and a text line contains <<DATE( )>>. If SET TEXTMERGE is OFF, <<DATE( )>> is output literally.
If you place comments within TEXT and ENDTEXT or after \ or \\, the comments are also output.
- TO VarName
- This is memory variable name to use for passing the contents of the TEXTENDTEXT control statement. This variable can already exist. If the variable has not yet been declared, it will automatically be created as a Private variable. The new TO setting will work regardless of SET TEXTMERGE. If SET TEXTMERGE is set to a file and the TO statement is included, then both file and variable get output.
- This keyword determines if the contents of the TO variable are overwritten or added to existing contents. Note: if the content of the TO variable is not a string, Visual FoxPro always overwrites.
- The TEXTMERGE keyword enables evaluation of contents surrounded by delimiters without having to do a SET TEXTMERGE ON.
- The NOSHOW keyword disables display to screen of textmerge.
This structured programming command sends text lines placed between TEXT and ENDTEXT to the main Visual FoxPro window, a user-defined window, a printer, a text file, or a low-level file.
TEXT sends the text lines to the current output device. This continues until an ENDTEXT statement is encountered or until the program ends.
By default, output from TEXT ... ENDTEXT is sent to the main Visual FoxPro window or the active window. Issue SET CONSOLE OFF to suppress output to the main Visual FoxPro window or the active window. Use SET PRINTER to send output to a printer or a text file.
Output from TEXT ... ENDTEXT can also be sent to a low-level file created or opened with FCREATE( ) or FOPEN( ). If a file handle returned by FCREATE( ) or FOPEN( ) is stored to the _TEXT system variable, output is directed to the corresponding low-level file.
The following example demonstrates how you can use SET TEXTMERGE, SET TEXTMERGE DELIMITERS, TEXT ... ENDTEXT, and the _TEXT system variable.
A low-level file called Names.txt is created and its file handle is stored in the _TEXT system variable. The program is exited if Names.txt can't be created. The
customer table is opened, and the names of the first 10 contacts are output to Names.txt. Text and the results of functions are output to the text file.
The text file containing the names is then opened with MODIFY FILE.
CLEAR CLOSE DATABASES SET TALK OFF SET TEXTMERGE ON && Enable embedding of expressions and functions STORE FCREATE('names.txt') TO _TEXT && Create low-level file IF _TEXT = -1 && Can't create low-level file then exit program WAIT WINDOW 'Cannot create an output file; press a key to exit' CANCEL ENDIF CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table TEXT CONTACT NAMES <<DATE( )>> <<TIME( )>> ENDTEXT WAIT WINDOW 'Press a key to generate the first ten names' SCAN NEXT 10 TEXT <<contact>> ENDTEXT ENDSCAN CLOSE ALL && Close the text file and the table MODIFY FILE names.txt ERASE names.txt