Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-07

La letra Ñ

19 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Anxo Vázquez

Hola a todos.

El siguiente c�digo:

 for car := 'A' to 'Z' do
   begin
     case car of
      'A':a_minu[1]:='A';
      'E':a_minu[2]:='E';
      'I':a_minu[3]:='I';
      'O':a_minu[4]:='O';
      'U':a_minu[5]:='U';
    else
      begin
       inc(j);
       a_mayu[j]:=car;
      end;

Genera el alfabeto castellano y separa vocales de consonantes con excepci�n de la �.
La sentencia:

   a_mayu[20]:= char(241);

Tendr�a que a�adirla a la matriz, pero lo que hace es poner un car�cter que es un rectangulo en vertical con sus dos diagonales trazadas. Uso Lazarus 0.928-0 sobre Debian Lenny, el valor en locale del par�metro LANG=es_ES. El teclado y el idioma espa�ol. El editor de c�digo de Lazarus admite la � sin embargo la instrucci�n:

    a_mayu[20]:= '�';

Que podr�a se la solucci�n, no lo es por incompatibilidad de tipos. Cualquier sugerencia ser� bien recibida. Muchas gracias.

Un saludo.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100727/e0a6e045/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Tuesday, July 27, 2010, 7:07:19 PM, you wrote:

AV> Genera el alfabeto castellano y separa vocales de consonantes con excepci�n AV> de la �.
AV> La sentencia:
AV> a_mayu[20]:= char(241);
AV> Tendr�a que a�adirla a la matriz, pero lo que hace es poner un car�cter que AV> es un rectangulo en vertical con sus dos diagonales trazadas. AV> Uso Lazarus 0.928-0 sobre Debian Lenny, el valor en locale del par�metro AV> LANG=es_ES. El teclado y el idioma espa�ol. El editor de c�digo de Lazarus AV> admite la � sin embargo la instrucci�n:
AV> a_mayu[20]:= '�';
AV> Que podr�a se la solucci�n, no lo es por incompatibilidad de tipos. AV> Cualquier sugerencia ser� bien recibida. Muchas gracias.

Tu problema es que piensas en ANSI y la consola escribe un UTF8 (casi seguro). Prueba en la impresi�n a poner "UTF8ToAnsi('�')" a ver que muestra.

Si es as�, tendr�s que decidir si trabajar en ANSI o en UTF8 y aplicar las conversiones donde sean necesarias, por ejemplo:

a_mayu[20]:=UTF8ToAnsi('�')[1];
Best regards, Jos�

Reply by email

franmate en gmail.com
to José Mejuto

Un saludo,

Cierto, si trabajas en un sistema utf-8 como GTK2 debes cambiar la forma de pensar y olvidarte de ASCII o acceder a los caracteres de un string mediante []

Como curiosidad...
Si haces length()
CASA tiene 4 letras , pero CA�A tiene 5 letras , eso es debido a la estructura de la codificaci�n UTF-8 ( variable de 1 a 4 )

La forma adecuada es utf8length() , sin olvidar LCLProc en el uses

a_mayu[20]:= '�';  Es correcto y debe funcionar.

Fran Mac�as

El d�a 27 de julio de 2010 21:01, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 29 lines
Hello Anxo, Tuesday, July 27, 2010, 7:07:19 PM, you wrote: AV> Genera el alfabeto castellano y separa vocales de consonantes con �excepci�n AV> de la �. AV> La sentencia: AV> � �a_mayu[20]:= char(241); AV> Tendr�a que a�adirla a la matriz, pero lo que hace es poner un car�cter que AV> es un rectangulo en vertical con sus dos diagonales trazadas. AV> �Uso Lazarus 0.928-0 sobre Debian Lenny, el valor en locale del par�metro AV> LANG=es_ES. El teclado y el idioma espa�ol. El editor de c�digo de Lazarus AV> admite la � sin embargo la instrucci�n: AV> � � a_mayu[20]:= '�'; AV> Que podr�a se la solucci�n, no lo es por incompatibilidad de tipos. AV> Cualquier sugerencia ser� bien recibida. Muchas gracias. Tu problema es que piensas en ANSI y la consola escribe un UTF8 (casi seguro). Prueba en la impresi�n a poner "UTF8ToAnsi('�')" a ver que muestra. Si es as�, tendr�s que decidir si trabajar en ANSI o en UTF8 y aplicar las conversiones donde sean necesarias, por ejemplo: a_mayu[20]:=UTF8ToAnsi('�')[1]; -- Best regards, �Jos�

