 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado Invitado
|
Publicado: Sab 27 Mar, 2004 7:17 pm Asunto: dcómo podría concatenar edits para formar un único char *?? |
|
|
Hola:
Soy una programadora novata de Builder y me surge un problema que no se me ocurre cómo resolver. Tengo 4 edits para introducir un número de cuenta corriente, y necesito concatenarlos para crear un solo string y guardarlo en una base de datos.
He intentado utilizar la funcion strcat pero sólo funciona con char * y el tipo de dato que estoy utilizando para almacenar el texto de los edits es un AnsiString puesto que char * no permite conversión automática.
Muchas gracias de antemano |
|
| Volver arriba |
|
 |
Manuel H.C. Lt JG


Registrado: 20 Ago 2002Mensajes: 61Ubicación: Madrid (España)
|
Publicado: Sab 27 Mar, 2004 8:14 pm Asunto: |
|
|
Hola ,pues muy facil,
| Código: |
AnsiString total=Edit1->Text + Edit2->Text;
|
mira a ver si te sirve esto,un saludo |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 28 Mar, 2004 12:19 pm Asunto: |
|
|
Hola. Tienes un par de opciones:
| Código: | AnsiString asNumero;
char *chNumero=new char[20];
asNumero=Edit1->Text+Edit2->Text+Edit3->Text+Edit4->Text;
chNumero=asNumero.c_str(); |
o bien
| Código: | char *chNumero=new char[20];
strcpy(chNumero,Edit1->Text.c_str());
strcat(chNumero,Edit2->Text.c_str());
strcat(chNumero,Edit3->Text.c_str());
strcat(chNumero,Edit4->Text.c_str()); |
En ambos casos tienes el valor del string concatenado en la variable chNumero que es de tipo char.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Mie 31 Mar, 2004 8:26 am Asunto: |
|
|
Saludos !
La solucion que te da ceruleo de hecho pude funcionar, pero tiene und etalle, el espacio que se abre en memoria, veras, es de 20 caracteres y si de casualidad tu texto los sobre pasa, tendras problemas... aqui te pongo un codigo un poquito mas optimo utilizando el mismo concepto que te da ceruleo
| Código: |
//Concatenas los N edits que tengas y los almacenas en una variable
AnsiString Cadena = Edit1->Text+Edit2->Text+Edit3->Text+Edit4->Text;
char *cad = new char[Cadena.Length()+1]; //El 1 extra es para el caracter que delimita la cadena '\0'
//y ahora si, copias Cadena a cad. Hay muchas maneras pero usemos la mas sencilla
strcpy(cad,Cadena.c_str());
|
y listo, ahora tienes los 4 Edits en el puntero char. No se te olvide eliminar el espacio que reservaste para char utilizando el operador delete
mas o menos asi:
Esto debes hacerlo cuando ya no vayas a ocupar los datos almacenados en esta variable, es mu importante que siempre liberes el espacio que reservas... _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|