#1
|
|||
|
|||
Secuenciar variable de caracteres.
Buenos dias a todos.
La cosa en principio es muy sencilla y aunque se puede programar supongo que sap tendra algo ya echo. Lo que estoy buscando es una funcion o comando al que si yo le paso una 'A' me devuelva 'B'. si le paso 'B' devuelva 'C'. Etc. La variable sera tipo char de 4 y el rango menos sera 'A' y el mayor 'ZZZZ'. ¿Alguna forma limpia y eficiente de hacerlo sin tener que llenar el codigo de if, case, etc.? gracias, un saludo. |
#2
|
|||
|
|||
Hasta donde yo se las tipicas funciones de CHR (le das un codigo ascii y te devuelve el caracter) y ASC(le das un caracter y te devuelve el codigo ascii) que tienen todos los lenguajes ABAP no las tiene, tendras que hacerlo por medio de field-symbols, por ejemplo
FIELD-SYMBOLS: <ascii> type x. data: lv_caracter type c value 'A'. assign lv_caracter to <ascii> CASTING. *ahora en <ascii> tendrias el codigo hexadecimal de la 'A', es decir un 41 Tb podrias hacerlo al contrario FIELD-SYMBOLS: <caracter> type c. data: lv_ascii type x value '41'. assign lv_ascii to <caracter> CASTING. *ahora en <caracter> tendrias el caracter correspondiente al codigo ascii 65 (41 en hexadecimal) quicir la 'A'. Luego es cuestion de jugar con esto, espero que te ayude EDITO: Se me acaba de ocurrir ahora que tb dispones de la variable de sistema SY-ABCDE que almacena 26 letras del alfabeto en orden asi que tb podrias jugar con esta variable, por ejemplo la 'A' seria el sy-abcde+0(1), la 'B' el sy-abcde+1(1), etc.. Úlima edición por ballan fecha: 20/02/09 a las 12:51:49. |
#3
|
|||
|
|||
Buenos dias.
Muchas gracias por ambas soluciones, al final lo solucione de una forma similar a la que me comentas pero es bueno saber lo del codigo ASCII para futuro. ;-) Data: cadena(26) type c VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. dataff TYPE I. READ TABLE it_ziaviacionc INDEX 1. * Buscamos en la cadena la posición de la letra FIND letra IN cadena MATCH OFFSET off. off = off + 1. * Asignamos la siguiente a nuestro documento letra = cadena+off(1). |
Herramientas | Buscar en Tema |
Desplegado | |
|
|