Reply by email

Anxo Vázquez
to franmate en gmail.com

Gracias por vuestras respuestas.

Fran,

   a_mayu[20]:= '�';

da el error siguiente:
ciflet.pas(1252,17) Error: Incompatible types: got "Constant String" expected "Char".

Por lo que tu muy bien explicas, espera un char y recibe un string.

Sin embargo:

a_mayu[20] := UTF8ToAnsi('N')[1];

no da error, pero el resultaado sigue siendo un rectangulo con dos diagonales.

Un saludo.

El 28 de julio de 2010 02:27, <franmate en gmail.com> escribi�:

Show quoted text 58 lines
Un saludo, Cierto, si trabajas en un sistema utf-8 como GTK2 debes cambiar la forma de pensar y olvidarte de ASCII o acceder a los caracteres de un string mediante [] Como curiosidad... Si haces length() CASA tiene 4 letras , pero CA�A tiene 5 letras , eso es debido a la estructura de la codificaci�n UTF-8 ( variable de 1 a 4 ) La forma adecuada es utf8length() , sin olvidar LCLProc en el uses a_mayu[20]:= '�'; Es correcto y debe funcionar. Fran Mac�as El d�a 27 de julio de 2010 21:01, Jos� Mejuto <joshyfun en gmail.com> escribi�: > Hello Anxo, > > Tuesday, July 27, 2010, 7:07:19 PM, you wrote: > > AV> Genera el alfabeto castellano y separa vocales de consonantes con excepci�n > AV> de la �. > AV> La sentencia: > AV> a_mayu[20]:= char(241); > AV> Tendr�a que a�adirla a la matriz, pero lo que hace es poner un car�cter que > AV> es un rectangulo en vertical con sus dos diagonales trazadas. > AV> Uso Lazarus 0.928-0 sobre Debian Lenny, el valor en locale del par�metro > AV> LANG=es_ES. El teclado y el idioma espa�ol. El editor de c�digo de Lazarus > AV> admite la � sin embargo la instrucci�n: > AV> a_mayu[20]:= '�'; > AV> Que podr�a se la solucci�n, no lo es por incompatibilidad de tipos. > AV> Cualquier sugerencia ser� bien recibida. Muchas gracias. > > Tu problema es que piensas en ANSI y la consola escribe un UTF8 (casi > seguro). Prueba en la impresi�n a poner "UTF8ToAnsi('�')" a ver que > muestra. > > Si es as�, tendr�s que decidir si trabajar en ANSI o en UTF8 y aplicar > las conversiones donde sean necesarias, por ejemplo: > > a_mayu[20]:=UTF8ToAnsi('�')[1]; > > -- > Best regards, > Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100803/17ca3af9/attachment.html>

Reply by email

franmate en gmail.com
to Anxo Vázquez

Hola

2010/8/3 Anxo V�zquez <xanxov en esdebian.org>:

Show quoted text 9 lines
Gracias por vuestras respuestas. Fran, �� a_mayu[20]:= '�'; da el error siguiente: ciflet.pas(1252,17) Error: Incompatible types: got "Constant String" expected "Char". Por lo que tu muy bien explicas, espera un char y recibe un string.

� Y no puedes hacer a_mayu:array [0..26] of string; ?

Sin embargo: a_mayu[20] := UTF8ToAnsi('N')[1];

