Citación del post de
Armando
|
❞
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:
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:
ESPECIAL-NAMES
ENVIRONMENT-NAME IS ENV1
ENVIRONMENT-VALUE IS ENV2
DECIMAL-POINT IS COMMA.
.
.
.
working-storage.
01 WDBTAB pic x(220).
PROCEDURE DIVISION
MOVE SPACES TO WDBTAB
DISPLAY "ARCLIENTE" UPON ENV1 *> Variável "ARCLIENTE"
IF EG-MODSQL = "S"
STRING WACCSQL1 DELIMITED BY " "
"FT2Modelo,EXFH,INF(xeuro.inf)" DELIMITED BY SIZE INTO WDBTAB
ELSE
MOVE "FT2Modelo.dat" TO WDBTAB
END-IF
DISPLAY WDBTAB UPON ENV2
*-----
Para ler o conteúdo de qualquer variável de ambiente:
Código COBOL:
DISPLAY "ARCLIENTE" UPON ENV1.
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)