Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

AnsiString.Insert no inserta

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: AnsiString.Insert no inserta Responder citando

Saludos a todos.

Tengo un problema con el metodo Insert de AnsiString,
ya que no me inserta la cadena.


Código:
 
        iLongitudCadena = CadenaTrama.Length();
        CadenaTrama.Insert( cadenaAux, iLongitudCadena );



Depurando he observado el error se produce cuando en la cadena que recibo en el AnsiString es la siguente

cadenaTrama = "t78280B2B09C3FDB"

y las demas variables son

cadenaAux = "087DB\r";
y
iLongitudCadena = 18 (0x00000012)


Como podeis observar cadenaTrama mide 16 bytes, pero la funcion Length() me dice que mide 18 bytes, y creo que esa es la razon por la que no me inserta en la nueva cadena.

Ya se que la funcion Insert se supone que si la posicion donde le dices que inserte es mayor que la longitud de la cadena simula un append y la añade al final, pero he probado poniendo

CadenaTrama.Insert( cadenaAux, 50);

y sigue sin insertar.

Agradezco cualquier sugerencia, para este problema , Evil or Very Mad

Un saludo y gracias
Piru


p.d. Solo por curiosidad, estos datos los voy recibiendo por el puerto serie y necesito ir juntando la cadena hasta que reciba un '\r'.

bye
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:

AnsiString s="t78280B2B09C3FDB";
s.Insert("087DB\r",s.Length());
ShowMessage(s);

Ese codigo funciona Perfecto,Lo unico que deberias tener en cuenta es cuando insertas estas insertando antes de la ultima B
quedaria algo asi
t78280B2B09C3FD087DB\rB

si lo quieres de ultimo seria
Código:

s.Insert("087DB\r",s.Length()+1);


Saludos
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por la respuesta

aunque creo que tenia un error al definir la longitud

cadenaAux.SetLength( Count + 1);

supongo que la longitud real de la cadena era distinta a la que visualizaba en depuracion.

Un saludo
Piru

bye
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.