con eso accedes al primer byte del caracter utf8 � , que es 195 (decimal) , [2] es 145 ( el que ves como un "cuadradito" )

Show quoted text 6 lines
no da error, pero el resultaado sigue siendo un rectangulo con dos diagonales. Un saludo.

Reply by email

José Mejuto
to Anxo Vázquez: Gracias por vuestras respuestas. a_mayu[20]:= '�'; da el error siguiente:…

Hello Anxo,

Tuesday, August 3, 2010, 10:06:05 PM, you wrote:

AV> a_mayu[20] := UTF8ToAnsi('N')[1];
AV> no da error, pero el resultaado sigue siendo un rectangulo con dos AV> diagonales.

El resultado en donde ? En la consola ? En una aplicaci�n GUI ? Qu� Linux usas ?

Si es en consola, prueba a escribir:

writeln(ansitoutf8( LoQueQuieroEscribir ));
Best regards, Jos�

Reply by email

José Mejuto
to franmate en gmail.com: Hola 2010/8/3 Anxo V�zquez <xanxov en esdebian.org>: � Y no puedes hacer …

Hello franmate,

you wrote
> a_mayu[20] := UTF8ToAnsi('N')[1];

fgc> con eso accedes al primer byte del caracter utf8 � , que es 195 fgc> (decimal) , [2] es 145 ( el que ves como un "cuadradito" )

No, lo que tu dices ser�a: "'�'[1]" UTF8ToAnsi pasa "multibyte" UTF8 a "singlebyte" ANSI, pero devuelve en formato de string, por lo tanto tienes que acceder al primer caracter que ser� la "�" en ANSI.

Comprobaci�n f�cil:

var
  a,b,c: string;
begin
  a:='�';
  writeln(Length(a));
  b:=UTF8ToAnsi(a);
  writeln(Length(b));
  c:=UTF8ToAnsi(a)[1];
  writeln(Length(c));
  writeln('');
  Writeln('Salida sin conversi�n: ',a);
  Writeln('Salida UTF8ToAnsi: ',UTF8ToAnsi(a));
  writeln('Salida AnsiToUTF8: ',AnsiToUTF8(a));
end;
Best regards, Jos�

Reply by email

Ismael L. Donis García
to Anxo Vázquez: Gracias por vuestras respuestas. a_mayu[20]:= '�'; da el error siguiente:…

Prueba con la Unit LConvEncoding y UTF8ToISO_8859_1 y ISO_8859_1ToUTF8

Recuerda que cuando codifiques despu�s tienes que decodificar

Saludos
=========
|| ISMAEL ||
=========

