sexta-feira, 5 de julho de 2013

Função "explode" com wxWidgets

Criar uma função “explode” em wxWidgets é uma tarefa simples, graças a facilidade proporcionada pelo wxArrayString, ela pode ser implementada da seguinte maneira:




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.

0 comentários:

Postar um comentário