Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   COBOL - General (https://www.cobolforo.es/forumdisplay.php?f=44)
-   -   [Compilador] Longitud de variables al compilar (https://www.cobolforo.es/showthread.php?t=1597)

Begoguay 18 de enero de 2023 10:26

Longitud de variables al compilar
 
Buenos dias.

Tengo la siguiente duda.
En RMCOBOL, puedo ver la longitud de las variables que utilizo en un programa compilando de la siguiente forma:

RMCOBOL Programa.CBL S L A

De esta forma, me genera un archivo Programa.LST, donde yo puedo ver la longitud de todas las variables que utilizo en Programa.CBL

Mi pregunta es: ¿Existe esta posibilidad de ver la longitud de las variables, al compilar en POWERCOBOL?

Un saludo.

Josber 18 de enero de 2023 11:58

Cita:

Citación del post de Begoguay (Mensaje 8648)

Mi pregunta es: ¿Existe esta posibilidad de ver la longitud de las variables, al compilar en POWERCOBOL?

Un saludo.

Hola @Begoguay, cuanto tiempo sin verte por estos lares,

Código COBOL:
  1. COMPUTE I = FUNCTION LENGTH (variable).

En I, se te almacena el tamaño de la variable.

Si lo que quieres es saber cuánto tiene ocupado de su tamaño total una variable

Código COBOL:
  1. COMPUTE I = FUNCTION STORED-CHAR-LENGTH (variable).

Un saludo.-

Kuk 18 de enero de 2023 12:32

@Begoguay, hola, es verdad que llevamos tiempo sin verte. A ver si nos visitas de vez en cuando ;)

Lo que tu quieres normalmente se genera a la hora de compilar. Y es efectivamente también posible en Fujitsu COBOL, añadiendo al directiva de compilación LIST. Puedes ver más detalles aquí: A.1.22 LIST compile option

RM como no es compilado sino interpretado, te lo hace cuando quieras, pero todo código compilado genera el fichero "listing" a la hora de compilarlo y no después, porque es información estática.

P.D. Tienes que ponerle LIST en el mismo sitio done pones ALPHAL(WORD) por ejemplo, separado por coma.

Begoguay 19 de enero de 2023 12:38

No consigo que me haga nada.
¿Se supone que me genera un fichero con esos datos? ¿Y si es así donde lo genera?
Yo pongo lo de LIST en las propiedades del SCRIPT del formulario, ¿es ahi?
¿El programa lo tengo que compilar desde fuera o desde el 'editor' de POWERCOBOL?

Kuk 19 de enero de 2023 13:59

@Begoguay, le acabo de echar un ojo y parece ser que para que haya salida hay poner otra directiva adicional que es PRINT: A.1.32 PRINT compile option
Es lo que dice el comentario (note) de la directiva LIST:

Cita:

Citación del post de Fujitsu
If the PRINT compile option is not specified, no object program list is output regardless of the specification of this option.

Es decir PRINT,LIST

Te genera el fichero [nombre_form].LST en MainDebug.

Lo que pasa es que el contenido no es el que te esperas. Así que he investigado un poco y la directiva que tú necesitas no es LIST sino que es MAP.


Conclusión: lo que tienes que poner es esto: debe ser PRINT,MAP y así sí que salen las variables, su longitud etc. El resultado es así:

Código:

NetCOBOL V10.1.0  MAINFORM                        THU JAN 19 13:55:58 2023  0001                                       


      LINE    ADDR        OFFSET REC-OFFSET LVL NAME                              LENGTH ATTRIBUTE  BASE      DIM


**MAINFORM**
        28  GWA+00000110                    0 01 IDX-V                                  4 COMP-5    BGW.000000   
        29  GWA+00000118                    0 01 GLB-VENTANAS                          48 GROUP-V    BGW.000000   
        30  GWA+00000118                    0 05 GLB-VENTANA                            24 GROUP-F    BGW.000000  1
        31  GWA+00000118                    0 10 GLB-HWND                                4 COMP-5    BGW.000000  1
        32  GWA+0000011C                    4 10 GLB-NOMBRE                            20 ALPHANUM  BGW.000000  1
        35  GWA+00000148                    0 01 DESTINO                                46 GROUP-F    BGW.000000   
        36  GWA+00000148                    0 03 FILLER                                  6 ALPHANUM  BGW.000000   
        37  GWA+0000014E                    6 03 LLEGAR                                40 ALPHANUM  BGW.000000   
        39  GWA+00000178                    0 01 ORIGEN                                46 GROUP-F    BGW.000000   
        40  GWA+00000178                    0 03 FILLER                                  6 ALPHANUM  BGW.000000   
        41  GWA+0000017E                    6 03 SALIR                                  40 ALPHANUM  BGW.000000   
        43  GWA+000001A8                    0 01 TOOLTIP                                10 ALPHANUM  BGW.000000   
        47 [EBP+FFFFFF48]+00000000          0 01 POW-FORM                              44 GROUP-F    BVA.000001   
        48 [EBP+FFFFFF48]+00000000          0 02 POW-SELF                                4 COMP-5    BVA.000001   
        49 [EBP+FFFFFF48]+00000004          4 02 POW-SUPER                              4 ALPHANUM  BVA.000001   
        50 [EBP+FFFFFF48]+00000008          8 02 POW-THIS                                4 COMP-5    BVA.000001



La franja horaria es GMT +2. Ahora son las 11:20.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.