none
IMPRIMIR VOCALES CON ASTERISCOS RRS feed

Todas las respuestas

  • Tienes que codificarlas en el juego de caracteres que utilice el dispositivo en el que las quieres imprimir.

    Internamente en C# los strings siempre se guardan en Unicode. Pero cuando esos strings internos los quieres enviar a algún sitio, el Unicode tiene que transformarse en una secuencia de bytes, que por desgracia no es única y depende de cada consumidor. Por ejemplo, si tienes que codificar el string en el juego ANSI de Windows, que usa 8 bits por cada carácter y guarda las vocales acentuadas con valores mayores que 128 dentro del byte, entonces harías algo como esto:

    byte[] codificado = System.Text.Encoding.GetEncoding(1252).GetBytes(aquíTuCadena);

    El encoding 1252 es el ANSI de un Windows en español.

    Pero en cambio, si tuvieses que codificar la misma cadena en UTF8, que usa un byte especial para indicar que detrás viene un carácter no-ascii y detrás vienen uno o dos bytes adicionales para indicar qué carácter, entonces harías esto:

    byte[] codificado = System.Text.Encoding.UTF8.GetBytes(aquíTuCadena);

    Similarmente a los dos anteriores, existen decenas de codificaciones distintas. Tienes que averiguar cuál es la que requiere el dispositivo en el que quieres imprimir, y convertir la cadena de caracteres en los bytes requeridos por ese dispositivo antes de enviarlos.

    Si usas un driver de impresora de Windows (en lugar de enviar directamente los bytes al puerto de la impresora) entonces no hace falta que programes nada de lo anterior porque el driver ya sabe generar el encoding necesario si le pasas el String en Unicode (usando, por ejemplo, la clase PrintDocument).


    miércoles, 6 de noviembre de 2019 10:27
    Moderador
  • hola gracias pero me referia al algortimo a crear en C#

    Para poder imprimir en pantalla asi

    miércoles, 6 de noviembre de 2019 14:03
  • Hola Delloream Lawston

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que para que la comunidad de foros te pueda asesorar mejor, es necesario que nos compartas el form/code que estás desarrollando. Así como una pregunta específica.

     

    Como te comentamos en las otras preguntas que publicaste, es necesario que compartas con nosotros lo que tú has desarrollado para que la comunidad de este foro te ayude revisando, corrigiendo y mejorando tu código. Te recuerdo que este foro no resuelve tareas o problemas académicos. Y siempre es un gusto poder informarte.

     

     

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 6 de noviembre de 2019 18:07
    Moderador
  • Agh! Perdona. Había entendido "imprimir vocales con acentos" (en lugar de "con asteriscos") y por eso solté toda la parrafada sobre los juegos de caracteres.

    No hay nada "automático" para los asteriscos. Lo que se hace es construir una tabla con toda la lista de qué asteriscos hay que pintar para cada vocal. Puede por ejemplo ser un array de strings: cada string contiene 5 caracteres, que pueden ser asteriscos o espacios, y 5 cadenas forman el contenido de una vocal. Esas cadenas hay que rellenarlas tecleando a mano su contenido en el código fuente, no hay un automatismo para generarlas. Para presentarla simplemente haces un bucle de 1 a 5 que escriba en consola las 5 cadenas.

    miércoles, 6 de noviembre de 2019 18:59
    Moderador