ah� va eso.
----- Original Message -----
From: "Carlos Lara" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, December 19, 2003 8:24 AM
Subject: RE: fichero de longitud de registro variable
Alex,
No tengo ninguna experiencia en archivos IFS, puedes darme alguna
orientaci�n, � donde buscar?
Gracias
-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de
[EMAIL PROTECTED]
Enviado el: jueves, 18 de diciembre de 2003 16:59
Para: [EMAIL PROTECTED]
Asunto: RE: fichero de longitud de registro variable
Hola,
Si los creas como archivo IFS, y indicas tu el salto de linias (CR+LF)
con
la constante X'0D25', que es la traducci�n EBCDIC, en la posici�n que
quieres te funcionar�. Bueno eso si las especificaciones de edifact
demandan un CR+LF como separador de l�nea.
fins aviat...
�lex Corretg�
"Carlos Lara"
<[EMAIL PROTECTED]> Para:
<[EMAIL PROTECTED]>
Enviado por: cc:
[EMAIL PROTECTED] Asunto: RE:
fichero de longitud de registro variable
COMBIOS.ES
18/12/2003 16:19
Por favor, responda a
forum.help400
Lo que quiero realmente es enviar un fichero edifact que creo desde el
AS pero cada segmento tiene una longitud variable y al crearlo con
longitud fija, me deja caracteres en blanco al final que no sabe tratar
el programa receptor.=20
-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de
[EMAIL PROTECTED]
Enviado el: jueves, 18 de diciembre de 2003 15:59
Para: [EMAIL PROTECTED]
Asunto: Re: fichero de longitud de registro variable
Hola,
Por longitud de registro variable, te refieres a un archivo con campos
VARCHAR o a un archivo que viene de PC y es de texto plano?
Bueno, de todas maneras desde RPG si que se pueden gestionar los dos. En
el
primer caso no hay que hacer nada especial en el RPG y se ha de crear la
tabla desde SQL con campos de tipo LONG VARCHAR (no se si desde DDS se
puede hacer, habria que mirar el manual) , y en el segundo caso, pu=E9s
=
en
funci=F3n de como lo quieras subir se har=E1 de una manera o de otra.
fins aviat...
=C0lex Corretg=E9
=20
"Carlos Lara"
<[EMAIL PROTECTED]> Para:
<[EMAIL PROTECTED]>
Enviado por: cc:
[EMAIL PROTECTED] Asunto: fichero de
longitud de registro variable =20
COMBIOS.ES
=20
=20
18/12/2003 12:42
Por favor, responda a
forum.help400
=20
=20
Hola,
Como puede crearse un fichero de longitud de registro variable y
tratarlo
desde RPG=A0 =BF?
Gracias
_____________________________________________________
Forum.HELP400 es un servicio m=E1s de NEWS/400.
=A9 Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env=EDa el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]
De: <[EMAIL PROTECTED]>
Para: <[EMAIL PROTECTED]>
Asunto: Re: Retorno de Carro
Fecha: martes 20 de marzo de 2001 11:21
Hola Manolo,
si dispones de un compilador ILE/RPG te sugiero que grabes el fichero
directamente al IFS, a traves de una descripcion externa y usando las apis
de ficheros. Un ejemplo:
Primero create una DDS, por ejemplo REGOUT con una longitud total de
registro de 288, con campos definidos de tipo numerico y alfa (S y A), y
reserva el ultimo campo para el retorno, por ejemplo RETORNO de 2A.
Compila y crea el fichero
Crea un ILE/RPG parecido a esto:
D REGOUT E DS ExtName(TuFichero)
* --------- Prototipos IFS
Dopen PR 10I 0 EXTPROC('open')
D filename * VALUE
D openflags 10I 0 VALUE
D mode 10U 0 VALUE OPTIONS(*NOPASS)
D codepage 10U 0 VALUE OPTIONS(*NOPASS)
Dwrite PR 10I 0 EXTPROC('write')
D filehandle 10I 0 VALUE
D datatowrite * VALUE
D nbytes 10U 0 VALUE
Dclose PR 10I 0 EXTPROC('close')
D filehandle 10I 0 VALUE
*------------- IFS CONSTANTS
*** File Access Modes for open()
D O_RDONLY S 10I 0 INZ(1)
D O_WRONLY S 10I 0 INZ(2)
D O_RDWR S 10I 0 INZ(4)
*** oflag Values for open()
D O_CREAT S 10I 0 INZ(8)
D O_EXCL S 10I 0 INZ(16)
D O_TRUNC S 10I 0 INZ(64)
*** File Status Flags for open() and fcntl()
D O_NONBLOCK S 10I 0 INZ(128)
D O_APPEND S 10I 0 INZ(256)
*** oflag Share Mode Values for open()
D O_SHARE_NONE S 10I 0 INZ(2000000)
D O_SHARE_RDONLY S 10I 0 INZ(0200000)
D O_SHARE_RDWR S 10I 0 INZ(1000000)
D O_SHARE_WRONLY S 10I 0 INZ(0400000)
*** file permissions
D S_IRUSR S 10I 0 INZ(256)
D S_IWUSR S 10I 0 INZ(128)
D S_IXUSR S 10I 0 INZ(64)
D S_IRWXU S 10I 0 INZ(448)
D S_IRWXU S 10I 0 INZ(448)
D S_IRGRP S 10I 0 INZ(32)
D S_IWGRP S 10I 0 INZ(16)
D S_IXGRP S 10I 0 INZ(8)
D S_IRWXG S 10I 0 INZ(56)
D S_IROTH S 10I 0 INZ(4)
D S_IWOTH S 10I 0 INZ(2)
D S_IXOTH S 10I 0 INZ(1)
D S_IRWXO S 10I 0 INZ(7)
*** misc
D O_TEXTDATA S 10I 0 INZ(16777216)
D O_CODEPAGE S 10I 0 INZ(8388608)
D*** Miscellaneous data declarations
D FileName S 255A INZ('/tmp/ejemplo.txt')
D FileLen S 9B 0
D AsciiCodePage S 10U 0 INZ(819)
D FileDesc S 10I 0
D BytesWrt S 10I 0
D EOR S 2A Inz(X'0D25')
D NullX S 1A Inz(X'00')
C Eval FileDesc = open(%ADDR(FileName)
C : O_CREAT + O_WRONLY + O_TRUNC +
C O_CODEPAGE
C : S_IRWXU + S_IROTH
C : AsciiCodePage)
C Eval ReturnInt = close(FileDesc)
C Eval FileDesc = open(%ADDR(FileName)
C : O_TEXTDATA + O_RDWR)
.
.
.
* Mueve los valores al registro REGOUT
C Eval RETORNO = EOR
.
.
C Eval BytesWrt = write(FileDesc :
C %ADDR(REGOUT): 288 )
C Eval ReturnInt = close(FileDesc)
El codigo esta basado en la utilidad SendMail de News/400.
Un saludo
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]