Descargar MetaTrader 5

StringSplit

Obtiene las subcadenas desde la cadena especificada según el separador establecido y devuelve el número de subcadenas obtenidas.

int  StringSplit(
   const string   string_value,       // cadena para buscar subcadenas
   const ushort   separator,          // separador usando el cual se realizará la búsqueda de subcadenas en la cadena
   string         & result[]          // array pasado por referencia para obtener las subcadenas encontradas
   );

Parámetros

string_value

[in]  La cadena desde la cual hay que obtener las subcadenas. La cadena en sí no se cambia.

pos

[in]  Código del símbolo del separador. Para obtener el código, se puede usar la función StringGetCharacter().

result[]

[out]   Un array de cadenas en el que se colocan las subcadenas obtenidas.

Valor devuelto

Número de cadenas obtenidas en el array result[]. Si en la cadena pasada no se ha encontrado el separador, entonces en el array se colocará sólo una cadena fuente.

Si la cadena string_value está vacía o NULL, la función devolverá cero. En caso del error la función devolverá -1. Para obtener el código del error, hay que llamar a la función GetLastError().

Ejemplo:

string to_split="_vida_es_bella_";// cadena que hay que dividir en subcadenas
   string sep="_";                // separador en forma de un símbolo
   ushort u_sep;                  // código del separador
   string result[];               // array para obtener cadenas
   //--- obtenemos el código del separador
   u_sep=StringGetCharacter(sep,0);
   //--- dividimos la cadena en subcadenas
   int k=StringSplit(to_split,u_sep,result);
   //--- Mostramos el comentario 
   PrintFormat("Se ha obtenido cadenas: %d. Se ha utilizado el separador '%s' con el código %d",k,sep,u_sep);
   //--- ahora visualizaremos todas las cadenas obtenidas
   if(k>0)
     {
      for(int i=0;i<k;i++)
        {
         PrintFormat("result[%d]=\"%s\"",i,result[i]);
        }
     }

Véase también

StringReplace(), StringSubstr(), StringConcatenate()


Actualizado: 2015.12.03