wxArrayString explode(char delimiter, wxString mStr)
{
wxArrayString ret;
wxString getStr;
for( unsigned int i = 0 ; i < mStr.Length() ; i++ )
{
if( mStr.GetChar(i) == delimiter)
{
ret.Add( getStr );
getStr.Clear();
}
else
{
getStr.Append(mStr.GetChar(i));
if( i == ( mStr.Length() - 1 ) ) ret.Add( getStr );
}
}
return ret;
}
Para usarmos a mesma:
//Crio uma string contendo as substrings separadas por ';'
wxString mVal = wxT( "String 1;String 2;String 3;String 4" );
//Agora crio o wxArrayString para pegar cada uma delas
wxArrayString mgetVals = explode( ';' , mVal );
//Pego cada um dos valores
wxString valor1 = mgetVals.Item( 0 );
wxString valor2 = mgetVals.Item( 1 );
wxString valor3 = mgetVals.Item( 2 );
wxString valor4 = mgetVals.Item( 3 );
Essa função é muito útil para passarmos listas para um wxComboBox por exemplo.
Qualquer dúvida ou correção no código deixe nos comentários.
Até a próxima.