If you like, I wrote an article that demonstrates reading a
pipe-delimited IFS file. You can read it here (requires a ProVIP
membership to System iNetwork)
http://systeminetwork.com/article/easy-and-efficient-way-read-text-files-ifs
However, even if you don't have a ProVIP membership, you should (I
think?) be able to grab the sample code from the following link:
http://www.pentontech.com/IBMContent/Documents/article/53867_157_PipeDelim.zip
Pipe-delimited files are very similar to CSV, except that they use a
pipe instead of a comma to delimit the fields. So changing it to use a
comma instead of a pipe should be pretty trivial.
However, sometimes folks use quotes in a CSV file in order to make it
possible to insert commas in the middle of data. For example:
98730,"IT","Klement, Scott C"
in this example, the 3rd field contains my name, and is one field
containing last, first and initial. If you just scanned for a comma,
it'd try to read "Klement as a separate field from Scott C" which would
be wrong...
one of the reasons people use pipe or tab delimiters instead of commas
is to prevent issues like that -- with pipe or tab, you can usually just
search for the straight delimiters. With comma, you usually have to
take quotes into account, because commas are too commonly used as part
of field values.
So you might have to add extra code to deal properly with quotes.
Personally, I'm more inclined to change the app to stop using using CSV
-- which is a horrible format -- and use pipe or tab instead. But if
you really need CSV, you can write code to handle it properly if you
have to :)
Jeff Young wrote:
I have a text file in CSV format that I would need to load to a System i file.
Although I can use iSeries Access file transfer, I would prefer to do this in a program as I do not want all fields.
Some of the fields in the CSV file are NULL, so unless I change my file, I can not use theCPYFRMIMPF command.
I am comfortable using the System API's to create files on the IFS, but have not had to read them.
What things do I need to be aware of when reading a CSV file?
How do I tell when a field ends?
How do I tell when a record ends?
How do I test the data in the PC field for NULL?
As an Amazon Associate we earn from qualifying purchases.