FoxPro/Visual FoxPro - Problemas con el SUBSTR

   
Vista:

Problemas con el SUBSTR

Publicado por Jorgito (79 intervenciones) el 01/11/2008 12:12:56
Hola, tengo un pequeño problema. Estoy creando un fichero plano con el campo:
Fields C(40)
Tengo el siguiente código
---------------
NOMBRE = 'PEPE'
CIUDAD = 'MALAGA'
SELECT CSR_TABLA
APPEND BLANK
REPLACE FIELDS WITH SUBSTR(NOMBRE, 1, 20) + SUBSTR(CIUDAD, 1, 20)
---------------------------
El resultado es fields = 'PEPEMALAGA'
Debería ser 'PEPE MALAGA '

Hay que tener en cuenta que aunque en este ejemplo le he asignado los valores a mano, estos valores vienen de otros ficheros.
? Que tendría que hacer para conseguir que los valores NOMBRE y CIUDAD mantengan 20 posiciones cada uno

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con el SUBSTR

Publicado por Gabriel (112 intervenciones) el 01/11/2008 15:11:39
Hola, es muty sencillo.

---------------
NOMBRE = 'PEPE'
CIUDAD = 'MALAGA'
SELECT CSR_TABLA
APPEND BLANK

* Si deseas que esten separados por un espacio en blanco:
REPLACE FIELDS WITH ALLTRIM(SUBSTR(NOMBRE, 1, 20) )+' '+ALLTRIM( SUBSTR(CIUDAD, 1, 20))

* Si deseas que cada uno mantengan sus 20 posiciones.
REPLACE FIELDS WITH PADR(ALLTRIM(SUBSTR(NOMBRE, 1, 20)), ' ', 20) + PADR(ALLTRIM(SUBSTR(CIUDAD, 1, 20), ' ', 20)

* Listo.
---------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con el SUBSTR

Publicado por kong (681 intervenciones) el 01/11/2008 19:06:58
yo seria la idea de usar el PADR()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Problemas con el SUBSTR

Publicado por Mauricio (1368 intervenciones) el 02/11/2008 02:29:14
Puedes probar algo como esto, pero partiendo del hecho que el campo origen tiene 40 posiciones de las cuales 20 son del nombre y las siguientes 20 son de la ciudad:
NOMBRE = 'PEPE'
CIUDAD = 'MALAGA'
SELECT CSR_TABLA
APPEND BLANK
REPLACE FIELDS WITH SUBSTR(NOMBRE, 1, 20) +' '+ SUBSTR(CIUDAD, 21, 20)
Espero sea lo que deseas....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con el SUBSTR

Publicado por Ricardo (1 intervención) el 02/11/2008 17:47:45
Hola, una alternativa es usar el PADR,

REPLACE FIELDS WITH PADR(SUBSTR(ALLTRIM(NOMBRE),1, 20),20," ") + PADR(SUBSTR(ALLTRIM(CIUDAD),1,20),20," ")

Otra alternativa es usar las funciones PADR y LEFT, este ultimo reemplaza a SUBSTR

REPLACE FIELDS WITH PADR(LEFT(ALLTRIM(NOMBRE), 20),20," ") + PADR(LEFT(ALLTRIM(CIUDAD),20),20," ")

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar