FoxPro/Visual FoxPro - Problema de Principiante

 
Vista:

Problema de Principiante

Publicado por Pablo (2 intervenciones) el 24/11/2006 15:24:34
Por usar versiones de Visual foxpro diferentes, al importar una tabla las eñes me las convierte en otro signo,
¿Como puedo hacer que los signos me los convierta en eñes?
He encontrado código para convertir palabras completas o incrementar campos numéricos, pero para un solo signo no sé si se hará igual.
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:Problema de Principiante

Publicado por sergio (737 intervenciones) el 24/11/2006 16:20:55
si el problema lo tenes en una tabla haces

repla all campo with STUFF(campo, AT('signo',campo), 1, 'ñ')
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:Problema de Principiante

Publicado por Luis Osorio (27 intervenciones) el 24/11/2006 19:57:02
Esta alternativa te eliminara TODOS los signos que quieras y te los cambiara todos a "ñ" o al caracter que quieras. Suponiendo que el problema lo tienes en una tabla llamada MITABLA, entonces tenemos que....

IF !USED('mitabla')
USE mitabla IN 0 SHARED
ENDIF
SELECT mitabla
=CURSORSETPROP('BUFFERING',5)

re=mitabla.campo
chars="#" && Aqui pondras el caracter que aparece en lugar de la "ñ"
veces=OCCURS(chars,re)

re=STRTRAN(re,chars,'ñ',1,veces)

REPLACE mitabla.campo WITH re
=TABLEUPDATE(.T.)

STRTRAN te permite reemplazar un caracter por otro en una variable de texto, iniciando desde la primera vez que aparece (o desde donde quieras empezar), reemplazandolo las veces que quieras.

OCCURS te cuenta cuantas veces aparece un caracter en una .
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:Problema de Principiante

Publicado por Pablo (2 intervenciones) el 25/11/2006 20:54:49
Efectivamente su método cambia el primer dígito del campo elegido por una ñ, independientemente de lo que tenga.
Estoy usando este código:

lcASCII = 'Ð'
UPDATE MiTabla Set location = STRTRAN(location, lcASCII, 'Ñ')

indicandole primeramente cual es MiTabla y eligiendo un campo de la misma.

Mi pregunta es: ¿Podría hacerlo en todos los campos a la vez, o tengo que indicarselo campo a campo?.
Como me ocurre siempre puedo escribir un programa, campo a campo, tabla a tabla copiando y pegando, pero me parece poco apropiado.
Miraré las propiedades de STRTRAN y de OCCURS en la ayuda.
Gracias por tu tiempo.
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

Espero esto sea lo que buscas

Publicado por Luis Osorio (27 intervenciones) el 27/11/2006 21:57:04
Le hice una pequeña modificacion.... esto buscara los campos caracter de tu tabla y les hara el reemplazo.

IF !USED('mitabla')
USE mitabla IN 0 SHARED
ENDIF
SELECT mitabla
=CURSORSETPROP('BUFFERING',5)
FOR campos=1 TO FCOUNT()
cpos=FIELDS(campos)
IF VARTYPE(&cpos)="C"
re=&cpos
chars="#" && Aqui pondras el caracter que aparece en lugar de la "ñ"
veces=OCCURS(chars,re)

re=STRTRAN(re,chars,'ñ',1,veces)

REPLACE &cpos WITH re
ENDIF
ENDFOR
=TABLEUPDATE(.T.)

No se cual sea tu nivel de conocimiento... pero si sabes como, te sugeriria que si tienes que hacerle lo mismo a muchas tablas, de preferencia, esto lo pusieras en un function/procedure donde solo especifiques el nombre de la tabla... te podria quedar algo asi como:

?quitaennes("mitabla")

Eso es lo que yo haria.... Espero te sirvan mis sugerencias.
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