Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como Cambiar Caracter ¥ por Ñ???? (https://www.clubdelphi.com/foros/showthread.php?t=25671)

AGAG4 29-09-2005 21:19:08

Como Cambiar Caracter ¥ por Ñ????
 
Tengo el siguiente problema, hice una importación de datos de un sistema en clipper a mi aplicación en windows, usó Firebird 1.52, pero me he percatado que los nombres de los CLIENTES en vez de ponerle la Ñ le pone el signo ¥ al principio tuve problemas con las consultas de los clientes pero lo solucione con la siguiente función:
Código Delphi [-]
function AnSi2Ascii(AText:string):string;
const MaxLength = 255;
var PText : PChar;
begin
  PText:=StrAlloc(MaxLength);
  StrPCopy(PText,AText);
  {$IFDEF WIN32}
  CharToOEM(PText,PText); {32Bit}
  {$ELSE}
  AnsiToOEM(PText,PText); {16Bit}
  {$ENDIF}
  Result:=StrPas(PText);
  StrDispose(PText);
end;

Pero si quiero hacer una asignación para desaparecer ese caracter no me lo cambia, he realizado un ciclo donde reviso caracter por caracter si me encuentro con el signo raro y no me cambia ese signo por la Ñ, pongo ejemplo:
Código Delphi [-]
..
  for x:=1 to length(val) do
    result:=result+ANSI2ASCII(val[x]);
..

Agradezco cualquier sugerencia.

marcoszorrilla 29-09-2005 22:54:38

Una pregunta:
Has probado a modificarlo a mano?

Te digo esto, porque puede ser que no hayas configurado bien el:
Charset:ISO8859_1
y el Collate:
Es_es

Y lo que esté ocurriendo es que no admita este tipo de caracteres.

Un Saludo.

AGAG4 01-10-2005 00:09:56

ok
 
Yo inicialmente cuando hice la Base de datos empece y sigo con ese mismo Collate y Charset, por cada campo VarChar le agrego estas 2 propiedades.

Gracias por su sugerencia.

roman 01-10-2005 00:37:50

Como los caracteres de los datos que importas también dependen del juego de caracteres que tenías en Clipper, posiblemente te funcione importarlos primero usando UTF y luego ya pasándolo a tus bases con ISO8859_1.

// Saludos

AGAG4 01-10-2005 18:30:48

ok
 
Disculpe mi Ignorancía pero como hago eso con UTF????
Gracias Roman....

marcoszorrilla 01-10-2005 21:01:49

UTF

Un Saludo.

Al González 02-10-2005 05:45:55

¡Hola a todos!

Cita:

Empezado por AGAG4
...en vez de ponerle la Ñ le pone el signo ¥...
..reviso caracter por caracter si me encuentro con el signo raro y no me cambia ese signo por la Ñ, pongo ejemplo:
Código Delphi [-]
  for x:=1 to length(val) do
    result:=result+ANSI2ASCII(val[x]);
Agradezco cualquier sugerencia.

Que tal Alfredo. El problema es que estás intentando convertir de OEM a ANSI con una función que convierte de ANSI a OEM (CharToOEM). Necesitas usar la función inversa, OEMToChar.

Para mayor facilidad, si tienes Delphi 7, mi sugerencia sería que utilizaras la función ghCadenaANSI de Interfaz GH (Uses IGHCadenas).
Código Delphi [-]
CadenaNueva := ghCadenaANSI (CadenaVieja);

Un abrazo acentuado.

Al González. :)

AGAG4 03-10-2005 16:08:19

ok
 
Muchas Gracias Al Gonzalez y MarcosZorrilla...

Las funciones que me comenta Al Gonzalez son Libres????

Lo solucione de la siguiente forma:

Código Delphi [-]
function LimpiaCharANSI(val:String):String;
var x:integer;
begin
  result:='';
  for x:=1 to length(val) do
    if (IntToStr(ord(val[x])) = '165') or ((IntToStr(ord(val[x])) = '209')) then
      result:=result+'Ñ'
    else
      result:=result+val[x];
end;

Que tengan Buen Día....

Al González 03-10-2005 18:26:55

¡Hola a todos!

Cita:

Empezado por AGAG4
...Las funciones que me comenta Al Gonzalez son Libres????...

Interfaz GH es una biblioteca de funciones gratuita, totalmente funcional e incluye el código fuente. Su tipo de licencia es freeware.

Un abrazo sin costo.

Al González. :)

AGAG4 04-10-2005 02:53:31

ok
 
Gracias por la información Al Gonzalez....

Saludos....

AGAG4 05-10-2005 23:51:28

No puedo bajar la libreria
 
No puedo bajar la libreria que me comenta AL Gonzalez
Asi se llama el archivo que se descarga:
InterfazGH7%
2Ezip&tw=43200&kv=7&ct=1128549310&kpp=1&ver=2.1.0173.1&tpf=c3f3cef47a4d8cfcd3e3bf83dd97c21c

Saludos....

AGAG4 06-10-2005 00:22:43

Ya lo descargue
 
Lo que me paso es que tenía un programa para descarga de archivos, lo desinstale y listo ....

Saludos....


La franja horaria es GMT +2. Ahora son las 07:50:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi