#1
|
||||
|
||||
SPLIT INTO no funciona...sabeis porque??
He estado provando esto:
LOOP AT it_fichero. SPLIT it_fichero AT '#' INTO: l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7. APPEND it_datos. ENDLOOP. El efecto (no deseado) es que no separa nada y lo mete todo en el campo l_campo1. Las variables de tipo l_campoX estan declaradas así: DATA: l_campo1 TYPE string, l_campo2 TYPE string, l_campo3 TYPE string, l_campo4 TYPE string, l_campo5 TYPE string, l_campo6 TYPE string, l_campo7 TYPE string, l_campo8 TYPE string, l_campo9 TYPE string, l_campo10 TYPE string, l_campo11 TYPE string, l_campo12 TYPE string, l_campo13 TYPE string, l_campo14 TYPE string, l_campo15 TYPE string. Alguna idea??? El contenido de una linea cualquiera es: 20080930#1#1#22#ABONO DEV. No.#2950,22#H Gracias de antemano. |
#2
|
|||
|
|||
He probado el código y me surgen unas dudas.
¿Estás recorriendo una tabla interna y asignando el valor del workaera al split. Sin embargo, el compilador me dice que sólo puedes hacerlo con tipos de datos como string. ¿Por qué no pruebas a pasar el contenido del workarea a un string y se lo pasas al split? Haciéndolo así la separación me la ha hecho correctamente. Un saludo. |
#3
|
||||
|
||||
Jesuuuusss!!!
He probado esto como me has dicho:
LOOP AT it_fichero. l_linia = it_fichero-linia. SPLIT l_linia AT '#' INTO: l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7. ENDLOOP. Pero sigo igual.... |
#4
|
|||
|
|||
Hola,
creo que te sobran los dos puntos detrás del split. Saludos |
#5
|
|||
|
|||
quiría decir detrás del INTO.
|
#6
|
||||
|
||||
Nada de nada...
Por mas que lo intento..acaba metiéndolo todo en el primer campo.
|
#7
|
|||
|
|||
Para hacer funcionar el SPLIT
Antes que nada, si las subcadenas que vas a extraer de la cadena general, tienen una longitud estàndard, tienes que declarar las variables donde vas a "splitear" de tipo C con la longitud que tienen.
En tu caso, la cadena general està compuesta de 7 subcadenas divididas por el sìmbolo "#". La declaraciòn de variables deberìa ser asì: DATA: l_campo1(8) TYPE c, l_campo2 TYPE c, l_campo3 TYPE c, l_campo4(2) TYPE c, l_campo5(14) TYPE c, l_campo6(7) TYPE c, l_campo7 TYPE c. Luego, cuando vayas a hacer el SPLIT (supongamos que la cadena general se llama CAD_GRAL): SPLIT cad_gral AT '#' INTO l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7. Espero te sirva. |
#8
|
||||
|
||||
Comprendo lo que dices...
El problema es que yo he declarado las variables así:
l_campo1 TYPE string, l_campo2 TYPE string, l_campo3 TYPE string, l_campo4 TYPE string, l_campo5 TYPE string, l_campo6 TYPE string, l_campo7 TYPE string, l_campo8 TYPE string, l_campo9 TYPE string, l_campo10 TYPE string, l_campo11 TYPE string, l_campo12 TYPE string, l_campo13 TYPE string, l_campo14 TYPE string, l_campo15 TYPE string. Y lo he hecho asó porque no se cuantos campos me llegaran ni con que longitud. Lo que pretendo hacer es poder importar en SAP cualquier fichero de texto separado por '#' y luego tratarlo a mi gusto. Gracias por la paciencia! |
#9
|
||||
|
||||
Hola, posiblemente ese caracter aparentemente se vea como #, pero puede ser un tabulador.
Aver si estas ideas pueden ayudar, como el primer campo es una letra crea una variable y agarra el septimo caracter en esa variable q creaste, ahora separalos por esa variable SPLIT cad_gral AT l_var INTO l_campo1 l_campo2 l_campo3 l_campo4 l_campo5 l_campo6 l_campo7. Donde l_var es la variable q creaste ... nos cuentas como t fue
__________________
David Carballido Córdova |
#10
|
||||
|
||||
concuerdo con DavidXD_XD revisa este post te puede ayudar con el caracter #
Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|