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 24-08-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Dividir un AnsiString en varios ( como split en C# )

Hola amigos, mi problema es algo sencillo, pero no he sabido como hacer.
Tengo este AnsiString :

Código:
juanerasmo\\trabajo\\00010\\00111
y necestio sacar de ahi, por ejemplo
Código:
juanerasmo\\trabajo\\00010
y no se como,,,,
alguien sabe como???
Gracias.
Responder Con Cita
  #2  
Antiguo 24-08-2007
Avatar de AntonioG
AntonioG AntonioG is offline
Miembro
 
Registrado: jun 2007
Posts: 17
Poder: 0
AntonioG Va por buen camino
Hola,

Debes usar los metodos Pos y Substring del AnsiString.

En tu ejemplo, si siempre hay cuatro cadenas separadas por \\, entonces puedes hacer esto para obtenerr las cuatro cadenas:
Código Delphi [-]
AnsiString s,s1,s2,s3,s4,st;
int i;
s="juanerasmo\\trabajo\\00010\\00111"; //<--aqui esta la cadena que quieres separar
i=s.Pos("\\");
s1=s.SubString(1,i-1);
st=s.SubString(i+1,s.Length()-i);//<--en st voy a ir guardando el resto de s que no he separado
i=st.Pos("\\");
s2=st.SubString(1,i-1);
st=st.SubString(i+1,s.Length()-(i+1));
i=st.Pos("\\");

s3=st.SubString(1,i-1);
st=st.SubString(i+1,s.Length()-(i+1));
s4=st;

en s1,s2,s3 y s4 quedan las cuatro partes de la cadena, s es donde esta la cadena de entrada y st es una cadena que se usa a manera de temporal.

Saludos
Responder Con Cita
  #3  
Antiguo 24-08-2007
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Muchas Gracias!!!

Muchas Gracias AntonioG!

Perfecto!

Estaba un poco confundido con lo que hacia, AnsiPos, Delete, y otras funciones con las que intente hacer esto,
pero tu lo hiciste de la forma mas inteligente! tienes la mejor solucion!

Gracias!
Responder Con Cita
  #4  
Antiguo 25-08-2007
Avatar de AntonioG
AntonioG AntonioG is offline
Miembro
 
Registrado: jun 2007
Posts: 17
Poder: 0
AntonioG Va por buen camino
Hola,

Por cierto que tengo mal el segundo parametro en estas lineas:
Código Delphi [-]
st=st.SubString(i+1,s.Length()-(i+1));

\menos en la priemra, pero no importo porque el numero era mas grande que lo que habia en al cadena.

Creo que deberia ir
Código Delphi [-]
st=st.SubString(i+1,st.Length()-i));
(la primera si estaba bien)

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
función split en delphi sergionr Varios 9 04-04-2013 17:47:03
Como Dividir en 2 Partes un Select ???? AGAG4 SQL 2 31-10-2006 00:29:05
Como calcular el resto de dividir un string numerico veronica Varios 3 26-09-2005 13:35:18
¿Como dividir un archivo en varios archivos? Raisen Varios 3 24-07-2004 03:16:28
Dividir base interbase en varios ficheros Eolo Firebird e Interbase 2 02-06-2004 06:05:57


La franja horaria es GMT +2. Ahora son las 12:27:55.


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