Iniciar Sesión

Ver la Versión Completa : [Duda] Leer variables en fichero COBOL85.CBR


Joseg
31 de agosto de 2017, 19:40
Tenho varias variáveis de ambiente no cobol85.cbr do tipo

MYFILE1=C:\DATA\FILE001.DAT
MYFILE2=C:\DATA\FILE002.DAT
MYFILE3=C:\DATA\FILE003.DAT
...

é possível no cobol ler o conteúdo do que esta em MYFILE1, MYFILE2... ?

Gracias
Jose

Kuk
1 de septiembre de 2017, 09:10
Joseg, si he entendido bien, quieres leer el contenido de los ficheros MYFILE1, MYFILE2 etc. ¿Qué formato tienen?

Joseg
1 de septiembre de 2017, 10:13
Joseg, si he entendido bien, quieres leer el contenido de los ficheros MYFILE1, MYFILE2 etc. ¿Qué formato tienen?

En un programa / form tener acceso al contenido de las variables que se definen en el archivo cobol85.cbr.

Exemplo:

ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Wmyfile1 PIC X(100).
PROCEDURE DIVISION.

MOVE MYFILE1 TO Wmyfile1

Ver en Wmyfile1: "C:\DATA\FILE001.DAT"

¿Esto es posible?

Yo sé que el cobol85.cbr es un archivo de texto y podría leer en "LINE SEQUENTIAL", pero tenía que estar siempre abriendo un archivo y cerrar siempre que fuera necesario .


Muitas gracias

Kuk
1 de septiembre de 2017, 11:49
Joseg, yo no veo ningún problema.

En la WORKING del Form defines:

01 GLB-FILE001 IS GLOBAL PIC X(256).
01 GLB-FILE002 IS GLOBAL PIC X(256).
01 GLB-FILE003 IS GLOBAL PIC X(256).


En el evento "Opened" lees tu fichero COBOL85.CBR y alimentas los campos GLB-*. Así durante la ejecución del Form siempre tendrás disponibles los Path hacía tus ficheros de configuración.

Si quieres recuperar el contenido de estos ficheros, después de recuperar sus Path, léelos también en el mismo evento "Opened" y guarda su contenido en variables globales, que deberás definir en el mismo sitio (WORKING del Form).

Joseg
1 de septiembre de 2017, 12:59
Joseg, yo no veo ningún problema.

En la WORKING del Form defines:

01 GLB-FILE001 IS GLOBAL PIC X(256).
01 GLB-FILE002 IS GLOBAL PIC X(256).
01 GLB-FILE003 IS GLOBAL PIC X(256).


En el evento "Opened" lees tu fichero COBOL85.CBR y alimentas los campos GLB-*. Así durante la ejecución del Form siempre tendrás disponibles los Path hacía tus ficheros de configuración.

Si quieres recuperar el contenido de estos ficheros, después de recuperar sus Path, léelos también en el mismo evento "Opened" y guarda su contenido en variables globales, que deberás definir en el mismo sitio (WORKING del Form).



Creo que no esta a entender.
El archivo cobol85.cbr es el archivo de configuración del tiempo de ejecución de FujitsuCobol (runtime).
Me gustaría tener acceso al valor de las Variables de este archivo sin tener que hacer:

select xpto assign to "cobol85.cbr"
organization is line sequencial
access sequential
status sss
...
fd xpto.
01 registo pic x(100).
...
procedure division.

open input xpto

read xpto at end ...

move registo to xxxxxxxxx

*>Procesar aquí el registro...


No sé si conoce todas las potencialidades de este archivo, pero podemos entre muchas otras cosas definir el nombre de los archivos de forma dinámica sin tener que compilar la aplicación.
Por ejemplo:

Select myfile assing to infile.

En el archivo cobol85.cbr
Infile = c: \ data \ mydata.dat

por ejemplo.
Quiero sólo en tiempo de ejecución ver lo que está registrado en "infile".


Gracias

Kuk
1 de septiembre de 2017, 13:37
Joseg, entonces ¿lo que quieres es evitar hacer lectura por COBOL?

Si es eso, puedes usar un TextBox mulilínea desmarcando "Visible", y hacerle:


INVOKE CmEdit1 "LoadFile" USING "COBOL85.CBR"


Y luego moverlo a una variable WORKING y hacer un bucle para buscar la(s) línea(s) que necesitas.

Puedes sacarlo a una rutina.

Rapinto
1 de septiembre de 2017, 19:01
Joseg,
Penso que percebi o que pretendes.

Tens que definir em Special Names:

ENVIRONMENT-NAME IS ENV-NAME
ENVIRONMENT-VALUE IS ENV-VALUE.


Em seguida, na Procedure Division fazes:


MOVE "MyFILE1" TO VARNAME.
DISPLAY VARNAME UPON ENV-NAME.
ACCEPT TEXTO FROM ENV-VALUE.
MOVE TEXTO TO "CAPTION" OF CMSTATIC1.


Espero que ajude
Um abraço,
Rui Pinto

Joseg
1 de septiembre de 2017, 19:44
Joseg,
Penso que percebi o que pretendes.

Tens que definir em Special Names:

ENVIRONMENT-NAME IS ENV-NAME
ENVIRONMENT-VALUE IS ENV-VALUE.


Em seguida, na Procedure Division fazes:


MOVE "MyFILE1" TO VARNAME.
DISPLAY VARNAME UPON ENV-NAME.
ACCEPT TEXTO FROM ENV-VALUE.
MOVE TEXTO TO "CAPTION" OF CMSTATIC1.


Espero que ajude
Um abraço,
Rui Pinto

É exactamente isso que estava procurando. Eu já usava essa técnica para ler variaveis de ambiente do sistema operativo, não sabia que para o cobol85.cbr era igual.

Muito obrigado a todos os que tentaram ajudar