Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL
Micro Focus COBOL Visual Cobol, NetExpress, ServerExpress, Visual Object COBOL for Windows etc.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
Como saber si un disco es local o de red Gusaiello Sistemas operativos 4 26 de julio de 2022 02:08
Problema al grabar archivos con el compilador Open Jairo Hernán Ramirez Mora GnuCOBOL (OpenCOBOL) 1 28 de marzo de 2021 19:52
[Sintaxis] Númerro de serie del Disco Duro Roger PowerCOBOL (ActiveX, v4 - v11) 3 10 de septiembre de 2015 00:04
[PowerCOBOL] Obtener numero de serie del Disco Duro (HDD) Hrmcobol Cocina PowerCOBOL 0 17 de abril de 2015 15:59

Respuesta
 
Herramientas

  #1
Antiguo 5 de agosto de 2021, 04:23
jmeza
Forero Senior
Última Actividad 23.05.2026 02:04
Posts Posts: 106
Likes enviados Enviados: 26
Likes recibidos Recibidos: 4
Predeterminado Grabar Archivo en Disco
0 Inactivo Inactivo

Hola, me podrían ayudar como se hace para grabar un archivo en disco en una carpeta direccionada desde el programa.

Al definir de esta manera funciona, pero el nombre se graba como tal WS-PREVIRED
sin agregar lo demás AÑO, MES, etc.

Código COBOL:
  1.            SELECT PreviRed ASSIGN DISK "C:\INFORMES\WS-PREVIRED"
  2.                    ORGANIZATION IS LINE SEQUENTIAL
  3.                    FILE STATUS FILE-STATUS.

Lo que necesito es agregar algunos datos como la fecha cuando se genero el archivo
esto funciona pero me deja grabado el archivo donde están todos los programas del sistema
es complicado por que el usuario estaría entrando a la carpeta donde están todos los programs para rescatar el archivo.

Esta rutina la tengo en RMCOBOL85
Código COBOL:
  1.        SELECT PreviRed ASSIGN TO DISK WS-PREVIRED
  2.               ORGANIZATION IS LINE SEQUENTIAL
  3.               ACCESS SEQUENTIAL                  
  4.               FILE STATUS FILE-STATUS.
  5.  
  6.        FD  PreviRed LABEL RECORD OMITTED.
  7.        01  R-PreviRed.
  8.            02 FILLER          PIC X(2600).
  9.  
  10.        WORKING-STORAGE SECTION.
  11.        01  WS-PREVIRED.
  12.            02  WS-NOMARCH    PIC X(17).
  13.            02  WS-NOMARCH-R REDEFINES WS-NOMARCH.
  14.                03 WS-PREV    PIC X(04).
  15.                03 WS-EMP     PIC 9(03).      
  16.                03 WS-ANO     PIC 9(04).
  17.                03 WS-MES     PIC 9(02).
  18.                03 WS-EST     PIC X(04).
  19.  
  20.          PROCEDURE DIVISION.
  21.            MOVE "PREV"        TO WS-PREV
  22.            MOVE REM00-EMPRESA TO WS-EMP
  23.            MOVE REM00-ANO1    TO WS-ANO
  24.            MOVE REM00-MES1    TO WS-MES
  25.            MOVE ".TXT"        TO WS-EST
  26.            MOVE WS-NOMARCH    TO WS-PREVIRED  
  27.            OPEN OUTPUT PreviRed
Saludos
jmeza is offline   Responder Con Cita
  #2
Antiguo 5 de agosto de 2021, 12:04
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 27.09.2026 07:41
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

El problema lo tienes en que debes de poner una variable al describir el fichero en vez de un literal. Y rellenar la variable en tiempo de ejecución con el contenido deseado.

Cambia esto SELECT PreviRed ASSIGN DISK "C:\INFORMES\WS-PREVIRED" por WS-PREVIRED Y rellena el nombre de fichero deseado en esa variable antes de hacer el open.

O prueba esto..........

En vez de poner esto:

Código COBOL:
  1. SELECT PreviRed ASSIGN DISK "C:\INFORMES\WS-PREVIRED"
  2. ORGANIZATION IS LINE SEQUENTIAL
  3. FILE STATUS FILE-STATUS.

Pon esto:

Código COBOL:
  1. SELECT PreviRed ASSIGN DISK WS-PREVIRED
  2. ORGANIZATION IS LINE SEQUENTIAL
  3. FILE STATUS FILE-STATUS.


Y antes de hacer el OPEN, rellena el nombre de fichero. Por ejemplo:

Código COBOL:
  1. WORKING-STORAGE SECTION.
  2. 01 fecha pic x(6).
  3. 01 WS-PREVIRED pic x(80).
  4.  
  5. *
  6. *
  7. *
  8.  
  9. PROCEDURE DIVISION.
  10.  
  11. accept fecha from time.
  12.  
  13. initialize  WS-PREVIRED.
  14.  
  15. string "C:\INFORMES"  delimited by size
  16.             fecha delimited by size into WS-PREVIRED
  17.  
  18.  
  19.  

O rellenar el nombre del fichero con algo parecido a esto:

Código COBOL:
  1. string "C:\INFORMES\fichero-"  delimited by size
  2.             fecha(1:2) '-' fecha (3:2) '-'  fecha (5:2) delimited by size into WS-PREVIRED
JCantero is offline   Responder Con Cita
  #3
Antiguo 9 de agosto de 2021, 02:08
jmeza
Forero Senior
Última Actividad 23.05.2026 02:04
Posts Posts: 106
Likes enviados Enviados: 26
Likes recibidos Recibidos: 4

JCantero, Gracias por tu ayuda
Esta es el Código Cobol que me dio resultado
Código COBOL:
  1.            SELECT PreviRed ASSIGN TO DISK WS-PREVIRED
  2.                    ORGANIZATION IS LINE SEQUENTIAL
  3.                    FILE STATUS FILE-STATUS.
  4.  
  5.  
  6.        WORKING-STORAGE SECTION.
  7.        01 WS-PREVIRED    PIC X(80).
  8.        01 NOMARCH.    
  9.            02 WS-NOMARCH PIC X(13).
  10.            02 WS-NOMARCH-R REDEFINES WS-NOMARCH.
  11.               03 WS-EMP  PIC 9(03).
  12.               03 WS-MES  PIC 9(02).
  13.               03 WS-ANO  PIC 9(04).
  14.               03 WS-EST  PIC X(04).
  15.  
  16.  
  17.        PROCEDURE DIVISION.
  18.            INITIALIZE WS-PREVIRED
  19.            MOVE REM00-EMPRESA TO WS-EMP
  20.            MOVE REM00-MES1    TO WS-MES
  21.            MOVE REM00-ANO1    TO WS-ANO
  22.            MOVE ".TXT"        TO WS-EST
  23.  
  24.            string "C:\INFORMES\PREVIRED-" delimited by size
  25.                  WS-NOMARCH(1:3) '-' WS-NOMARCH(4:2) '-'
  26.                  WS-NOMARCH(6:4)   WS-NOMARCH(10:4)
  27.                     delimited by size into WS-PREVIRED.
  28.      
  29.            OPEN OUTPUT PreviRed
jmeza is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:55.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.