Como sustituir un Caracter en un editbox por otra cadena de caracteres

1,144 views
Skip to first unread message

Mario Torrealba

unread,
Sep 16, 2010, 4:51:10 PM9/16/10
to mundovis...@googlegroups.com
Saludos Foxeros,

Tengo  un campo edit box  en donde contiene un texto  determinado

el texto por ejemplo tiene

Señor frase primera frase primera
frase segunda con la frase primera
etc cualquier texto cualquier texto

si  en ese  texto coloco  un caracter bandera ejemplo * asterisco entonces lo tendria asi  donde lo necesito

Señor * frase primera frase primera
frase segunda con la frase primera
etc cualquier texto cualquier texto

lo que quiero es como  recorrer el editbox con el contenido y revisar donde encuentre el * y reemplazarlo  por  el  contenido  de un campo ejemplo thisform.mnombre.value

y al recorrer el edit box cuando encuentre el * lo sustituye  con el value de mnombre, si  el  campo de mnombre es "Mario Torrealba"

al recorrer el edit box sustituye y quedaria  el texto  de la siguiente manera

Señor Mario Torrealba frase primera frase primera
frase segunda con la frase primera
etc cualquier texto cualquier texto

se puede hacer eso, hay alguna funcion propia de fox que me ayude ? o tengo que recorrerlo a pie todo ?

gracias de antemano

Mario Torrealba

GOOD_FOX

unread,
Sep 16, 2010, 7:22:24 PM9/16/10
to Mundo Visual FoxPro

Que Tal Mario

revisa este Ejemplo, podría servirte, hace tiempo me surgio algo
parecido y realice esto en la version 6.0, la verdad no investigue si
en la version 6.0 existía una funcion parecida, pero lo que si se que
en la version 9.0 ya existe, no recuerdo cual es jejej pero revisate
esto....


Saludos... !!


*------------------------------------ Empieza código
----------------------------------------------------------------*

use clientes In 0 Exclusive
Sele Clientes

?SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',2,'')
&&--> Resultado: EJEMPLO DE CADENA
?SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',3,'')
&&--> Resultado: CON SUBCADENAS
?SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',4,'')
&&--> Resultado: (nada)
?SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',0,'')
&&--> Resultado: ESTE ES UN EJEMPLO DE CADENA CON SUBCADENAS
?SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',
0,Clientes.Nombre) &&--> Resultado: ESTE ES UN EJEMPLO DE CADENA CON
SUBCADENAS


*----------------------------------------- SUBEXTRACT
--------------------------------------
*COMENTARIOS: función que Regresa una subcadena contenida en una
cadena separada por símbolos
*jcahp Good_Fox
*PARAMETROS:
* mcCadena (Caracter), cadena con símbolos donde se busca la
subcadena
* mcSímbolo (Caracter), símbolos para buscar la subcadena, ejemplo '
',*,+,/... etc.
* mnVeces (Numérico), el número de la subcadena que se suiere
extraer, si el número sobre
* pasa al número de subcadenas contenidas en la cadena, de
vuelve vacio
* Si mnVeces=0 devuelve la cadena sin simbolos
*REGRESA:
* la SubCadena buscada si tiene exito, sino devuelve un caracter de
vacio.
*EJEMPLO:
* SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',2) --
> Resultado: EJEMPLO DE CADENA
* SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',3) --
> Resultado: CON SUBCADENAS
* SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',4) --
> Resultado: (nada)
* SubExtract('ESTE ES UN*EJEMPLO DE CADENA*CON SUBCADENAS','*',0) --
> Resultado: ESTE ES UN EJEMPLO DE CADENA CON SUBCADENAS

*----------------------------------------- SUBEXTRACT
--------------------------------------
Function SubExtract
Para mcCadena,mcSimbolo,mnVeces,mcCampo
lcCadena = ''
lnLetIni=1
lnPosSim=0
If mnVeces!=0 Then
*Se busca una subcadena
For i=1 To mnVeces
lnPosSim = At(mcSimbolo,mcCadena,i)
If lnPosSim!=0 Then
*Sigue siendo diferente de cero por lo que encontro otro símbolo
lcCadena = Substr(mcCadena,lnLetIni,lnPosSim-lnLetIni)
lnLetIni = lnPosSim+1
Else
If lnLetIni<=Len(mcCadena) Then
lcCadena = Substr(mcCadena,lnLetIni,Len(mcCadena))
lnLetIni = Len(mcCadena)+1
Else
lcCadena = ' '
Exit
EndIf
EndIf
EndFor
Else
*Se muestra toda la cadena sin símbolos
For i=1 To Len(mcCadena)
If SubStr(mcCadena,i,i)!=mcSimbolo Then
lcCadena = lcCadena+SubStr(mcCadena,i,1)
Else
*lcCadena = lcCadena+' '
lcCadena = lcCadena+IIF(Empty(mcCampo),' ',' '+Allt(mcCampo)+' ')
EndIf
EndFor
EndIf
Return lcCadena

