FoxPro/Visual FoxPro - Ayuda con SUBSTR()

   
Vista:

Ayuda con SUBSTR()

Publicado por Gomez (2 intervenciones) el 27/10/2010 20:56:32
Que tal, Saludos.

Estor trabajando con el una variable que tiene 600 caracteres.Los quiero separar en cuatro partes, es decir en cuatro variables.seria algo asi:

variable (Contiene los 600 caracteres)

tmp1=substr(variable,1,150)
tmp2=substr(variable,151,300)
tmp3=substr(variable,301,450)
tmp4=substr(variable,451,600)

En la primer variable me toma los 150 caracteres, pero a partir del segundo no mantiene el ancho de 150 se corta antes o despues, segun el la palabra que continua, es decir que si

en la variable tmp2 la palabra aeronautica esta entre 295 y 311 por decir algo, me recorta la palabra completa y deja has el valor 295 y en la tercera lineaempieza con aeronautica que es 295 y no la 300 y asi sucesivamente . Saben como resolver esto? digo si se puede. saludos,

Numero de caracteres empieza aqui termina en 311 y la quita
12345............................................294,295(aeronautica) y corta toda la palabra sin llegara 300
aeronautica............................................450

debiendo ser:

12345............................................294,295aeron
autica...............................................................450
451...................................................................600

La idea es que quede alineados por renglones de 150 caracteres.
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:Ayuda con SUBSTR()

Publicado por victor perez (278 intervenciones) el 27/10/2010 21:31:45
Hola,

Hice tambien la prueba en mi computador y me pasa lo mismo.

Inclusive use una frase pequeña y la corte en pedazos.

El ultimo pedazo ( de tres) siempre me queda mal.

Ejemplo

A="DIOS ES NUESTRO AMPARO Y NUESTRA FORTALEZA"
B= SUBSTR(A,1,10)
C= SUBSTR(A,11,20)
D= SUBSTR(A,21,100)

? B Y OBTENGO "DIOS ES NU"
? C Y OBTENGO "ESTRO AMPARO Y NUEST"
? D Y ME DICE "RO Y NUESTRA FORTALEZA"

ES RARISIMO, NO IMPORTA EL NUMERO QUE LE COLOQUE A SUBSTR PARA LA VARIABLE "D" SIEMPRE EL RESULTADO ME DA IGUAL.

SI PONGO

D= substr(a,21,30)

LA RESPUESTA SIGUE SIENDO LA MISMA.

Si alguien nos ayuda... le agradecemos...

Victor,
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:Ayuda con SUBSTR()

Publicado por victor perez (278 intervenciones) el 27/10/2010 21:49:10
Ya encontre la falla en es nuestros casos y creo que en el tuyo.

variable (Contiene los 600 caracteres)

tmp1=substr(variable,1,150)
tmp2=substr(variable,151,300)
tmp3=substr(variable,301,450)
tmp4=substr(variable,451,600)

Tu variable contiene solo 600 caracteres. y le dices que del caracter 1 te extraiga 150 mas para el tmp1

Para el temp2 le dices que del 151 te extraiga los siguientes 300 ( o sea que ya quedas qui posicionada en la posicion no. 450)

Para el tmp 2 le dices que extraiga del 301 unos 450 caracteres mas lo que hace que quedes posicionada en el caracter no. 750 .

Alli esta el error,...luego el tmp4 le dices que de la posicion No.451 que ya estaba incluida en el tmp 3, te extraiga los siguientes 600 caracteres, que no existen...

Creo que lo que quieres es extraer asi

tmp1=substr(variable,1,150)
tmp2=substr(variable,151,150)
tmp3=substr(variable,301,150)
tmp4=substr(variable,451,150)

Asi te funcionara...estoy casi seguro.

Victor,
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:Ayuda con SUBSTR()

Publicado por Gomez (2 intervenciones) el 01/11/2010 16:56:17
Psssssssssssst.

Mi respeto y felicitaciones Víctor, verdaeramente si funciona ya lo probé y si queda alineado tal como lo quiero, ya tenia varios días volviendome loco este asunto y no encontraba solución . y ademas que a los campos le agregué la monoespeciada Courier New 8 y quedo de lujo. Sinceramente muchas gracias.Saludos desde México.
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:Ayuda con SUBSTR()

Publicado por victor perez (278 intervenciones) el 01/11/2010 19:47:54
Hola,

A la orden. Como le comentaba a otro forista, tengo solo 2 años con VFP y fui ayudado por un amigo de Peru.

Ahora, estoy solo, jeje...

He tratado siempre de aprender la base para poder aplicar los comandos y sentencias.

Este se Substr() fue uno que estudie igual que Right() LEFT() PADR() PADL() y haciendo practicas entendi el asunto.

Creo que hay uno que hace lo que tu quieres, pero no estoy seguro, es decir, partir la cadena desde X a Y posicion....pero no recuerdo si es asi o si es para otro lenguage.

Victor,
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