Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Busqueda Combobox jmeza Fujitsu COBOL 4 23 de junio de 2024 18:46
[Sintaxis] ODBC - cambiar el "path" de una base de datos Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 9 15 de noviembre de 2022 20:24
[Herramienta] Programa para crear archivos de ayuda HLP/CHM Josber COBOL - General 9 8 de noviembre de 2017 01:58
[Información] Búsqueda en el Foro Kuk Funcionamiento del Foro 0 9 de septiembre de 2017 13:38
[Sintaxis] Cambiar variable de entorno "Path" en ejecución Recato53 PowerCOBOL (ActiveX, v4 - v11) 7 10 de agosto de 2015 14:25

Respuesta

  #1
Antiguo 9 de marzo de 2021, 20:12
Armando
Forero Junior
Última Actividad 27.08.2026 19:00
Posts Posts: 34
Likes enviados Enviados: 5
Likes recibidos Recibidos: 19
Predeterminado Path para búsqueda de archivos
0 Inactivo Inactivo

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
Armando is offline   Responder Con Cita
  #2
Antiguo 9 de marzo de 2021, 22:07
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

@Armando,
Este es mi select
Código COBOL:
  1. SELECT CLIENTE
  2.          ASSIGN TO ARCLIENTE
  3.          ORGANIZATION IS INDEXED
  4.          ACCESS IS DYNAMIC
  5.          RECORD KEY IS CLI-CLAVE-PRIN
  6.          FILE STATUS IS CLI-STAT
  7.          LOCK MODE IS AUTOMATIC.
luego en Edita el archivo COBOL85.CBR que debe estar donde esta tu aplicacion , y dentro pone:
Código COBOL:
  1. [NombredetuPrograma]
  2. ARCLIENTE=c:\sist\archivos\clientes.dnx
fastpho is offline   Responder Con Cita
  #3
Antiguo 10 de marzo de 2021, 20:32
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Una cosa @fastpho,

El archivo COBOL85.CBR, no se puede cambiar de forma dinámica, por lo que el nombre y ruta del archivo, es siempre el mismo, si cambias la ruta de los archivos, ¿cómo lo haces?, es que yo en mi caso, montaba una variable de la WORKING, de tipo GLOBAL EXTERNAL, con la ruta y nombre del archivo, así, si cambias de empresa, en una aplicación que soporte multiempresas, por ejemplo, y las empresas las tienes clasificadas en distintas carpetas, (por ejemplo c:\Programa\Empresa1\Clientes.dat o C:\Programa\Empresa2\Clientes.dat), con abrir y cerrar el archivo, sobra para que coja la nueva ruta, pero, si lo haces de la otra manera, has de salir del programa completamente y volver a ejecutarlo, ¿no?

Un salu2.-
Josber is offline   Responder Con Cita
  #4
Antiguo 10 de marzo de 2021, 20:44
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

@Josber, Yo tambien lo trabajo con variables directamente en el working , no trabajo con el COBOL85.CBR
, lo que trate es de darle un ayuda de la pregunta que realizo , me parece lo mejor es trabajar con path desde el working con variables globales como detallaste
Saludos
fastpho is offline   Responder Con Cita
  #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 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

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
  #6
Antiguo 12 de marzo de 2021, 14:44
Armando
Forero Junior
Última Actividad 27.08.2026 19:00
Posts Posts: 34
Likes enviados Enviados: 5
Likes recibidos Recibidos: 19

Buen día,
gracias a todos por las respuestas, algunas las conocía como las de usar:
1) una variable en el sistema en lugar del nombre externo en la select y armarlo en cada programa
2) o dentro del cobol85.cbr definir la variable en la instalación del sistema, y modificar la select igual que en el anterior,

La de las variables de ambiente no las probé,

Lo que ya vi que no hay forma, sin tocar el nombre externo en la select, que actúe como el RUNPATH de RMCOBOL, es decir, teniendo en rm lo siguiente:
Código COBOL:
  1. SELECT CONTROLEX ASSIGN TO RANDOM "A2137020"
y en la ejecución se carge la variable de ambiente
set runpath=\siste2
y el A2137020 no existe en el directorio de ejecución, por defecto lo encuentre en \siste2
Eso implicaba no tocar las select de un montón de programas,

saludos
y de nuevo gracias,
Armando is offline   Responder Con Cita
Respuesta


Herramientas

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 17:19.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.