Jaime:

el procedimiento que debes utilizar es read

D read            PR            10I 0 ExtProc('read')
D  handle                       10i 0 value          
D  buffer                         *   value          
D  bytes                        10U 0 value          

Para añadir lineas a un fichero stream las flags de la funcion open
deben incluir O_APPEND en vez de O_CREAT

D O_CREAT         C                   8
D O_APPEND        C                   256       

Hay un excelente tutorial sobre RPG y el IFS en al web de scott Klement
http://www.scottklement.com/rpg/ifs.html


El día 3/07/06, Jaime Villa Torres <[EMAIL PROTECTED]> escribió:
Estoy utilizando el siguiente código.
 
D FGets           Pr              *    ExtProc( '_C_IFS_fgets' ) 
D                                 *    Value                     
D                               10i 0  Value                     
D                                 *    Value                     
.
..
.
Dow FGets( %Addr(Registro) : %Size(Registro) : Archivo_E) <> *NULL;
.
.
.
y efectivamente en Registro trae los datos, pero requiero leer registro a registro y no todo el archivo, si observo por WRKLNK el archivo, efectivamente esta registro a registro, pero al recuperarlo viene todo, y la variable Registro tiene una longitud de 100, pero no todos los registros tienen esta longitud, y cuando esto sucede viene una porción del siguiente registro o todo.
 
Un dato, inicialmente cuando se escribe el archivo, cada registro se termina con la siguiente variable.
D EndRec         C                   CONST(X'0d25')                                         CRLF
 
Otra pregunta, cuando ya se tiene un archivo en un directorio, es posible adicionarle registros??  lo intento realizar abriendo el archivo y escribiendo, pero esta segunda escritura me borra la existente.
 
Cualquier idea es bien venida, esto es demasiado complicado para realizar uno concepto tan sencillo como recuperar una línea de algo.....
 
Gracias.



--
Mi blog sobre as400
http://www.ajut400.com

Responder a