Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   RM/COBOL (https://www.cobolforo.es/forumdisplay.php?f=16)
-   -   [Sintaxis] Ejemplo guardar lista de archivos (https://www.cobolforo.es/showthread.php?t=1492)

luisbago 12 de mayo de 2022 09:23

Ejemplo guardar lista de archivos
 
Alguien tiene un código para poner el listado de archivos que contiene un directorio, en un archivo de texto?

Por ejemplo el directorio "New Folder" contiene 20 archivos idx y se guarde los nombre de los archivos
en el archivos "Listado.txt"

en rmcobol 7, gracias

Joseg 12 de mayo de 2022 11:31

CommandLine

Código:

DIR \New Folder\*.IDX >> Listado.txt

JCantero 12 de mayo de 2022 18:22

Cita:

Citación del post de Joseg (Mensaje 7831)
CommandLine

Código:

DIR \New Folder\*.IDX >> Listado.txt


Yo lo hago así: ( con /B y en este caso el directorio a listar entre comillas para directorios que contengasn espacios)

Código Bash:
  1. DIR   /B   "\New Folder\*.IDX" >> Listado.txt

Ya que, así no hay que ir buscando los ficheros en el detalle, cada línea, un fichero.

luisbago 12 de mayo de 2022 20:37

Código COBOL:
  1. 1 WK-OPERACION.
  2.             02 pic x(19) value 'DIR *.IDX /B /l >> '.
  3.             02 arch-op pic x(8).
  4.  
  5.  01 temp value 'TEMP'.
  6.            02 HH   pic x(4).
  7.            02 MI   pic 9(2).
  8.            02 SS   pic 9(2).
  9.  
  10. ACCEPT WK-HORA FROM TIME.
  11.              MOVE WK-MI TO MI.
  12.              MOVE WK-SS TO SS.
  13.             MOVE TEMP TO TEMP1.
  14.            MOVE 'TMP1' TO TEMP1(1:4).
  15.              MOVE TEMP1 TO ARCH-OP.
  16.  
  17. call 'system' USING wk-operacion.

no, no funciona, no logra crear el archivo con tmp con minutos y segundos en su nombre, que es algo trivial realmente.

No se crea el archvio, en rmcbol 5 si funciona el codigo, que paso?

JCantero 13 de mayo de 2022 00:25

Tienes que poner el path completo, si no, no encontrara nada.

DIR /B "\New Folder\*.IDX" >> Listado.txt

En qué directorio estás buscando ?

---------- Post añadido el 13 de mayo de 2022 a las 00:29 ----------

Además, tienes que poner el path completo del fichero destino. Solo Dios sabe dónde lo creará.

DIR /B "\New Folder\*.IDX" >> c:\Dios\Listado.txt

---------- Post añadido el 13 de mayo de 2022 a las 00:40 ----------

Si lo quieres localizar , por ejemplo, c:\tmp\listado.txt

DIR /B "\New Folder\*.IDX" > c:\tmp\Listado.txt

Y sólo >, para que cree el fichero, si pones >>, añade a lo que contenia

---------- Post añadido el 13 de mayo de 2022 a las 00:51 ----------

Indica lo que no entiendas !!

luisbago 13 de mayo de 2022 21:15

Una disculpa no supe explicarme :perdon:

la aplicación funciona en este directorio "C:\usr\dat", dentro del directorio están los *.cob y los *.idx, entonces la instrucción donde se ejecuta el comando se guarda aquí
Código COBOL:
  1.  02 pic x(19) value 'DIR *.IDX /B /l >> '.
, no se si se ejecuta, pero el archivo tmp1 o temp1 no se crea (por cierto, por cosas que desconozco del programador original, crea un archivo, luego hace que se copie en otro, bueno no importa).

antes funcionada con rmcobol 5.26.00, ahora con el rmcobol 7.00.02 no funciona el código, supongo el actualizar el runtime algo ya no funciona, pero realmente no se que cambiar para que funcione.

arriba en mi segunda respuesta esta parte del codigo que junta el dir con el nombre del archivo deseado, quedando asi "DIR *.IDX /B /L > TEMP1"

JCantero 14 de mayo de 2022 11:49

Prueba esto y luego lo pesonalizas para resolver tu problema:

Código COBOL:
  1.  
  2.  
  3. call 'system' USING 'c:\windows\system32\cmd.exe /c  dir /b c:\usr\dat > c:\usr\prueba.txt'
  4.  

luisbago 18 de mayo de 2022 15:58

Cita:

Citación del post de JCantero (Mensaje 7844)
Prueba esto y luego lo pesonalizas para resolver tu problema:

Código COBOL:
  1.  
  2.  
  3. call 'system' USING 'c:\windows\system32\cmd.exe /c  dir /b c:\usr\dat > c:\usr\prueba.txt'
  4.  

Funciono, por fin, muchas gracias lo deje asi
Código COBOL:
  1.  value 'c:\windows\system32\cmd.exe /c  dir *.idx /l /b >'


La franja horaria es GMT +2. Ahora son las 13:54.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.