Focal Point
[CLOSED] How to create an end of file marker when exporting cvs files from webfocus?

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/8507050695

December 29, 2010, 05:42 AM
pcgirl677
[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.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs: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



Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!