Ver Mensaje Individual
  #5
Antiguo 11 de marzo de 2021, 11:05
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 02.10.2026 10:24
Posts Posts: 404
Likes enviados Enviados: 130
Likes recibidos Recibidos: 180

Citación del post de Armando Ver Mensaje
❞
Buenas tardes,

Tengo la siguiente consulta:
En una instalación en PowerCobol (7 o superior), necesito que un archivo si no está en la carpeta de ejecución, lo busque en otra carpeta.
Eso en Rmcobol teníamos la posibilidad de usar la variable de ambiente RUNPATH, y con eso encontraba tanto los programas COB como los archivos de la aplicación, que sino estaban en la carpeta de ejecución, los iba a buscar ahí.

set runpath=\SISTEMA1

Entonces en la select solo se ponía el nombre del archivo sin referenciarlo a una carpeta:
Código COBOL:
  1. SELECT ARDECTRL ASSIGN TO RANDOM "A3300000"
y si no estaba en donde se corre, lo encontraba en SISTEMA1

Alguno de Uds. sabe si eso en PowerCobol se puede lograr de alguna manera, sin obviamente tocar la Select para poner una variable y armar el nombre externo del archivo con el Path?

desde ya muchas gracias,
Nota: probé con @CBR_CBRFILE en el COBOL85.CBR y no anduvo,

Armando
Também pode usar variáveis de ambiente em Powercobol. Também uso porque acho mais facil. no meu caso com uso tanto ISAM como tabelas em SQL faço assim:

Código COBOL:
  1.        ESPECIAL-NAMES
  2.            ENVIRONMENT-NAME  IS ENV1
  3.            ENVIRONMENT-VALUE IS ENV2
  4.            DECIMAL-POINT IS COMMA.
  5. .
  6. .
  7. .
  8.  working-storage.
  9.  01 WDBTAB         pic x(220).
  10.  PROCEDURE DIVISION
  11.  
  12.             MOVE SPACES TO WDBTAB        
  13.             DISPLAY "ARCLIENTE" UPON ENV1   *> Variável "ARCLIENTE"
  14.             IF EG-MODSQL = "S"
  15.                 STRING WACCSQL1 DELIMITED BY "   "  
  16.                       "FT2Modelo,EXFH,INF(xeuro.inf)" DELIMITED BY SIZE INTO WDBTAB
  17.             ELSE
  18.                      MOVE "FT2Modelo.dat" TO WDBTAB
  19.            END-IF
  20.             DISPLAY WDBTAB UPON ENV2
  21.      *-----
  22.  

Para ler o conteúdo de qualquer variável de ambiente:
Código COBOL:
  1.            DISPLAY "ARCLIENTE" UPON ENV1.
  2.            ACCEPT  WDBTAB     FROM ENV2.      *> WDBTAB = Conteúdo da variável "ARCLIENTE"

Todas estas defenições apenas estão no módulo principal (MENU.EXE por exemplo)
Joseg is offline   Responder Con Cita