[SOLUCIONADO] VB Split

Iniciado por Miseryk, 23 Enero 2012, 04:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Miseryk

 Hola, estaba buscando informacion de como lograr el split de vb6 en c++, he encontrado varios codigos e inclusive he hecho 1, pero funciona con char y cuando lo intento hacer con string (el delimitador) me retorna cualquier cosa.
Lo que quiero lograr es:

Código (vb) [Seleccionar]

var = Split("Texto /- de /- prueba /--", "/-")


Lo cual retornaria dentro de la variable ( var(3) )
"Texto "
" de "
" prueba "
"-"

Cualquier ayuda o aporte seria de gran ayuda, mientras tanto sigo tratando de hacerlo o encontrar inforamcion al respecto, desde ya muchas gracias.

PD: Utilizo VS 2010.

Edit:

O simplemente:

NewSplit(cadena, delim, index)

var = Split("Texto /- de /- prueba /--", "/-", 3) //que sería "-"
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!

bdoX

Si sabes programar en c++ te darás cuenta de que no cambia mucho el asunto.

Enlace

saludos!

BlackZeroX

#2
Si estas en .NET ve a la sección correspondiente...
Aun asi en .NET (VS 2010) por ejemplo en C++/CLI que es el que manejo en VS 2010...

Código (csharp) [Seleccionar]

int i = 0;
String^ sMsg = L" Hola Mundo Infra ";
array<String^>^ sDelimiter = {L" "}; // Solo separamos "sMsg" por espacios...
array<String^>^ sWords;
sWords = sMsg->Split(sDelimiter, StringSplitOptions::None);
for (i = 0; i < sWords->Length; ++i)
Windows::Forms::MessageBox::Show(sWords[i]);


Lee esta liga: http://msdn.microsoft.com/en-us/library/st9zk29t.aspx

NOTA: Si quieres una funcion split para C/C++ avisame que tengo por hay una que me arme.

Dulces Lunas!¡.
The Dark Shadow is my passion.

Miseryk

SOLUCIONADO

Pude encontrar algo y modificarlo:

Código (cpp) [Seleccionar]

string M_Split2(const string& s, const string& c, int index)
{
string::size_type i = 0;
string::size_type j = s.find(c);

if (j == 4294967295)
{
return "<ERROR>";
}

vector<string> v;

while (j != string::npos)
{
v.push_back(s.substr(i, j-i));

i = ++j + c.length() - 1; //Sumamos el length de lo que hay que buscar, y le restamos 1
j = s.find(c, j);
if (j == string::npos)
{
v.push_back(s.substr(i, s.length( )));
}
}

return v[index];
}
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!