Ecriture dans fichier texte de l'IFS
Posté : jeu. 15 sept. 2016, 10:15:24
Sans message d'erreur, impossible d’écrire dans un fichier texte.
Le fichier est bien créé mais reste vide.
Voici le code que j'utilise.
Cordialement
Le fichier est bien créé mais reste vide.
Voici le code que j'utilise.
Code : Tout sélectionner
**free
ctl-opt option(*srcstmt) dftactgrp(*no);
dcl-pr OpenFile pointer extproc('_C_IFS_fopen');
*n pointer value; // file name
*n pointer value; // file mode
END-PR;
dcl-pr WriteFile pointer extproc('_C_IFS_fputs');
*n pointer value; // string to write
*n pointer value; // open mode
END-PR;
dcl-pr CloseFile extproc('_C_IFS_fclose') ;
*n pointer value ; // Misc pointer
end-pr ;
dcl-s PathFile char(50) ;
dcl-s OpenMode char(100);
dcl-s FilePtr pointer inz;
dcl-s SndData char(25);
dcl-s i packed(3);
PathFile = '/test_write.txt' + x'00';
OpenMode = 'w,o_ccsid=1252' + x'00';
FilePtr = OpenFile(%addr(PathFile):%addr(OpenMode));
if (FilePtr = *null) ;
dsply ('Unable to open file (1)');
return;
endif;
CloseFile(%addr(PathFile));
OpenMode = 'a,o_ccsid=1252' + x'00';
FilePtr = OpenFile(%addr(PathFile):%addr(OpenMode));
if (FilePtr = *null);
dsply ('Unable to open file (2)');
return;
endif;
for i = 1 to 10;
SndData = 'Write No. '+ %char(i)+x'0D'+x'0A';
WriteFile(%addr(SndData):FilePtr);
endfor;
CloseFile(%addr(PathFile));
*inlr=*on;
**end-free