Earlier message 76 lines
----- Original Message ----- From: Anxo V�zquez To: Spanish version of Lazarus List Sent: Tuesday, August 03, 2010 4:06 PM Subject: Re: [Lazarus-es] La letra � Gracias por vuestras respuestas. Fran, a_mayu[20]:= '�'; da el error siguiente: ciflet.pas(1252,17) Error: Incompatible types: got "Constant String" expected "Char". Por lo que tu muy bien explicas, espera un char y recibe un string. Sin embargo: a_mayu[20] := UTF8ToAnsi('N')[1]; no da error, pero el resultaado sigue siendo un rectangulo con dos diagonales. Un saludo. El 28 de julio de 2010 02:27, <franmate en gmail.com> escribi�: Un saludo, Cierto, si trabajas en un sistema utf-8 como GTK2 debes cambiar la forma de pensar y olvidarte de ASCII o acceder a los caracteres de un string mediante [] Como curiosidad... Si haces length() CASA tiene 4 letras , pero CA�A tiene 5 letras , eso es debido a la estructura de la codificaci�n UTF-8 ( variable de 1 a 4 ) La forma adecuada es utf8length() , sin olvidar LCLProc en el uses a_mayu[20]:= '�'; Es correcto y debe funcionar. Fran Mac�as El d�a 27 de julio de 2010 21:01, Jos� Mejuto <joshyfun en gmail.com> escribi�: > Hello Anxo, > > Tuesday, July 27, 2010, 7:07:19 PM, you wrote: > > AV> Genera el alfabeto castellano y separa vocales de consonantes con excepci�n > AV> de la �. > AV> La sentencia: > AV> a_mayu[20]:= char(241); > AV> Tendr�a que a�adirla a la matriz, pero lo que hace es poner un car�cter que > AV> es un rectangulo en vertical con sus dos diagonales trazadas. > AV> Uso Lazarus 0.928-0 sobre Debian Lenny, el valor en locale del par�metro > AV> LANG=es_ES. El teclado y el idioma espa�ol. El editor de c�digo de Lazarus > AV> admite la � sin embargo la instrucci�n: > AV> a_mayu[20]:= '�'; > AV> Que podr�a se la solucci�n, no lo es por incompatibilidad de tipos. > AV> Cualquier sugerencia ser� bien recibida. Muchas gracias. > > Tu problema es que piensas en ANSI y la consola escribe un UTF8 (casi > seguro). Prueba en la impresi�n a poner "UTF8ToAnsi('�')" a ver que > muestra. > > Si es as�, tendr�s que decidir si trabajar en ANSI o en UTF8 y aplicar > las conversiones donde sean necesarias, por ejemplo: > > a_mayu[20]:=UTF8ToAnsi('�')[1]; > > -- > Best regards, > Jos�

Reply by email

franmate en gmail.com
to José Mejuto: fgc> con eso accedes al primer byte del caracter utf8 � , que es 195 fgc> (decimal) ,…

Ok, correcto , pero con UTF8ToAnsi('�')[1] no obtienes el caracter � en una aplicacion GUI , lo acabo de comprobar en UBUNTU

edit1.text:=UTF8ToAnsi('�')[1];

y length(UTF8ToAnsi('�')) es 2

El d�a 4 de agosto de 2010 00:18, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 39 lines
Hello franmate, Tuesday, August 3, 2010, 11:53:27 PM, you wrote: >> a_mayu[20] := UTF8ToAnsi('N')[1]; fgc> con eso accedes al primer byte del caracter utf8 � , que es 195 fgc> (decimal) , [2] es 145 ( el que ves como un "cuadradito" ) No, lo que tu dices ser�a: "'�'[1]" UTF8ToAnsi pasa "multibyte" UTF8 a "singlebyte" ANSI, pero devuelve en formato de string, por lo tanto tienes que acceder al primer caracter que ser� la "�" en ANSI. Comprobaci�n f�cil: var �a,b,c: string; begin �a:='�'; �writeln(Length(a)); �b:=UTF8ToAnsi(a); �writeln(Length(b)); �c:=UTF8ToAnsi(a)[1]; �writeln(Length(c)); �writeln(''); �Writeln('Salida sin conversi�n: ',a); �Writeln('Salida UTF8ToAnsi: ',UTF8ToAnsi(a)); �writeln('Salida AnsiToUTF8: ',AnsiToUTF8(a)); end; -- Best regards, �Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

José Mejuto
to franmate en gmail.com

Hello franmate,

Wednesday, August 4, 2010, 1:30:13 AM, you wrote:

fgc> Ok, correcto , pero con UTF8ToAnsi('�')[1] no obtienes el caracter � fgc> en una aplicacion GUI , lo acabo de comprobar en UBUNTU fgc> edit1.text:=UTF8ToAnsi('�')[1];
fgc> y length(UTF8ToAnsi('�')) es 2

Vale, es cierto, ya que est�s en Ubuntu casi seguro, lo anterior funciona en Windows en que la consola es "codepage", mientras que tu Ubuntu debe de ser ES_es.UTF8, o sea que tu ANSI es UTF8, por lo tanto AnsiToUTF8 y su inversa no hacen nada de nada, ya que convierten de UTF8 a UTF8.

