Esto te puede servir o al menos darte una idea
 
Primero crea este archvio
CRTPF FILE(BIBLIOTECA / LISTF) RCDLEN(80)
 
 
Despues en el cl haz esto
 
PGM                                                           
                                                              
DCLF       FILE(*LIBL/LISTF)                                  
DCL        VAR(&LISTF2) TYPE(*CHAR) LEN(10)                   
DCL        VAR(&LSTPOS) TYPE(*DEC) LEN(3 0)                   
DCL        VAR(&RSLT) TYPE(*DEC) LEN(3 0)                     
                                                              
/* Parametros para usar en QCLSCAN  */                           
                                                              
DCL        VAR(&STRLEN)    TYPE(*DEC)  LEN(3)  VALUE(80)      
DCL        VAR(&STRPOS)    TYPE(*DEC)  LEN(3)  VALUE(1)       
DCL        VAR(&PATTERN)   TYPE(*CHAR) LEN(1)  VALUE('.')     
DCL        VAR(&PATLEN)    TYPE(*DEC)  LEN(3) VALUE(1)        
DCL        VAR(&TRANSLATE) TYPE(*CHAR) LEN(1) VALUE('1')      
DCL        VAR(&TRIM)      TYPE(*CHAR) LEN(1) VALUE('1')      
DCL        VAR(&WILD)      TYPE(*CHAR) LEN(1) VALUE(' ')      
DCL        VAR(&RESULT)    TYPE(*DEC)  LEN(3)                 
 
***Aqui sustituye  bilioteca1 por la biblioteca donde estan los archivos que no 
se sabe su nombre  y en biliboteca2 donde pusiste el archivo LISTF
/* Obtener la lista de archivos */                                              
  
             STRQSH     CMD('LS -L /QSYS.LIB/biblioteca1.LIB/  >  +           
                          /QSYS.LIB/biblioteca2.LIB/LISTF.FILE/LISTF.MBR')    
             MONMSG     MSGID(QSH0005)                                    
                                                                          
/* Lee el archivo que contiene los nombres "desconocidos"   */                  
        
START:                                                                    
             RCVF       RCDFMT(LISTF)                                     
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(END))             

 
****** suponiendo que en tu bilblioteca1  existen solo archivos ejecuta el 
siguiente programa ****
****** si hay otros objetos tendras que agregar unas lineas para checar si el 
nombre de archivo tiene extension .FILE ****
****** e ignorar los otros objetos  ******
                  
/* ejecuta QCLSCAN para encontrar la posicion del punto en los nombres de 
archivos y extraer solo el nombre  (p.e  FACTURAS.FILE)  */                     
                                   
             CALL       PGM(QCLSCAN) PARM(&LISTF &STRLEN &STRPOS +        
                          &PATTERN &PATLEN &TRANSLATE &TRIM &WILD +       
                          &RESULT)                                        
                                                                          
             CHGVAR     VAR(&RSLT) VALUE(&RESULT)                         
             CHGVAR     VAR(&LSTPOS) VALUE(&RSLT-1)                       
             CHGVAR     VAR(&LISTF2) VALUE(%SST(&LISTF 1 &LSTPOS))        
 
 
             CPYF       FROMFILE(&LISTF2) TOFILE(tuarchivo) MBROPT(*ADD) 
 
 
             DLTF       FILE(&LISTF2)  
 
            GOTO       CMDLBL(START) 
 
ENDPGM
 
 
 
 
Saludos
 
 
 
 


From: [email protected]
To: [email protected]
Subject: duda
Date: Mon, 4 Oct 2010 18:01:51 +0200






Alguien sabe como hacer un programa en CL que lea ficheros que no se sabe su 
nombre y los junte uno detrás de otro en otro que si se sabe su nombre y luego 
borre los primeros???
 
Elvira 
 
____________________________________________________ �nete a Recursos AS400, 
nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones 
Help400, S.L.                                       
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a