Comprobar si una cadena contiene letras

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • lucia_12
    Member
    • jun
    • 45

    #1

    Comprobar si una cadena contiene letras

    Hola a tod@s!!

    Quería saber si alguien sabe la forma de comprobar si una cadena no contiene únicamente números, es decir, si contiene sólo letras, o letras y números o letras y símbolos...


    Muchas gracias!!!
  • VLozano
    Senior Member
    • nov
    • 124

    #2
    Código:
    IF cadena CN '0123456789'.
      crashbumbang
    ENDIF.
    O algo por el estilo
    "Porque algunos sabemos que somos parte del problema"
    - Pequeña guía para escribir mensajes en foros técnicos -

    Comentario

    • Edd_401
      Senior Member
      • may
      • 119

      #3
      Es Copy - Paste - - - Pero Es Lo Que Necesitas

      1. CO (contiene solo):

      c1 contiene solo caracteres desde el string c2.
      Si c1 o c2 es del tipo C, la comparación toma en cuenta el largo total de la variable, incluyendo los espacios al final.
      Si c1 es del tipo STRING y vacío, el resultado de la comparación es siempre positiva.
      Si c2 es del tipo STRING y vacío, el resultado de la comparación es siempre negativa, a menos que c1 sea tambien un string vacío.
      Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el offset del primer caracter en c1 que no está incluido en c2.
      Si el resultado de la comparación es positivo, la variable SY-FDPOS contiene el largo de c1.
      La comparación es sensible a minúsculas y mayúsculas.

      Ejemplos:

      'ABCDE' CO 'XYZ' es falso; SY-FDPOS = 0.
      'ABCDE' CO 'AB' es falso; SY-FDPOS = 2.
      'ABCDE' CO 'ABCDE' es verdadero; SY-FDPOS = 5.

      2. CN (no solo contiene):
      "c1 CN c2" es equivalente a "NOT ( c1 CO c2 )".
      c1 no solo contiene caracteres de c2.
      Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter en c1 que no esta en c2.
      Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.

      3. CA (contiene cualquiera):
      c1 contiene a lo menos un caracter de c2.
      Si c1 o c2 es del tipo C, la comparación toma en cuenta el largo total de la variable, incluyendo los espacios al final.
      Si c1 o c2 es del tipo STRING y vacío, el resultado de la comparación es siempre negativa.
      Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter en c1 que esta en c2.
      Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.
      La comparación es sensible a minúsculas y mayúsculas.

      Ejemplos:

      'ABCDE' CA 'CY' es verdadero; SY-FDPOS = 2.
      'ABCDE' CA 'XY' es falso; SY-FDPOS = 5.

      4. NA (no contiene cualquiera):
      "c1 NA c2" es equivalente a "NOT ( c1 CA c2 )".
      c1 no contiene caracteres de c2.

      5. CS (contiene String):
      c1 contiene a c2.
      Espacios sobrantes en c1 y c2 son ignorados si se trata de variables del tipo C.
      Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter de c2 en c1.
      Si el resultado de la comparación es negativo, la variable SY-FDPOS contiene largo de c1.
      La comparación no es sensible a minúsculas y mayúsculas.

      Ejemplos:

      'ABCDE' CS 'CD' es verdadero; SY-FDPOS = 2.
      'ABCDE' CS 'XY' es falso; SY-FDPOS = 5.
      'ABAAA' CS 'AB ' es verdadero; SY-FDPOS = 0.
      ' ABC' CS ' AB' es verdadero; SY-FDPOS = 1.
      'ABC DEF' CS ' ' es verdadero; but: SY-FDPOS = 0,
      debido a que ' ' es interpretado como como espacio sobrante y se ignora.

      6. NS (no contiene string):
      "c1 NS c2" es equivalente a "NOT ( c1 CS c2 )".
      c1 no contiene a c2.

      7. CP (contiene patrón):
      El string completo c1 coincide con el patrón c2 (c1 "coincide con" c2).
      El patrón c2 puede contener caracteres comunes y asteíscos '*' para cualquier string y '+' para cualquier caracter.
      Si el resultado de la comparación es positiva, la variable SY-FDPOS contiene el offset del primer caracter de c2 en c1. El asterísco '*' al principio del patrón c2 es ignorado cuando se determina el valor de SY-FDPOS.
      Si el resultado de la comparación es negativa, la variable SY-FDPOS contiene el largo de c1.

      Ejemplos:

      'ABCDE' CP '*CD*' es verdadero; SY-FDPOS = 2.
      'ABCDE' CP '*CD' es falso; SY-FDPOS = 5.
      'ABCDE' CP '++CD+' es verdadero; SY-FDPOS = 0.
      'ABCDE' CP '+CD*' es falso; SY-FDPOS = 5.
      'ABCDE' CP '*B*D*' es verdadero; SY-FDPOS = 1.

      El caracter '#' tiene un significado especial. Sirve como símbolo de escape e indica que cada caracter siguiente debería ser comparado "exactamente".
      Esto permite buscar por:

      - caracteres en mayúsculas o minúsculas
      ejemplo: c1 CP '*#A#b*'
      - buscar caracteres '*', '+' como tales
      ejemplo: c1 CP '*#**' o c1 CP '*#+*'
      - el símbolo de escape
      ejemplo: c1 CP '*##*'
      - espacios al final de c1
      ejemplo: c1 CP '*# '


      Ejemplos:

      'ABC' CP 'ABC ' es verdadero,
      'ABC ' CP 'ABC' es verdadero,

      pero

      'ABC' CP 'ABC+' es falso,
      'ABC' CP 'ABC# ' es falso,


      La comparación no es sensible a minúsculas y mayúsculas.

      8. NP (no contiene patrón):
      "c1 NP c2" es equivalente a "NOT ( c1 CP c2 )" c1 no coincide con c2.
      Sapero prodigio ! ! !

      Comentario

      • novato-sap
        Junior Member
        • dic
        • 21

        #4
        comparar variable no tenga caracteres numericos ni signos ortográficos

        Buenos días,

        Lo que quiero es comparar es que una varible no contenga ni caracteres numéricos ni signos ortograficos. He utilizado los operadores relacionales de tal manera que se ha comparado IF variable (operador_relacional) sy-abcde y no se ha obtenido lo esperado.

        De tal manera si la variable es ABCFGUI el resultado debería ser ok y si es ABFK1K el resultado debería ser ko.

        Gracias.

        Comentario

        • ppchico
          Senior Member
          • oct
          • 144

          #5
          Originalmente publicado por novato-sap
          Buenos días,

          Lo que quiero es comparar es que una varible no contenga ni caracteres numéricos ni signos ortograficos. He utilizado los operadores relacionales de tal manera que se ha comparado IF variable (operador_relacional) sy-abcde y no se ha obtenido lo esperado.

          De tal manera si la variable es ABCFGUI el resultado debería ser ok y si es ABFK1K el resultado debería ser ko.

          Gracias.
          te lo he puesto en este hilo:


          En tu caso, deberías hacerlo al reves... que no contenga caracteris (NOT) ni números! Si tienes alguna duda me comentas!

          Un Saludo!
          Editado por última vez por ppchico; 16/12/2010, 10:52:32.

          Comentario

          • jeanficetola
            Member
            • sep
            • 64

            #6
            Funcion Estadar para chequear si una cadena tiene letras

            call function 'CHECK_AND_CONVERT_NUMERICS'
            exporting
            dmzei = '.'
            dtype = 'DEC'
            efeld = gwa_art-ean11
            imp_decimals = '0'
            importing
            error = l_error.
            Jean Carlos Hernandez Ficetola

            Consultor ABAP
            INFOGESA S.A , Venezuela

            Comentario

            Trabajando...