En tu caso tendr�s que usar UTF8ToISO_8859_1 ya que quieres seguir usando "codepages", cosa que no deber�as hacer, pero bueno.

Una aplicaci�n GUI en Ubuntu supongo que GTK2 siempre quiere las strings en UTF8, por lo tanto:

var
  a,b,c: string;
begin
  a:=UTF8ToISO_8859_1('�')[1];
  Edit1.Text:=IntToStr(Length(a)); //deber�a ser 1
  b:=ISO_8859_1toUTF8(a);
  Edit2.Text:=IntToStr(Length(b)); //deber�a ser 2
  Edit3.Text:=ISO_8859_1toUTF8(a); //Deber�a poner una �
  //Lo correcto ser�a usar esta �ltima forma, ya que no puedes
  //asegurar que el dispositivo de salida sea UTF8, siempre que
  //escribas en una consola.
  Edit4.Text:=UTF8ToAnsi(ISO_8859_1toUTF8(a)); //Deber�a poner una �
end;
Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Creo que el problema est� en la configuraci�n de las locales de mi sistema Debian. El siguiente texto:

 a:=UTF8ToISO_8859_1('Ñ')[1];
 Edit1.Text:=IntToStr(Length(a)); //debería ser 1
 b:=ISO_8859_1toUTF8(a);
 Edit2.Text:=IntToStr(Length(b)); //debería ser 2
 Edit3.Text:=ISO_8859_1toUTF8(a); //Debería poner una Ñ

escrito por ti y editado con Kwrite lo confirma.
He probado:

tmp:String;
  tmp := UTF8ToISO_8859_1('�')[1];
 a_mayu[20] := tmp[1];
 Label1.Caption:=UTF8ToAnsi('�')[1];
 Label5.Caption:=tmp;
 Label38.Caption:=AnsiToUTF8('�')[1];
 Label39.Caption:=ISO_8859_1ToUTF8('�')[1];

Siempre el mismo resultado: �� Mi rectangulo favorito !!. Hice un dpkg-reconfigure locales y prob� varias combinaciones, finalmente dej�:
*es_ES ISO-8859-1* y *es_ES.UTF8 UTF8*
Lo m�ximo que consegu� fu� sustituir mi cuadradito por una interrogaci�n.

Efectivamente la aplicaci�n es para el GUI.
No entiendo muy bien por que dices que no deber�a usar codepages, yo no conozco otra manera m�s sencilla de generar el alfabeto castellano que con:

  *for car := 'A' to 'Z' do*

Si la hay me gustar�a conocerla.

Un saludo y muchas gracias.

El 4 de agosto de 2010 11:39, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 45 lines
Hello franmate, Wednesday, August 4, 2010, 1:30:13 AM, you wrote: fgc> Ok, correcto , pero con UTF8ToAnsi('�')[1] no obtienes el caracter � fgc> en una aplicacion GUI , lo acabo de comprobar en UBUNTU fgc> edit1.text:=UTF8ToAnsi('�')[1]; fgc> y length(UTF8ToAnsi('�')) es 2 Vale, es cierto, ya que est�s en Ubuntu casi seguro, lo anterior funciona en Windows en que la consola es "codepage", mientras que tu Ubuntu debe de ser ES_es.UTF8, o sea que tu ANSI es UTF8, por lo tanto AnsiToUTF8 y su inversa no hacen nada de nada, ya que convierten de UTF8 a UTF8. En tu caso tendr�s que usar UTF8ToISO_8859_1 ya que quieres seguir usando "codepages", cosa que no deber�as hacer, pero bueno. Una aplicaci�n GUI en Ubuntu supongo que GTK2 siempre quiere las strings en UTF8, por lo tanto: var a,b,c: string; begin a:=UTF8ToISO_8859_1('�')[1]; Edit1.Text:=IntToStr(Length(a)); //deber�a ser 1 b:=ISO_8859_1toUTF8(a); Edit2.Text:=IntToStr(Length(b)); //deber�a ser 2 Edit3.Text:=ISO_8859_1toUTF8(a); //Deber�a poner una � //Lo correcto ser�a usar esta �ltima forma, ya que no puedes //asegurar que el dispositivo de salida sea UTF8, siempre que //escribas en una consola. Edit4.Text:=UTF8ToAnsi(ISO_8859_1toUTF8(a)); //Deber�a poner una � end; -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100805/4435c1ca/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Thursday, August 5, 2010, 9:31:02 PM, you wrote:

