Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

FOXPRO 2.6 URGENTE reemplazar caracteres (NU¥EZ)

Estas en el tema de FOXPRO 2.6 URGENTE reemplazar caracteres (NU¥EZ) en el foro de Bases de Datos General en Foros del Web. Hola estimados amigos, tengo un problema: Estoy trabajando con un programa hecho con el FOXPRO 2.6 para DOS. Ahora bien, la tabla que genera es ...
  #1 (permalink)  
Antiguo 11/10/2003, 15:47
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 8 meses
Puntos: 3
Pregunta FOXPRO 2.6 URGENTE reemplazar caracteres (NU¥EZ)

Hola estimados amigos, tengo un problema:

Estoy trabajando con un programa hecho con el FOXPRO 2.6 para DOS. Ahora bien, la tabla que genera es *.DBF, cuando se observa en el progrma las " Ñ " estan bien, el problema se da cuando quiero trabajar esos datos con VisualFox 6.0 ó con el foxpro 2.6 para Windows, pue a las " Ñ " lo cambia por un caracter diferente " ¥ ".

Por ejemplo tengo varios registros que contien la Ñ (NUÑEZ) y en el visualfox se ve como "NU¥EZ"

Mi pregunta es como puedo reemplazar este caracter (¥) por (Ñ) en una tabla *.DBF que contiene mas de 1000 registros?

La tabla tiene la estrucura:
Apellido paterno ---- Apellido materno --- Nombres

por lo cual el cambio tiene que darse en cualquiera de los campos.

Gracias a todos
  #2 (permalink)  
Antiguo 12/10/2003, 00:30
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Eso lo podes hacer con la funcion STRTRAN, buscala en la ayuda de la versión fox para wintendo que tenes y luego realizas un replace recorriendo toda la tabla.

USE NOMBRES
DO WHILE .NOT. EOF()
REPLACE apell_pat WITH STRTRAN(apell_pat, "¥", "Ñ")
REPLACE apell_mat WITH STRTRAN(apell_mat, "¥", "Ñ")
REPLACE nombre WITH STRTRAN(nombre, "¥", "Ñ")
SKIP
ENDDO

Creo también que el Visual Fox o Foxpro para wintendo tienen la opción de importar de una tabla de DOS para que haga la interpretación de los caracteres ASCII.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 12/10/2003, 12:27
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 8 meses
Puntos: 3
Como encontrar campos vacios?

Muchas gracias BrujoNic, es precisamente lo que necesitaba.

No trabajo demasiado con VisualFox, pero por ahora estoy en ello.

Bueno tengo otra consulta:
En la misma tabla, Como encontrar campos vacios?

Gracias nuevamente

=============
http://www.proyectopais.org
  #4 (permalink)  
Antiguo 12/10/2003, 22:18
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
¿Encontrar campos vacios???
No te comprendo bien a que te referis con eso, por favor pone un ejemplo o vamos a ver si es esto... podes hacer el mismo recorrido pero preguntando lo siguiente con las funciones ALLTRIM() y LEN():

USE NOMBRES
DO WHILE .NOT. EOF()

IF LEN(ALLTRIM(apell_pat)) = 0
@1,0 SAY "CAMPO VACIO"
ELSE
@1,0 SAY "CAMPO TIENE CONTENIDO"
ENDIF

SKIP
ENDDO

Lógicamente como son campos alfanuméricos al quitarle todos los blancos a la izquierda y derecha (ALLTRIM) y luego preguntando por el largo (LEN) te vas a dar cuenta si tiene algo ya que si tiene un solo caracter, el LEN va a reflejar un 1.

Espero que sea eso lo que estas preguntando.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL

Última edición por BrujoNic; 12/10/2003 a las 22:20
  #5 (permalink)  
Antiguo 13/10/2003, 07:27
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 3 meses
Puntos: 1
para tu primera consulta tambien podrias buscar ayuda (en la documentacion o presionando F1) con la funcion stuff() que sirve para el mismo cometido y para algunas otras funciones específicas adicionales, en este caso me parece bien usada strtran().
para tu segunda consulta, tambien puedes usar la funcion empty(campo) que te devuelve .T. si es que el campo está vacío o compuesto sólo por espacios en blanco; para ambos casos recuerda que el ascii 255 a simple vista es un espacio en blanco pero en la realidad no lo es...
PD: la ventaja de consultar con el help del foxpro es que te muestra los temas relacionados; es decir, otras posibles formas de solución....
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #6 (permalink)  
Antiguo 13/10/2003, 11:18
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
para lo de vacios
Select * from tutabla where len(alltrim(tucampo))=0
o si no
select * from tutabla where empty(tucampo)

si quieres mostrar en el brow solo los con campo vacio
set filter to empty(tucampo) in tutabla

Saludos.

revisa www.portalfox.com
__________________
Jorge Mota
Blog
Gubiz estafa
  #7 (permalink)  
Antiguo 14/10/2003, 10:23
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 8 meses
Puntos: 3
De acuerdo

Muchas gracias a todos por su ayuda.

_________________________________
http://www.proyectopais.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:36.