FoxPro/Visual FoxPro - SUBSTR()

 
Vista:

SUBSTR()

Publicado por LETCHEV (3 intervenciones) el 20/10/2002 15:26:11
Estimados colegas,

Ud. conozces otro camino, más corto, para search/replace una substr()?

Esto es el modesto ejemplo que escrebí,

suffix='ing'
infinitive_form='e '

suffix2='ains'
canonical_form='ain '

suffix3='ions'
canonical_form='ion '

go top

DO WHILE .NOT. EOF()
locate rest for wordlist suffix$wordlist
replace wordlist with strtran(wordlist,suffix,infinitive_form)
continue
enddo

go top

DO WHILE .NOT. EOF()
locate rest for wordlist suffix2$wordlist
replace wordlist with strtran(wordlist,suffix2,canonical_form)
continue
enddo

go top

DO WHILE .NOT. EOF()
locate rest for wordlist suffix3$wordlist
replace wordlist with strtran(wordlist,suffix3,canonical_form)
continue
enddo

y así por adelante...

A la espera de su contestación,

Gracias y saludos,

Edmond LeTchev
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:SUBSTR()

Publicado por Lisandro (65 intervenciones) el 21/10/2002 01:20:48
Hola, te sugiero lo siguiente:
replace all worlist with strtran(wordlist,suffix,infinitive_form)
replace all worlist with strtran(wordlist,suffix2,canonical_form)
...
etc.
Si lo quieres hacer de la otra forma, utiliza SCAN FOR ... ENDSCAN en lugar de DO WHILE, ya que este es muy lento.
Suerte
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:SUBSTR()

Publicado por Lisandro (65 intervenciones) el 21/10/2002 01:22:59
Hola, te sugiero lo siguiente:
replace all worlist with strtran(wordlist,suffix,infinitive_form)
replace all worlist with strtran(wordlist,suffix2,canonical_form)
...
etc.
Si lo quieres hacer de la otra forma, utiliza SCAN FOR ... ENDSCAN en lugar de DO WHILE, ya que este es muy lento.
Suerte
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:SUBSTR()

Publicado por LeTchev (3 intervenciones) el 21/10/2002 15:02:27
Gracias Lisandro,

Yo quiero mucho bien a Argentina, una tierra que me proporcionó momentos inolvidables en mi vida, esp. en Buenos Aires.

Por favor, tu ejemplo es muy simple, como yo gustaría de ver.

Para saber que suffix? siempre es la parte final de la palabra,
es posible utilizarmos la seguiente función ?

FUNCTION ends(s)
LOCAL l, o, i
l = len(s)
o = k-l+1
if (o < 1) && was 0
return .F.
endif
for i = 0 to l
if b[o+i] != substr(s,i,1))
return .F.
endif
endfor
this.j = k-l
return .T.
ENDFUNC

ASÍ:

replace all worlist with strtran(wordlist,Ends(suffix),Ends(infinitive_form))

o ASÍ:

suffix=ENDS('ing')
infinitive_form=ENDS('e')

replace all worlist with strtran(wordlist,suffix,infinitive_form)

Gracias otra vez,

Saludos desde Brasil, el campeón de los ´árbitros´

LeTchev
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