AV>  a:=UTF8ToISO_8859_1('Ñ')[1];
AV>  Edit1.Text:=IntToStr(Length(a)); //debería ser 1
AV>  b:=ISO_8859_1toUTF8(a);
AV>  Edit2.Text:=IntToStr(Length(b)); //debería ser 2
AV>  Edit3.Text:=ISO_8859_1toUTF8(a); //Debería poner una Ñ
AV> escrito por ti y editado con Kwrite lo confirma.
AV> He probado:

Bueno, al pasarlo por KWrite o lo que sea te puede haber grabado la "�" (bueno, a ti te sale en el email una A con ~ arriba) en codepage o en UTF8, eso a la hora de generar c�digo es un problema, por que los literales no sabes como los est� codificando el editor, por lo tanto o bien miras con un editor hexadecimal como lo graba tu editor o bien usas charcodes "#" en el c�digo.

AV>   tmp := UTF8ToISO_8859_1('�')[1];
AV>  a_mayu[20] := tmp[1];
AV>  Label1.Caption:=UTF8ToAnsi('�')[1];
AV>  Label5.Caption:=tmp;
AV>  Label38.Caption:=AnsiToUTF8('�')[1];
AV>  Label39.Caption:=ISO_8859_1ToUTF8('�')[1];

Reemplacemos las '�' por charcodes y te olvidas del problema :)

Label39.caption:=ISO_8859_1ToUTF8(#$D1);

Deber�a salirte una � en el 39.

AV> Siempre el mismo resultado: �� Mi rectangulo favorito !!.

No he probado, pero casi seguro que no ;)

AV> Hice un dpkg-reconfigure locales y prob� varias combinaciones, finalmente AV> dej�:
AV> *es_ES ISO-8859-1* y *es_ES.UTF8 UTF8*
AV> Lo m�ximo que consegu� fu� sustituir mi cuadradito por una interrogaci�n.

Usa siempre el segundo, te evitar�s problemas.

AV> Efectivamente la aplicaci�n es para el GUI.
AV> No entiendo muy bien por que dices que no deber�a usar codepages, yo no AV> conozco otra manera m�s sencilla de generar el alfabeto castellano que con: AV> *for car := 'A' to 'Z' do*
AV> Si la hay me gustar�a conocerla.

No es cuesti�n de sencillez, si no de funcionamiento. Tu programa (el que sea) te funcionar� bien donde usen codepages ISO8859-1, o sea, buena parte de Europa y creo que toda sudam�rica, pero en el resto de paises ver�n cosas raras en vez de '�' o letras acentuadas, y lo que es peor, en algunos casos ver�n letras diferentes.

Con UTF8 (Unicode) no pasa eso, ya que hay definidos unos 13 millones de letras de pr�cticamente todos los idiomas del mundo (si el que te gusta no est� incluido, hay un espacio reservado para especiales como el Klingon de Star Trek).

El problema con el Unicode es que para manejar car�cter a car�cter necesitas 32 bits por letra, lo que es un desperdicio de espacio brutal, as� que se suele usar el UTF-16 o UTF-8, el primero usa 2 bytes para las primeras 60000 letras y el resto que son raras usa una composici�n de otros 2 bytes. El UTF8 usa 1,2,3 o 4 bytes, y es un poco complicada de usar car�cter a car�cter sin unas bibliotecas de manejo, pero es lo que m�s se parece a codepage.

