MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problemas en descarga de archivo plano (foro/showthread.php?t=21740)

felix_cid 17/10/08 14:37:40

Problemas en descarga de archivo plano
 
Amigos:

Tengo un programa sencillo que me genera un archivo plano en UNIX. Esto lo hago recorriendo una tabla interna con n registros y a través de la sentencia TRANSFER lo voy escribiendo en el archivo de salida.

Hasta aqui todo bien, pero mi problema se presenta porque al final del archivo plano, tengo un campo con 249 caracteres (el registro en total tiene 337), el cual lo debo entregar en blanco, pero al revisar el archivo, no me genera este espacio en blanco, sino que concatena el siguiente registro inmediatamente. Probé agregando al transfer la sentencia LENGTH 337, pero la verdad es que obtuve el mismo resultado, ¿alguien me podría ayudar con ideas para solucionar este problema?.

Muchas gracias.

DavidXD_XD 17/10/08 14:53:06

Hola ... yo hice algo similar pero con tabuladores, lo hice asi:

DATA: l_espace TYPE x VALUE '20'.

Y comienzo a concatenar el espacio en blanco que quieres con l_espace, es en hexadecimal y el 20 es el codigo de espacio simple, aver pruebalo y me comentas como te fue, un saludo

J_Delcanto 01/06/11 17:36:39

Me surgio el mismo problema....el punto es que me llena con "CEROS" los espacios en blanco.

Por otro lado, me descargar el fichero plano pero no me considera los espacios en blanco al final del ultimo caracter, al momento de guardar.

De antemano muchas gracias.

daniel1050 01/06/11 18:02:01

Esto si mal no recuerdo se solucionaba poniendo en el caracter 249, el valor el espacio pero ' ' (ese caracter espacio hacelo con la combinacion de teclas ALT + 255 ).

Yo una vez hice algo parecido.

la estructura del archivo era algo asi:
archivo:
campo1 (3c)
campo2 (3c)
campo3 (3c)
filler (239) - todos blancos
espacioBlanco (1) ---- este va a tener el espacio que obtenes con alt+255.

J_Delcanto 01/06/11 18:45:51

Daniel,

Tu sabes si existe algun metodo para que cuando guarde el archivo en txt me conserve los espacios en blanco al final del ultimo caracter?

Ejemplo:

AAAAAAA AAAAAAAAA AAAAAAAAAAAA x

Donde x es la ultima posicion en blanco.

daniel1050 01/06/11 19:03:28



Mira, te pongo un ejemplo de algo parecido, podes hacer un write.



DATA: NAME(5) VALUE ’Harry’,

DEST(18) VALUE ’Robert James Smith’,

OFF TYPE I,

LEN TYPE I.

OFF = 7.

LEN = 8.

WRITE (NAME) TO DEST+OFF(LEN).

La variable DEST ahora contiene el valor "Robert Harry ith".




Otro ejemplo:

Si tengo una variable v_archivo = '1234567890' y quiero una 'a' en la posicion 12 de esa variable:

WRITE 'a' TO v_archivo+12(1).


Esto me tendria que hacer : v_archivo = '1234567890 a'

Aclaraciones: el 12 es el offset, o sea a partir de que posicion quiero que me escriba y el 1, es que cuantos digitos queremos insertar, en nuestro caso a tiene 1 solo entonces va un "1".

J_Delcanto 01/06/11 19:10:49

Daniel,

Me explico, tengo un fichero plano de largo 610 y por ejemplo la primera linea ocupa hasta 500 caracteres. Ahora el punto es que cuando lo descargo a txt, cuando lo abro me aparece hasta los 500 caracteres....y no me cuenta los 110 faltantes en blanco.

No se si es problema de codigo o si es otra cosa al momento de descargar.

No es problema de cuando muestro por pantalla, sino que cuando descargo el documento.

daniel1050 01/06/11 19:14:12



fijate si le escribis un espacio a la variable donde esta todo el string del archivo, o sea algo asi:

WRITE ' ' TO v_archivo+609(1).

Acordate de donde te puse ' ' hacerlo al espacio ese con la combinacion de teclas ALT+255 o no te lo va a tomar.

Al grabar ese caracter en esa posicion te va a conservar los lugares, yo tuve un problema parecido.

J_Delcanto 01/06/11 19:18:44



eso de ALT+255 debo ponerlo donde dice ' ' ? No comprendo bien

daniel1050 01/06/11 19:20:09


si correcto, fijate si apretas eso te genera un espacio.

o sea apreta la tecla ALT y manteniendo apretada los nros 255 del teclado numerico...


Es como cuando apretas alt+160 en el word para que te ponga la a acentuada.

Aunque no parezca, no es lo mismo poner entre medio de las comillas un espacio creado por la barra esparciadora que por esa combinacion de teclas.


Husos Horarios son GMT. La hora en este momento es 17:54:31.

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