Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2023
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Error en este código: no se puede convertir de 'byte[]' a 'char[]'

Hola:

Tengo este código y me salta este error. Supuestamente es todo a byte[], nada de char[].

Código:
using System;
using System.Text;

namespace Almacenar_datos_en_un_array_tipo_byte_Consola_01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            byte[] dataArray = new byte[1024]; // Tamaño máximo del array de bytes.

            Console.WriteLine("Escribe un texto y pulsa Enter:");
            int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array.

            Console.WriteLine("Datos almacenados en el array:");
            for (int i = 0; i < bytesRead; i++)
            {
                Console.Write(dataArray[i] + " ");
            }
            Console.WriteLine();

            Console.WriteLine("Texto almacenado en el array:");
            string text = Encoding.Default.GetString(dataArray, 0, bytesRead); // Convierte los bytes a una cadena de texto.
            Console.WriteLine(text);
        }
    }
}
Justo aquí.
Código:
int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array.
En el primer dataArray.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #2  
Antiguo 28-12-2023
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Simplemente el método Read espera un array de caracteres (char[]), y le estas pasando un array de bytes (bytes[]). Tienes que cambiar la definición de dataArray o convertirla a char[].

Saludos.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 29-12-2023
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
¿Y no se puede hacer de alguna manera solo byte[] en vez de char[]?

Aún así intenté hacer esto. Me ejecuta pero el resultado no me da nada, solo ceros.

Código:
using System;
using System.Text;

namespace Almacenar_datos_en_un_array_tipo_byte_Consola_01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Tamaño máximo del array de bytes.
            byte[] byteArray = new byte[1024]; 

            // Convertir de byte[] a char[]
            char[] charArray  = Encoding.Default.GetString(byteArray).ToCharArray();

            Console.WriteLine("Escribe un texto y pulsa Enter:");

            // Lee los bytes desde la consola y los guarda en el array.
            int leerBytes = Console.In.Read(charArray, 0, charArray.Length); 

            Console.WriteLine("Datos almacenados en el array:");
            for (int i = 0; i < leerBytes; i++)
            {
                Console.Write(byteArray[i] + " ");
            }
            Console.WriteLine();

            Console.WriteLine("Texto almacenado en el array:");

            // Convierte los bytes a una cadena de texto.
            string texto = Encoding.Default.GetString(byteArray, 0, leerBytes); 
            Console.WriteLine(texto);

            // Pulse cualquier tecla para salir.
            Console.ReadKey();
        }
    }
}
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.

Última edición por REHome fecha: 29-12-2023 a las 03:49:28.
Responder Con Cita
  #4  
Antiguo 29-12-2023
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Como te respondieron en el otro foro:
Cita:
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.
Siempre tienes la chance de convertir un tipo de dato al otro, por ejemplo leer la entrada de la consola como string, y convertirla a byte[]. En tu código, lees la variable charArray para no usarla nunca, y el byteArray queada con la definición original, no es alterada.

Saludos.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuden a convertir este codigo carlosprotos Varios 2 01-03-2020 21:12:14
Convertir este código fuente the CSharp a Delphi Blade_Is_One .NET 0 20-12-2012 14:59:51
¿se puede convertir codigo VB.net y/o c sharp a delphi? JXJ Varios 1 29-12-2010 11:46:09
Convertir char*, char[], string lmpadron C++ Builder 2 29-10-2010 09:08:45
Ehm, alguien me puede facilitar éste código? gatsu PHP 3 09-07-2004 13:35:01


La franja horaria es GMT +2. Ahora son las 09:55:08.


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
Copyright 1996-2007 Club Delphi