Fecha actual Mié Jun 26, 2024 1:11 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 8 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Feb 09, 2006 10:40 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Hola Bruno:

Te explico lo q me esta pasando... yo no se.. me parece q es ignorancia mia en el asunto pero bueno, ahi va:

Tengo una funcion que realiza sumas y restas de caracteres q leo de un control edit y las compara con una sequencia guardada en un DBF en formato ASCII, hasta aqui todo bien, solo q cuando hago la conversion con C3, este me muestra una sequencia de caracteres diferente de la ASCII q esta en el DBF, si ejecuto esta misma funcion en DOS funciona perfectamente, entonces pienso q el problema esta en q windows usa otro juego de caracteres (claro). Como soluciono esto? Como hago para q los caracteres procesados por el windows sean del tipo ASCII?

Alguien me puede ayudar?

[]s
Pablo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Feb 09, 2006 11:14 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Pablo,

Así es, Windows convierte los caracteres a OEM para interactuar con los programas pero internamente los almacena como ANSI, debes usar las funciones CharToOem y OemToChar para hacer las conversiones. Además creo que los códigos ANSI no coinciden con los códigos ASCII. Quizá sea más fácil que hagas una función de conversión para adaptar los caracteres que vas sacando del control TEdit antes de hacer las sumas.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Feb 10, 2006 7:59 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Muchas gracias bruno por la respuesta...

Ahora me gustaria saber como funciona esta oemtochar() ya que aqui me esta dando unos resultados imprevistos, como q la probe de varias formas y siempre me devuelve com valor .T. esto no lo entendi...?

Bueno anduve tb informandome sobre los juegos de caracteres y bueno, me gustaria probar primero esta funcion, para despues montar algun tipo de funcion para convertir caracteres...

Mucha gracias por la ayuda.
Pablo Pagues


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Feb 10, 2006 9:40 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Pablo,

Las funciones OemToChar y CharToOem te devuelven .T. si realizaron con éxito la conversión. El primer parámetro es el texto a convertir y el segundo es una variable por referencia en la que te hacen la conversión:

if CharToOem( "Texto para convertir", @cCadena )
? "Convertida..."
endif

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Feb 17, 2006 2:27 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Hola Bruno:

Bueno estas funciones, no me dieron resultado, en todo caso me da como resultado um monton de espacio vacio... entonces me decidi a hacer una funcion para realizar esta conversion.

Lo que necesito, pq increiblemente no lo encontre en internet, es si alguien puede mandarme por email o aqui mismo por el forum una tabla de caracteres ANSI, para poder hacer las correspondencias.

pablo_pagues@hotmail.com

Muchas gracias desde ya.
Pablo Pagues


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Feb 17, 2006 5:33 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Pablo,

La puedes sacar facilmente, haz un bucle desde 1 hasta 255 y muestra el valor con la función Chr(). Algunos caracteres no serán imprimibles.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié Feb 22, 2006 11:52 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Bruno muchas gracias... era facil la solucion de la tabla ansi jejejej

Pero bueno... despues de hacer las correspondencias me falto un caracter q no encontre en la tabla ANSI y es el ASCII 159 "ƒ" en la tabla ansi no me lo encuentra... voy a tener q forzarlo de alguna manera... pero como? Aqui por ejemplo si apreto Alt+159 aparece el dichoso caracter... pero en C3 si hago lo mismo aparece un cuadrado negro jeje...

Bueno es eso... estamos casi llegando...

Muchas gracias
Pablo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Feb 23, 2006 9:44 am 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Pablo,

Es por la fuente que usas, no soporta ese carácter, prueba con la fuente Terminal.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 8 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron