I've been using Scott Klement's excellent tutorial  "Working with the IFS in 
RPG IV"
http://www.scottklement.com/rpg/ifs_ebook/
and after some diversionary problems with AS400/PC Links of my own making 
(which Scott so kindly helped me solve) I've been able to handle a data 
import issue with what is remarkable simple code on MY part. Thank you 
again, Scott.
It's certainly clear that Scott put an enormous amount of time into not only 
the tutorial but also the example code so that my work was easy.
I'm asking this question publicly because I think the issue would be rather 
generic.
The process I use:
* Reads PC file ASCII records which have CRLF in them
* The code shown below reads the records and they arrive translates into 
EBCDIC which is perfect for one of my needs because all the data is text 
data even the numbers which I can coerce into numeric fields in the RPG 
code. The variable "line" contains the whole contents of the record which I 
parse out.
I've another ASCII PC file which I need to read but only some of the data is 
text. Some of the data is binary numbers so translating all of the data 
doesn't get the job done. This file also has CRLF in the records
I copied the code from the first program and then tried to modify the "Open" 
so that it would not translate to EBCDIC using various manifestation of 
O_CODEPAGE. Some would not compile, some would compile but failed during the 
open.
My logic was to read the data as ASCII and translate the Text portions in 
the RPG and leave the binary numbers alone since they would touchier to 
translate back and forth.
I also didn't want to loose the nice IFS feature that it would take care of 
sensing the CRLF and present me with a record buffer.
Though I haven't tried Scott's other examples of reading a non-text stream 
file which (as I interpret the tutorial) would present the data in ASCII but 
require me to figure out and find the records myself.
So two questions
1) Must I use a non text file approach.
2) Does anyone have some sample code for using Scott's "readline" function 
which parses out data into records when the O_CODEPAGE is not used
Steve Moland
=============== snippet of the code
fd = open(%trim(filename):
           O_RDONLY+O_TEXTDATA)
if        fd < 0
callp     die('open(): ' + %str(strerror(errno)))
endif
dow       readline(fd: %addr(line): %size(line))>=0
eval      pchr = *zeros
eval      chr  = line
*******  chr being a structure with various sub fields
As an Amazon Associate we earn from qualifying purchases.