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
[PowerCOBOL] PowerCobol & Class & sqlite fastpho Cocina PowerCOBOL 3 10 de agosto de 2023 12:19
[MySQL] Sentencias PREPARE y EXECUTE Josber Bases de datos 9 4 de mayo de 2021 17:26
[Duda] Comandos sentencia INVOKE jotica PowerCOBOL v3 (V3L10, Win32) 1 2 de marzo de 2021 18:20
[Duda] ¿Qué se hace en CLASS-OBJECT y FACTORY? Kuk Object-Oriented COBOL 14 22 de febrero de 2017 15:49

Respuesta

  #1
Antiguo 28 de enero de 2016, 23:23
Lascu
Forero Junior
Última Actividad 30.06.2026 22:24
Posts Posts: 33
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18
Sonrisa Sentencia CLASS en SPECIAL-NAMES
0 Inactivo Inactivo

Hola
En una rutina en la que quiero revisar que el usuario no ingrese caracteres no válidos para el nombre de un correo electrónico, quiero declarar en la sección SPECIAL-NAMES la siguiente sentencia

Código COBOL:
  1. CLASS wk-caracter-valido IS  '@', '_', '.',  'a' THRU 'i', 'j' THRU 'r', 's' THRU 'z', '0' THRU '9'.

Según leí en el manual esta es la forma correcta de hacerlo (NETCOBLanguageReference capítulo 4, página 127).
El problema me surge que al compilarlo no me reconoce la palabra CLASS y me tira el siguiente error " SPECIAL-NAMES(2) : JMN1123I-S An invalid word 'CLASS' was found".
¿ Se puede declarar esto de otra manera ?

Lascu
Lascu is offline   Responder Con Cita
  #2
Antiguo 29 de enero de 2016, 09:39
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Lascu, creo que te estás equivocando... Además, lo que tú quieres se puede hacer con un nivel 88 y un pequeño bucle:

Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID.    TESTMAIL.
  3.        DATA DIVISION.
  4.        WORKING-STORAGE SECTION.
  5.        01  WS-MAIL.
  6.            05  WS-MAIL-CHAR           PIC X OCCURS 50 TIMES.
  7.                88  WS-CHAR-VAL-SI           VALUES '@' '_' '.'
  8.                'a' THRU 'i', 'j' THRU 'r', 's' THRU 'z', '0' THRU '9'.
  9.  
  10.        01  IDX-1                      PIC 99.
  11.        01  SW-ERROR                   PIC X.
  12.            88  SW-ERROR-SI                 VALUE 'S'.
  13.            88  SW-ERROR-NO                 VALUE 'N'.
  14.  
  15.        PROCEDURE DIVISION.
  16.  
  17.            MOVE "[email protected]"  TO WS-MAIL *>EJEMPLO
  18.            MOVE FUNCTION LOWER-CASE(WS-MAIL) TO WS-MAIL
  19.  
  20.            SET SW-ERROR-NO TO TRUE
  21.  
  22.            MOVE 1 TO IDX-1
  23.  
  24.            PERFORM UNTIL WS-MAIL-CHAR(IDX-1) = SPACES OR IDX-1 > 50
  25.                IF  NOT WS-CHAR-VAL-SI(IDX-1)
  26.                    SET SW-ERROR-SI TO TRUE
  27.  
  28.                    EXIT PERFORM
  29.                END-IF
  30.  
  31.                ADD 1 TO IDX-1
  32.            END-PERFORM
  33.  
  34.            IF  SW-ERROR-SI
  35.                DISPLAY "Error de e-mail: " WS-MAIL-CHAR(IDX-1)
  36.  
  37.            ELSE
  38.                DISPLAY "¡E-mail correcto!"
  39.            END-IF
  40.  
  41.            GOBACK.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk 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:07.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.