[C con Clase] Acentos

Antonio Cascales antonio.cascales en gmail.com
Vie Jun 10 17:47:38 CEST 2011


¡Hola!:

   ¡Muchísimas gracias pablo! me has dado la pista para solucionar el problema. :)

   quizás sea una manera bastante chapucera, y quizás no sea la forma correcta, pero simplemente borrando la línea:

      else if( isascii( d->inbuf[i] ) && isprint( d->inbuf[i] ) )

   Se ha solucionado, ya puedo mostrar los carácteres especiales como las acentuadas y la ñ. :)

   Gracias a tu pista, se me ha ocurrido probar que pasaría si eliminaba esa línea, y funcionó.

   ¡un saludo muy grande y gracias! :)

          Antonio

  ----- Original Message ----- 
  From: Pablo Alejandro Herrero 
  To: Lista de correo sobre C y C++ 
  Sent: Thursday, June 09, 2011 5:49 PM
  Subject: Re: [C con Clase] Acentos


  Amigo, no sería más facil que aprendas inglés? ;-)) no investigué mucho pero esta parte del código:


        else if( d->inbuf[i] == '\b' && k > 0 )
           --k;
        else if( isascii( d->inbuf[i] ) && isprint( d->inbuf[i] ) )
           d->incomm[k++] = d->inbuf[i];


  reemplaza caracteres de un buffer por los de otro, lo cual podría servir para 'traducir' de una tabla de caracteres a otra. En la linea que indicas se consulta si un caracter en un espacio de memoria dado (en este caso el buffer) es ascii e imprimible (o sea que no es un caracter de control -del 0 al 31 son de control-) y en ese caso lo reemplaza por el  valor de incomm por el de inbuf. Pero no entiendo como encaja, no es muy sencillo escudriñar 3417 lineas de código y no puedo compilarlo en mi máquina, que de hecho es del trabajo jejeje. Si querés traducir el programa, yo reescribiría todas las cadenas del inglés al español, como ser está linea:
  "act_string: player %s has sex set at %d!" quedaría "act_string: el jugador %s tiene un set sexual en %d!"


  algunas cosas quedarían en ingles, como nombres de funciones o estados que se definen en el código -como act_string- pero porque sirven para depurar cuando aparece un error, pero lo demás se puede. Si vos escribis en el programa un acento, y al momento de ejecutarlo aparece otra cosa, es porque son distintas codificaciones de texto... eso lo podés arreglar la misma codificación en el IDE que en la consola o el entorno de ejecución por ejemplo en Code::blocks podés facilmente seleccionar el conjunto de caracteres que querés usar; en cuyo caso una vez modificado, verías lo mismo que saldría por pantalla. Se que no es lo que necesitas, pero quien sabe!! saludos!


  El 6 de junio de 2011 19:41, Antonio Cascales <antonio.cascales en gmail.com> escribió:

    Hola a todos:

       Es la primera vez que escribo a la lista, a pesar de que llevo algún tiempo ya registrado. Llevo mucho tiempo queriendo aprender a programar, pero a pesar de ello, no logro mi objetivo y es por ello que no participo nada en la lista, pues todo lo que aquí se habla, practicamente, me suena a chino.

       Esta vez escribo, pues me gustaría pediros ayuda. No sé si  podréis ayudarme, pero bueno, al menos os planteo el caso y vosotros me decís si hay manera de solucionarlo y como, o si por el contrario, no tenéis ni idea, aunque ser´´ia bastante extraño, veo que aquí domináis muchísimo todos los aspectos de la programación.

       Veréis, puesto que todavía no tengo conocimientos suficientes para programar cosas demasiado complejas, estoy intentando traducir un programa, o más bien un juego, del inglés, que es la lengua originaria, al Español. pero me encuentro un problema, y esque los caracteres especiales, como á, é, í, ó, ú, o ñ, no los reconoce como es lógico porque ellos no las gastan, pero a la hora de ejecutar el programa, y traducirlo al español, pues si necesitaría que se viesen.

       Según me han dicho, la posible solución está en la siguiente línea de código:

          else if( isascii( d->inbuf[i] ) && isprint( d->inbuf[i] ) )

       Adjunto os remito el archivo en el que está esta línea, pues imagino que no basta con una sola línea. Dicha línea está en una funcion llamada read_from_buffer. Hasta aquí, todo lo que he podido descifrar. La manera de solucionarlo, por el momento escapa a mi comprensión, quizás, hasta que alguien pueda explicarme los cambios a realizar.

       sé que quizás estoy pidiendo demasiado, pero no sé de ningún sitio más donde puedan echarme un cable.

       Os agradecería mucho la ayuda.

       Un saludo,

              antonio


    _______________________________________________
    Lista de correo Cconclase Cconclase en listas.conclase.net
    http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
    Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ





------------------------------------------------------------------------------


  _______________________________________________
  Lista de correo Cconclase Cconclase en listas.conclase.net
  http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
  Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110610/d74abd5c/attachment.html>


Más información sobre la lista de distribución Cconclase