Lazarus y la LCL trabajan exclusivamente en UTF8, por eso tienes que darle las letras en UTF8 o si no te salen cuadraditos.

Tienes de desechar la idea de que una letra es un byte, una letra es una secuencia de bytes de longitud indeterminada (una string) y usarlas de ese modo para que las cosas funcionen de un modo internacional sin problemas. Yo hace ya 3 a�os que s�lo trabajo con UTF8 de modo exclusivo.

Best regards, Jos�

Reply by email

Jesus Reyes
to Anxo Vázquez: Creo que el problema est� en la configuraci�n de las locales de mi sistema Debian. El…

�
Siempre el mismo resultado: �� Mi rectangulo favorito !!.

Hice un dpkg-reconfigure locales y prob� varias combinaciones, finalmente dej�: es_ES ISO-8859-1 y es_ES.UTF8 UTF8
Lo m�ximo que consegu� fu� sustituir mi cuadradito por una interrogaci�n.

Efectivamente la aplicaci�n es para el GUI.

No entiendo muy bien por que dices que no deber�a usar codepages, yo no conozco otra manera m�s sencilla de generar el alfabeto castellano que con:

� for car := 'A' to 'Z' do

Si la hay me gustar�a conocerla.

Una sugerencia:

Uses ..., LCLType, ...
var
  a_mayu, aminu: array[0..Max] of TUTF8Char;
// TUTF8Char esta normalmente definido en LCLType como String[7]
var
  Car: Char;
  ...
begin
   for car:='A' to 'Z' do begin
      ....
   case car of
     'A':a_minu[1]:='A';
     'E':a_minu[2]:='E';
     'I':a_minu[3]:='I';
     'O':a_minu[4]:='O';
     'U':a_minu[5]:='U';
    else
     begin
      inc(j);
      a_mayu[j]:=car;
    end;
    ....

parece que a_mayu[] contiene todas las letras menos las vocales, pero un detalle, en tu post original pones:

a_mayu[20] :='�';
Pero si mis calculos no me fallan, a_mayu[20] corresponde a 'y' (suponiendo que b=1) lo cual la reemplazaria no la a�adiria, para a�adirla seria a_mayu[22] := '�', igual estoy equivocado :)

No se que pretendas hacer, pero si se trata de separacion silabica checate este enlace: http://forum.lazarus.freepascal.org/index.php?PHPSESSID=00a41ddb2fbee0d98a0e9dbbee3a0fe2&topic=8837.1

Jesus Reyes A.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100805/19dd6d76/attachment-0001.html>

Reply by email

franmate en gmail.com
to Jesus Reyes

y que tal Array[0..26] of string= ('A','B','C',.....); ?

2010/8/6 Jesus Reyes <jesusrmx en yahoo.com.mx>

Show quoted text 18 lines
Siempre el mismo resultado: �� Mi rectangulo favorito !!. Hice un dpkg-reconfigure locales y prob� varias combinaciones, finalmente dej�: *es_ES ISO-8859-1* y *es_ES.UTF8 UTF8* Lo m�ximo que consegu� fu� sustituir mi cuadradito por una interrogaci�n. Efectivamente la aplicaci�n es para el GUI. No entiendo muy bien por que dices que no deber�a usar codepages, yo no conozco otra manera m�s sencilla de generar el alfabeto castellano que con: *for car := 'A' to 'Z' do* Si la hay me gustar�a conocerla.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100806/929f1582/attachment.html>

Reply by email

Anxo Vázquez
to franmate en gmail.com

Me he decidido por la soluci�n de Jes�s: Redefinir el tipo del array y olvidarme de lo dem�s.
a_mayu[20] , como bien dices corresponde a "y", su elecci�n fue casualidad.

La soluci�n de Jos� con los charcodes tambi�n es v�lida pero me obligaba a m�s cambios. Creo que las que propon�an cambiar char a string tambi�n.