Alcides Zuasnábar Ureta

unread,
Sep 16, 2010, 9:32:27 PM9/16/10
to mundovis...@googlegroups.com
Hola Mario
 
Lo que se me ocurre y tu ves como perfeccionarlo.
 
CLEAR
lctext1='Mario Torrealba'
lctext2='ayudarlo'
xedit='Señor * no le gusta que usen su hilo, a no ser que sea para * jejeje'
xedit=
STRTRAN(xedit,'*',lctext1,1,1)
xedit=
STRTRAN(xedit,'*',lctext2,1,1)
? xedit
 
Saludos,


Alcides Zuasnábar Ureta

Advanced Solutions Perú

Director de Proyectos

  351-5173 -   990720437

msn: alcideszuasnabar@hotmail.com

 

 

 

 




 

Date: Thu, 16 Sep 2010 16:21:10 -0430
Subject: [Mundo Visual FoxPro] Como sustituir un Caracter en un editbox por otra cadena de caracteres
From: mario.t...@gmail.com
To: mundovis...@googlegroups.com
--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

Miguel

unread,
Sep 17, 2010, 5:21:05 AM9/17/10
to Mundo Visual FoxPro
Efectivamente, STRTRAN es la función correcta, si no se pone ...,1,1)
te sustiye todos los asteriscos por el varlor indicado

Saludos,

On 17 sep, 03:32, Alcides Zuasnábar Ureta
<alcideszuasna...@hotmail.com> wrote:
> Hola Mario
>
> Lo que se me ocurre y tu ves como perfeccionarlo.
>
> CLEAR
>
> lctext1='Mario Torrealba'
>
> lctext2='ayudarlo'
>
> xedit='Señor * no le gusta que usen su hilo, a no ser que sea para * jejeje'
>
> xedit=STRTRAN(xedit,'*',lctext1,1,1)
>
> xedit=STRTRAN(xedit,'*',lctext2,1,1)
>
> ? xedit
>
> Saludos,
>
> Alcides Zuasnábar Ureta
> Advanced Solutions Perú
> Director de Proyectos
>   351-5173 -   990720437
> msn: alcideszuasna...@hotmail.com
>
> Date: Thu, 16 Sep 2010 16:21:10 -0430
> Subject: [Mundo Visual FoxPro] Como sustituir un Caracter en un editbox por otra cadena de caracteres
> From: mario.torrea...@gmail.com

Daniel Manuel López

unread,
Sep 17, 2010, 11:16:20 AM9/17/10
to Zorros verdaeros
Como dicen los compañeros,
Sólo usa el STRTRAN()
 
StrTran(TuCampoMemo,"*","Mario Torrealba")
 

Date: Thu, 16 Sep 2010 16:21:10 -0430
Subject: [Mundo Visual FoxPro] Como sustituir un Caracter en un editbox por otra cadena de caracteres

Mario Torrealba

unread,
Sep 17, 2010, 4:48:10 PM9/17/10
to mundovis...@googlegroups.com
A todos de Verdad que dios me los bendiga,

montruosa la solucion, por eso sigo y seguire con VFP

solo esto coloque al final del click del boton Generar Informe

* cambio * por el nombre de la persona
thisform.frame.page7.edit1.Value=STRTRAN(thisform.frame.page7.edit1.Value,"*", ALLTRIM(client1.cnombre))

y cambio todo lo que habia en el editbox que tuviese Asterisco por el campo nombre de cursor

De verdad no salgo a la calle sin uds bajo el brazo !!! que haria yo sin el foro ??  nadaaa

1 millon de gracias

good fox ya sabes que hacer con la rutina q hicistes

MT


2010/9/17 Daniel Manuel López <dman...@hotmail.com>
Reply all
Reply to author
Forward
0 new messages