Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Equivalente a la función Copy en C++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=22089)

Luis Abraham 06-06-2005 18:53:07

Equivalente a la función Copy en C++ Builder
 
Hola Foro !!!!

Es primera vez que trabajo en C++ Builder por lo que no estoy muy familiarizado con el.

Mi duda es simple, necesito saber cual es el equivalente en C++ Builder del la función Copy de Delphi, si no mal recuerdo en la ayuda encontre una función llamada strcpy pero no pude hacer con ella lo que se hace con Copy en Delphi.

En realidad mi problema es muy sencillo, solo necesito extraer subcadenas de una cadena mayor pero no he encontrado como solucionarlo en C++ Builder.

Para ser mas especifico mi problema es el siguiente, tengo un archivo de texto con cadenas separadas por comas → "Abraham,Nuño,25,1980,México" y necesito extraer cada subcadena entre las comas para ingresarla a un StrinGrid, esto lo hacia de forma muy facil en Delphi con la función Copy pero en Builder no lo he podido resolver, por lo del manejo del StrinGrid no hay ningun problema sino solo por la extracción del las cadenas.

Espero me puedan ayudar con esto y muchas gracias de antemano !!!

Crandel 06-06-2005 21:07:20

C++Builder utiliza la clase AnsiString para el manejo de cadenas.

Esta clase posee varios métodos, entre ellos SubString(pos, cant).

lo uilizas asi:

Código:

AnsiString Cad = "Abraham,Nuño,25,1980,México";
AnsiString Aux;

Aux = Cad.SubString(1, Cad.Pos(",")-1);


case 03-07-2005 15:25:42

La forma más eficiente, sobre todo si la cadena está separada por comas, es utilizar un objeto TStringList. de la siguiente forma:
Código:

TStringList *SL = new TStringList;
SL->CommaText = tu_cadena;
int cantidad = SL->Count; // La cantidad de componentes
for (int fila=0; fila < cantidad; fila++) // Recorrer la lista de componentes
{
    HacerAlgo (SL->Strings[fila]); // Hacer algo con cada componentes (1, 2, 3, ...)
}
delete SL;

Este truco se basa en la habilidad del StringList de descomponer las cadenas separadas por coma en sus partes, y colocar cada una de ellas en una fila de la lista.

Espero te sirva. Es uno de mis trucos favoritos !


La franja horaria es GMT +2. Ahora son las 05:50:22.

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