Sorry, missed options in example:
dcl-pr OpenFile pointer extproc('_C_IFS_fopen') ;
*n value options(*string *trim); //File name
*n value options(*string *trim); //File mode
end-pr ;
-------- Original Message --------
Subject : Using _C_IFS_fopen and _C_IFS_fgets to read files in the ifs
From : Alexei Baranov alexei.baranov@xxxxxxxxxx
To : Alan Shore via MIDRANGE-L <midrange-l@xxxxxxxxxxxxxxxxxx>
Cc :
Date : Sunday, July 25, 2021 22:51
Hi Alan,
two points worth paying attention to:
* the length of PathFile2read - is it sufficient to accommodate PriorPathfile and x'00' character?
* it might be more convenient to use options(*string *trim) in name/mode parameters definition, in this case you don't have to add x'00' to the end of the field:
dcl-pr OpenFile pointer extproc('_C_IFS_fopen') ;
*n value ; //File name
*n value ; //File mode
end-pr ;
...
OpenMode='r';
PathFile2read='yourfile.txt';
FilePtr = OpenFile(PathFile2read:OpenMode);
I think this should work
Regards,
Alexei
-------- Original Message --------
Subject : Using _C_IFS_fopen and _C_IFS_fgets to read files in the ifs
From : Alan Shore via MIDRANGE-L midrange-l@xxxxxxxxxxxxxxxxxx
To : "midrange-l@xxxxxxxxxxxxxxxxxx" <midrange-l@xxxxxxxxxxxxxxxxxx>
Cc : Alan Shore <ashore@xxxxxxxx>
Date : Sunday, July 25, 2021 21:39
Hi everyone
I just re-read my e-mail and realized that it is misleading
Using that web site -
A better way to read a file in the IFS with RPG @ RPGPGM.COM<
https://www.rpgpgm.com/2016/03/a-better-way-to-read-file-in-ifs-with.html>
The problem is with the the OpenFile
Here is the pertinent code
dcl-pr OpenFile pointer extproc('_C_IFS_fopen') ;
*n pointer value ; //File name
*n pointer value ; //File mode
end-pr ;
dcl-pr ReadFile pointer extproc('_C_IFS_fgets') ;
*n pointer value ; //Retrieved data
*n int(10) value ; //Data size
*n pointer value ; //Misc pointer
end-pr ;
dcl-pr CloseFile extproc('_C_IFS_fclose') ;
*n pointer value ; //Misc pointer
end-pr ;
PathFile2read = %trim(PriorPathfile) + x'00' ;
OpenMode = 'r' + x'00' ;
FilePtr = OpenFile(%addr(PathFile2read):%addr(OpenMode)) ;
if (FilePtr = *null) ;
CannotreadPriorBAI2();
return;
endif ;
Alan Shore
Solutions Architect
IT Supply Chain Execution
[cid:image001.png@01D78162.E7C4C710]
60 Orville Drive
Bohemia, NY 11716
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
E-mail : ASHORE@xxxxxxxxxxxxxxxxxxxx
'If you're going through hell, keep going.'
Winston Churchill
From: Alan Shore
Sent: Sunday, July 25, 2021 1:26 PM
To: midrange-l@xxxxxxxxxxxxxxxxxx
Subject: Using _C_IFS_fopen and _C_IFS_fgets to read files in the ifs
Hi everyone
We are on V7r3
We have a number of files in the ifs that I am attempting to use _C_IFS_fopen, _C_IFS_fgets and _C_IFS_fclose to read
Please see the following web page
A better way to read a file in the IFS with RPG @ RPGPGM.COM<
https://www.rpgpgm.com/2016/03/a-better-way-to-read-file-in-ifs-with.html>
I have a situation where one of the files is not read by these utilities
Does anyone know how I can determine why?
I am able to go into that file using wrklnk and edtf - so I believe its NOT an authority situation
However, the program is not able to read the rest of the files AFTER that one
I can sign off, sign back in, change the program to start AFTER that one particular file, and the rest of the files can be read
So I am assuming that something needs to be initialized after such a read, but In am unable to find anything as to what that could possibly be
Does anyone have any knowledge of such a situation and how to rectify it?
As always - all answers gratefully accepted
Alan Shore
Solutions Architect
IT Supply Chain Execution
[cid:image003.png@01D78162.E7C4C710]
60 Orville Drive
Bohemia, NY 11716
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
E-mail : ASHORE@xxxxxxxxxxxxxxxxxxxx<mailto:ASHORE@xxxxxxxxxxxxxxxxxxxx>
'If you're going through hell, keep going.'
Winston Churchill
As an Amazon Associate we earn from qualifying purchases.