PDA

Ver la Versión Completa : Extraer caracteres de una Cadena!!


subzero
18-02-2004, 15:27:15
Hola amigos.


Mi inquietud es la siguiente, por ejemplo tengo unas tablas de las cuales hago una consulta SQL y cargo los valores en comobobox al cargarce quedan de la siguiente manera.

MARIA - 01
LUCIA - 02
CATALINA - 03

deseo extraer los dos ultimos digitos y no se como hacerlo, ya que estos dos digitos me permitirán restringir la consulta para nuevas cargas.

Espero haber sido explicito en mi pregunta y agradezco cualquier ayuda.

Gracias.

roman
18-02-2004, 15:35:27
Si este es el formato puedes usar la función Pos para encontrar la posición del guión y luego la función Copy o RightStr para extraer la parte que contiene los dígitos.

Por cierto, ¿qué tiene que ver esta pregunta con C++ Builder?

// Saludos

subzero
18-02-2004, 15:49:26
Gracias por responderme.

La aclaración sobre que tiene que ver con C++ Builder, es que estoy accediento a ello desde esta herramienta y no se como extraer estos digitos para utilizarlos en una consulta en tiempo de ejecución.

Ya ubico el "-" con la Funcion AnsiPos per no se como copiar desde esa posición hasta otra en Delphi es copy(Cadena,Posición_Inicial,Posición_Final) per nose cual es su semejante en C++.

Gracias por pedirme aclaración.

roman
18-02-2004, 15:53:36
Ok. No me acuerdo bien de C pero ¿qué en C no puedes simplemente sumarle un entero a un pchar para avanzar el puntero a la posición deseada o simplemente usarlo como arreglo (pstrCadena[PosGuion + 1])?

// Saludos

subzero
18-02-2004, 16:02:51
Que pena me falto explicar que no es para C sino para C++ Builder, mis disculpas.

roman
18-02-2004, 16:04:55
Que pena me falto explicar que no es para C sino para C++ Builder, mis disculpas.

¡Qué va! No te apenes, el apenado soy yo que no sé C++ y sí me di cuenta de que es C++ Builder lo que usas pero creo que ese tipo de manipulaciones de cadenas terminadas en #0 es igual en C que en C++, ¿no?

// Saludos

subzero
18-02-2004, 22:15:50
;) Amigos pude solucionarlo de la siguiente manera:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString A,B;
int i;
A=Edit1->Text;
i=A.AnsiPos("-");
B=A.SubString(i+1,A.Length());
ShowMessage(B);
}

AnsiPos: para ubicar la posición del carácter en la cadena

SubString: Para delimitar el rango que me interesa guardar