[CLOSED] How to create an end of file marker when exporting cvs files from webfocus?
Would greatly appreciate any help or suggestions on how to create an output extract a comma delimited file with an end of file marker? I used both save and hold to output along with format comma, dfix, and set up a variable to delimit the fields after they were written, but still I do not get an end of file marker. The end-of-file (EOF) marker [chr$(26), or CTRL+Z, or also known as ASCII byte value 26] at the end of output is missing.This message has been edited. Last edited by: Kerry,
WebFocus 7.6
December 29, 2010, 03:36 PM
Waz
You should not have to worry about EOF markers.
What is the OS ?
Why do you need to add an EOF marker ?
Waz...
Prod:
WebFOCUS 7.6.10/8.1.04
Upgrade:
WebFOCUS 8.2.07
OS:
Linux
Outputs:
HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!
December 30, 2010, 05:48 AM
<JG>
Waz is correct APPLICATIONS do not require an EOF in the file.
That suggests that you are passing the output to a raw programming language such as C. That may require an EOF.
Adding an EOF to a WebFOCUS file is possible but requires using a system copy.
Normally you would append something to a file by allocating it with (APPEND and using a -WRITE.
Problem is that when you use -WRITE it always adds CR/LF (windows) or LF (unix)
this means that if you -WRITE file EOF you get HEX 1A0D0A (EOF/CR/LF)
To do what you want you need to write EOF to a file with an LRECL of 1, that prevents the CR/LF being added, then copy the files together
windows example
FILEDEF HOLDA DISK c:\TEMP\HOLDA.CSV
FILEDEF EOF DISK c:\TEMP\EOF.FTM (LRECL 1 RECFM F
-RUN
TABLE FILE CAR
PRINT COUNTRY CAR MODEL DCOST
ON TABLE HOLD AS HOLDA FORMAT COM
END
-RUN
-SET &EOF = HEXBYT(26, 'A1');
-WRITE EOF &EOF
!COPY c:\TEMP\HOLDA.CSV + c:\TEMP\EOF.FTM c:\TEMP\HOLDA_with_EOF.CSV
December 30, 2010, 03:34 PM
Waz
Excelent suggestion with the FILEDEF LRECL
With a minor change, the COPY command can be removed.
FILEDEF HOLDA DISK c:\TEMP\HOLDA.CSV
FILEDEF HOLDEOF DISK c:\TEMP\HOLDA.CSV (APPEND LRECL 1 RECFM F
-RUN
TABLE FILE CAR
PRINT COUNTRY CAR MODEL DCOST
ON TABLE HOLD AS HOLDA FORMAT COM
END
-RUN
-SET &EOF = HEXBYT(26, 'A1');
-WRITE HOLDEOF &EOF