If this was going to be an ongoing requirement I'd probably just write a simple DATA-GEN formatter and let it do the work.

I thought I had written one for an article a while back but can see no sign of it.


Jon Paris
Jon.Paris@xxxxxxxxxxxxxx



On May 27, 2025, at 6:46 AM, Vern Hamberg via RPG400-L <rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:

Hi Bryan

I assume that the data would be concatenated into a single "field" for each record type.

There is now an SQL service to write to IFS files - Roger's idea of different DS' for each type could be used.

Lots of options! What a life we enjoy!

*Regards*

*Vern Hamberg*

IBM Champion 2025 <cid:part1.tSNV0EIi.FlkCWsBV@centurylink.net> CAAC (COMMON Americas Advisory Council) IBM Influencer 2023

On 5/27/2025 12:26 AM, Bryan Dietz wrote:
got it. i thought thru the years that is what i used. it ended up being a chapter from his IFS “book”

other than CPYTOIMPF another option is to use ACS on the IBM i.
from the getting started html :
9.1.17 CLDownload

/PLUGIN=cldownload /system=<system>
[/userid=<userid>]
{/hostfile=<library/filename> | /sql="statement"}
{/clientfile=<path><filename>.<extension> | /display}
[/<options>]

/userid - user id to use when connecting to the target system
/hostfile - Source library and file on the IBM i system for the download
e.g. /hostfile=QIWS/QCUSTCDT
/sql - specify an SQL statement
e.g. /sql="select CUSNUM,LSTNAM,INIT,ZIPCOD from QIWS.QCUSTCDT"
/clientfile - Target file location for the download.
The format of this file will be determined by the specified
extension (for example, .csv .ods .xls .xlsx)
If the file extension is not specified or is of a type
not supported, the data will be formatted as a .csv file
/display - write the output to the terminal
Valid options are:
/colheadings=<1/0> - Include column headings as the first row. When specified, the column names will be the heading.
/usecollabels - Use column labels for the heading.
/adjustcolumns - Adjust column width for .xls and .xlsx files


Bryan


On May 26, 2025, at 9:54 PM, Roger Harman<roger.harman@xxxxxxxxxxx> wrote:

That utility is used to read/parse incoming files - not create new ones.

I've done what the OP is asking a couple of different ways.

1) Concatenate all the data fields with delimiters into one large field and then write the records.

2) Create a data structure with the delimiters included as subfields and use INZ() to set the values. I did this when it was just a quick & dirty and I didn't care about trailing spaces. You can then use RESET to "clear" the DS.

Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power




-----Original Message-----
From: RPG400-L<rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Bryan Dietz
Sent: Monday, May 26, 2025 6:34 PM
To: RPG programming on IBM i<rpg400-l@xxxxxxxxxxxxxxxxxx>
Cc: gio.cot<gio.cot@xxxxxxxxxxx>
Subject: Re: How generate a Multiformat Csv file tab delimeted

You may be able to use Scott’s utility to format the CSV file like you want.

https://www.scottklement.com/csv/


Bryan

On May 24, 2025, at 3:38 PM, gio.cot via RPG400-L<rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:

Hi All

I would need to generate a Multiformat Csv file tab delimeted (with RPG
or CLLE) ..

The CSV file have a record type (Ex. 01 Header 02 Details)

Ex.

Type record (01) customer code (0001 ) customer name (Acme Inc) invoice
number (12345) invoice date (2025/05/20)

Type record (02) Item number (AA01) item description (aaaaaaaa) item qty
(12,02)

Type record (02) Item number (BB01) item description (BBBBBBB) item qty
(33,20)



Any suggestions



Thanks in advance



Gio



--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.

Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.

Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/rpg400-l
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/rpg400-l.

Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.