MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Comprobar si una cadena contiene letras (foro/showthread.php?t=33967)

lucia_12 30/11/09 09:35:34

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 30/11/09 10:10:37

O algo por el estilo ;)

Edd_401 02/12/09 19:35:00

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.

novato-sap 16/12/10 08:24:11

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.

ppchico 16/12/10 10:50:21


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!

jeanficetola 17/12/10 14:19:42

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.


Husos Horarios son GMT. La hora en este momento es 19:38:03.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web