Título: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: Meta en 27 Diciembre 2023, 07:06 am Hola:
Tengo este código y me salta este error. Supuestamente es todo a byte[], nada de char[]. Código
Justo aquí. Código
En el primer dataArray. Título: Re: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: profinet en 27 Diciembre 2023, 10:08 am En C#, el tipo de dato char tiene un tamaño de 16 bits, lo que le permite representar cualquier carácter Unicode. Por otro lado, el tipo de dato byte tiene un tamaño de 8 bits.
Es posible que haya cierta confusión, ya que en lenguajes como C/C++, ambos tipos de datos comparten el mismo tamaño, ya que el tipo char se utiliza para representar caracteres ASCII, que son de 8 bits en esos contextos. Sin embargo, en el entorno de C#, el tipo char se ha diseñado para manejar un rango más amplio de caracteres Unicode, y por lo tanto, su tamaño es de 16 bits. Si quieres rizar el rizo, debes guardar la entrada del usuario como un string (una cadena de caracteres con terminador nulo), codificarlos en UTF8 (8-bit Unicode Transformation Format) y volver a descodificarlos. Código
Código: Escribe un texto y pulsa Enter: Título: Re: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: Meta en 27 Diciembre 2023, 16:45 pm En string no lo prefiero, porque ahora prefiero hacer pruebas directamente en un array, ya que los datos me vienen directamente del puerto serie y debo capturar todo tipo de datos en Bytes, incluyendo /r y /n por poner un ejemplo.
Aún así cuando llegue a mi casa pruebo tu código y muchas gracias. Luego te comento. Título: Re: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: Meta en 29 Diciembre 2023, 03:50 am Lo intenté hacer de esta otra forma.
Código
Me lee todo como ceros. Título: Re: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: profinet en 29 Diciembre 2023, 09:01 am Si quieres leer raw bytes desde la consola, necesitas usar Console.OpenStandardInput().
Código
Código: Escribe un texto y pulsa Enter: Si planeas leer datos directamente desde el puerto serie en C#, será necesario trabajar con un flujo de entrada/salida (I/O stream). Afortunadamente, la clase SerialPort en C# proporciona métodos predefinidos para manejar la lectura y escritura de datos en un puerto serie. De todos modos, un string no deja de ser una cadenas de caracteres, y cada caracter, pese a ocupar 16 bits, almacena un byte (o doble byte) que dependiendo del tipo de codificación, se imprime en pantalla. Por ejemplo, usando la tabla ASCII si la codificación es UTF8: https://elcodigoascii.com.ar/ En caso de que lo que leas, no tenga un símbolo gráfico relacionado, se imprime un carácter residual. En este contexto, es crucial destacar que el "byte" en sí mismo continuará almacenado en el carácter correspondiente. La distinción recae en el enfoque que aplicas a la manipulación de los datos. Título: Re: Error en este código: no se puede convertir de 'byte[]' a 'char[]' Publicado por: Meta en 29 Diciembre 2023, 18:20 pm Funciona tu código. ;-)
Estás hecho un campeón. Gracias a todos. ;D ;D ;D ;-) El primer código funciona si pongo en vez de byte[] ponerlo a char[], cosa que no me interesa. El tuyo es el que quiero. Y si, estoy aprendiendo con ejemplos sueltos antes de meterle mano al puerto serie. Felices fiestas 2023. :D |