Como anecdota, comentar que los car�cteres raros que salieron en Kwrite fueron debidos a alguna de las combinaciones que prob�, al volver a la original el problema descioapare.
Tambi�n creo que con el juego de car�cteres apropiado las conversiones UTF8ToAnsi o ISO deber�an funcionar.

Un saludo.

2010/8/6 <franmate en gmail.com>

Show quoted text 29 lines
y que tal Array[0..26] of string= ('A','B','C',.....); 2010/8/6 Jesus Reyes <jesusrmx en yahoo.com.mx> > > Siempre el mismo resultado: �� Mi rectangulo favorito !!. > Hice un dpkg-reconfigure locales y prob� varias combinaciones, finalmente > dej�: > *es_ES ISO-8859-1* y *es_ES.UTF8 UTF8* > Lo m�ximo que consegu� fu� sustituir mi cuadradito por una interrogaci�n. > > Efectivamente la aplicaci�n es para el GUI. > No entiendo muy bien por que dices que no deber�a usar codepages, yo no > conozco otra manera m�s sencilla de generar el alfabeto castellano que con: > > *for car := 'A' to 'Z' do* > > Si la hay me gustar�a conocerla. > > > _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100806/95cea329/attachment.html>

Reply by email

Jesus Reyes
to franmate en gmail.com: y que tal Array[0..26] of string= ('A','B','C',.....); ? 2010/8/6 Jesus Reyes <jesusrmx…

--- El jue 5-ago-10, franmate en gmail.com <franmate en gmail.com> escribi�:

De: franmate en gmail.com <franmate en gmail.com>
Asunto: Re: [Lazarus-es] La letra �
A: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Fecha: jueves, 5 de agosto de 2010, 18:43

y que tal �Array[0..26] of string= ('A','B','C',.....); ?

Al compilador realmente le da lo mismo uno que otro, si acaso algunas ventajas que tiene el usar TUTF8Char es que el simple nombre del tipo le agrega mas significado al programador. Otra ventaja de usar un shortstring (TUTF8Char) frente a un ansistring (string) es que un ansistring es "reference counted" y conlleva mas administraci�n interna, shortstring son mas simples en cuanto a su administraci�n interna, pero tienen un l�mite de 255 caracteres. En este caso se trata solo de caracteres UTF8 por lo que un shortstring viene perfectamente al caso. Jesus Reyes A.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100806/b48340ea/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez: Me he decidido por la soluci�n de Jes�s: Redefinir el tipo del array y olvidarme de…

Hello Anxo,

Friday, August 6, 2010, 9:29:16 PM, you wrote:

AV> Como anecdota, comentar que los car�cteres raros que salieron en Kwrite AV> fueron debidos a alguna de las combinaciones que prob�, al volver a la AV> original el problema descioapare.
AV> Tambi�n creo que con el juego de car�cteres apropiado las conversiones AV> UTF8ToAnsi o ISO deber�an funcionar.

Suerte! Por cierto, por el nombre pareces de Galicia ? Lo digo por que yo soy de Santiago ;)

Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Gracias. Cierto Jos�, http://trisquel-blog.com explica perfectamente que y de donde soy.

Unha aperta.

El 6 de agosto de 2010 23:18, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 23 lines
Hello Anxo, Friday, August 6, 2010, 9:29:16 PM, you wrote: AV> Como anecdota, comentar que los car�cteres raros que salieron en Kwrite AV> fueron debidos a alguna de las combinaciones que prob�, al volver a la AV> original el problema descioapare. AV> Tambi�n creo que con el juego de car�cteres apropiado las conversiones AV> UTF8ToAnsi o ISO deber�an funcionar. Suerte! Por cierto, por el nombre pareces de Galicia ? Lo digo por que yo soy de Santiago ;) -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20100807/43c7e094/attachment.html>

Reply by email