The FILEPUT command writes data that is specified in a text expression to a file that is opened in WRITE or APPEND mode.
A fileunit number assigned to a file that is opened for writing (WRITE or APPEND mode) by a previous call to the FILEOPEN function or by the OUTFILE command.
A text expression that contains data for output.
Note:
When you specify NTEXT data to be written to a file, FILEPUT translates the text to the character set of the file. When that character set cannot represent all of the NTEXT characters, then data is lost.Transfers a record read from infileunit by the FILENEXT function directly to the file specified by fileunit. When you specify this clause, you can write selected records to an output file while continuing to process data with the FILEVIEW command.
Note:
When you use the keyword phrase FROM infileunit, you cannot mix binary and non-binary files. When either file was opened with the BINARY keyword, the other must be binary too.(Default) Specifies that a newline character is appended to the output string and written to the file.
Specifies that no newline character is added to the text written to the file.
Example 9-124 Writing Data to a File Using FILEPUT
Following is an example of a program that writes a file of sales data for three months. The name of the file is the first argument. The following program excerpt opens the file, writes the lines of data to the file, then closes it. This program takes four arguments on the statement line after the program name: the file name of the input data and three month names.
DEFINE salesdata PROGRAM LD Write Sales Data To File. Args: File Name, 3 Month Names PROGRAM VARIABLE fil.unit INTEGER VARIABLE fil.text TEXT fil.unit = FILEOPEN(ARG(1) WRITE) LIMIT month TO &ARG(2) &ARG(3) &ARG(4) LIMIT product TO ALL LIMIT district TO ALL COMMAS = NO DECIMALS = 0 FOR district DO FOR product DO fil.text = product FOR month fil.text = JOINCHARS(fil.text ' ' - CONVERT(sales TEXT)) FILEPUT fil.unit fil.text DOEND FILEPUT fil.unit '' DOEND FILECLOSE fil.unit END
Example 9-125 Preprocessing Data
The following example uses a data file with the 1996 sales figures for the products sold in each district. Only the records that begin with "A" are important right now, but you want to save the rest of the records in a separate file for later processing. The following program excerpt uses FILENEXT to retrieve each record and FILEVIEW to find out what kind of record it is. A second FILEVIEW statement processes the record when it is type "A." When not, a FILEPUT statement writes it to the output file.
DEFINE rectype VARIABLE ID LD One Letter Code Identifying The Record Type VARIABLE in.unit INTEGER VARIABLE out.unit INTEGER . . . in.unit = FILEOPEN( GET(TEXT PROMPT 'Input Filename: ') READ) out.unit = FILEOPEN( GET(TEXT PROMPT 'Output Filename: ') - WRITE) WHILE FILENEXT(in.unit) DO FILEVIEW in.unit WIDTH 1 rectype IF rectype EQ 'A' THEN FILEVIEW COLUMN 2 WIDTH 8 district SPACE 2 - WIDTH 8 product ACROSS month year Yr96: saleS ELSE FILEPUT out.unit FROM in.unit DOEND FILECLOSE in.unit FILECLOSE out.unit . . . END