Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Falta paréntesis en PERFORM ¿?¿? (https://www.cobolforo.es/showthread.php?t=153)

Josber 8 de junio de 2015 17:08

Falta paréntesis en PERFORM ¿?¿?
 
Tengo el siguiente trozo de código:

Código COBOL:
  1.                          
  2.      PERFORM VARYING I FROM 1 BY 1 UNTIL I > 8
  3.                      OR I > A
  4.                      
  5.                         PERFORM VARYING II FROM 1 BY 1
  6.                                 UNTIL II > 81
  7.                                       OR FUNCTION UPPER-CASE (WENTCOD(I:1) = LE(II))
  8.                                          CONTINUE
  9.                         END-PERFORM
  10.              .
  11.              .
  12.              .
  13.              .
  14.      END-PERFORM.
  15.      

Y al compilar, me dá el siguiente error:

JMN2700I-S The right parenthesis of the function is not specified. A right parenthesis is assumed

¿Dónde leshes me falta un paréntesis derecho?, ¿alguien lo ve?, y por cierto lo de "assumed" va a ser que no.

Un saludo

Hrmcobol 8 de junio de 2015 18:00

Hola Amigo

Código COBOL:
  1. FUNCTION UPPER-CASE ->(WENTCOD(I:1) = LE(II))<-  me parece que sobran los paréntesis externos.

Saludos

Josber 8 de junio de 2015 18:36

No Hrm, pero sí que me ha ayudado a encontrar el error, y es que me había ofuscado en ese trozo y no hay como una opinión externa para ver el fallo.

El problema estaba en que FUNCTION UPPER-CASE, lleva entre paréntesis la variable, (o constante), que quieres convertir así que lo que no puede ir dentro es el operador de relación ...


Código COBOL:
  1.      PERFORM VARYING I FROM 1 BY 1 UNTIL I > 8
  2.                      OR I > A
  3.                      
  4.                         PERFORM VARYING II FROM 1 BY 1
  5.                                 UNTIL II > 81
  6.                                       OR FUNCTION UPPER-CASE (WENTCOD (I:1)) = LE (II)
  7.                                          CONTINUE
  8.                         END-PERFORM
  9.                        
  10.              .
  11.              .
  12.              .
  13.      END-PERFORM.

ëste es el correcto.

Me da hasta verguenza el tener estos fallos ... a mis años ... :o :o

Un saludo

Hrmcobol 8 de junio de 2015 21:55

Tranqui Amigooo !!! Somos todos Iguales !!!


Saludos !!

Kuk 9 de junio de 2015 10:15

Josber, no pasa nada compi, pese la imagen de entendido que tengo, a mi me han pasado cosas peores... Cuando las neuronas se te reúnen en la nuca, despues de 74 horas de trabajo, pasan cosas así, que no ves algo muy simple... ;)


La franja horaria es GMT +2. Ahora son las 09:29.

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