Perdona, pero me lo puedes explicar con mas detalle?Lamentablemente no, ya que casi todo lo que usas no es standard. Tal vez esa clase AnsiString tenga un metodo tipo c_str() pero no lo se ... el codigo que te deje es MUY simple, lo que hace es pasar un numero contenido en una variable de tipo int/long o lo que fuera a una cadena.
Hasta ahora yo tengo esto, primero me defino la variable tipo string, luego leo el COM y lo cargo en 'a'. Antes de representarlo tego que tratar la variable 'a' de la forma que me dices pero no lo entiendo bien.
AnsiString a;
ComPort1->ReadStr(a,Count);
Label8->Caption =a;
Pero aun asi me siguen llegando datos erroneos, supongo que seran interferencias a algo similar.No lo se pero seguro que no fue pensado esto para usar ReadStr ... podrias probar leyendo tipos numericos tal vez ...
Te refieres a intentarlo en vez de usar ReadStr(AnsiString &Str, int Count);Si, por ejemplo ... pero yo haria (tal vez me equivoque pero es lo logico):
utilizar esta otra Read(void *Buffer, int Count);
Yo pensaba en representar 'ret' en lugar de 'valor' pero me da errores de compilacion. Supongo que estaba equivacado. Colocando 'itoa' los resultados son similares.ret es el resultado, verdadero o falso dependiendo de si logro leer o no. En valor esta el valor leido justamente.
En estos momentos estoy enviando (0000 1111) y en la Label me representa varios valores prodominando el 15, pero tambien valores como 248 ó 135.Comproba que estes configurando bien el puerto, velocidad incluida y que no la estes sobrepasando.