Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2005
Luis Abraham Luis Abraham is offline
Miembro
 
Registrado: oct 2003
Ubicación: Guadalajara, Jalisco, México
Posts: 16
Poder: 0
Luis Abraham Va por buen camino
Question 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 !!!
__________________
Saludos desde Guadalajara, Jalisco, México

Última edición por Luis Abraham fecha: 06-06-2005 a las 19:00:51. Razón: StrCopy por strcpy
Responder Con Cita
  #2  
Antiguo 06-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
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);
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 03-07-2005
case case is offline
Registrado
 
Registrado: jul 2005
Posts: 5
Poder: 0
case Va por buen camino
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 !
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:43:54.


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
Copyright 1996-2007 Club Delphi