Tipo string

El tipo string sirve para guardar las cadenas de caracteres. Una cadena de caracteres es una sucesión de caracteres en formato Unicode con el cero al final. A una variable string se le puede asignar una constante literal. Una constante literal es una sucesión de caracteres Unicode encerada entre comillas dobles: "Es una constante literal".

Para poder introducir una comilla doble (") dentro de la cadena hay que interponerle el signo de barra inversa (\). Cualquier constante de signo especial, si le interviene el signo de barra inversa (\), puede ser introducida en la cadena.

Ejemplos:

string svar="This is a character string";
string svar2=StringSubstr(svar,0,4);
Print("Símbolo de copyright\t\x00A9");
FileWrite(handle,"esta cadena contiene el símbolo de avance de línea \n");
string MT5path="C:\\Program Files\\MetaTrader 5";

 

Para hacer el código fuente más cómodo para leer, las cadenas constantes largas se puede dividir en partes sin la operación de adición. Durante el proceso de compilación, todas estas partes se unirán en una cadena larga:

//--- declararemos una cadena constante larga
   string HTML_head="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
                    " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
                    "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
                    "<head>\n"
                    "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"
                    "<title>Trade Operations Report</title>\n"
                    "</head>";
//--- mostraremos la cadena constante en el diario
   Print(HTML_head);
  }

Métodos incorporados del tipo string

Para trabajar con cadenas, podemos usar las funciones de cadena, las funciones de conversión y los métodos incorporados del tipo string que mostramos en el recuadro:

Método string

Análogo

Descripción

Constructor string(const int len)

 

Construye una cadena de la longitud indicada

string[] tanto para la lectura, como para la escritura. El índice debe encontrarse en los límites de BufferSize()

 

Proporciona acceso al elemento de cadena según el índice especificado

static string string.Init(const int len, const ushort character);

StringInit

Inicializa una cadena con los símbolos y el tamaño indicados

void string.Fill(const ushort character);

StringFill

Rellena una cadena con el símbolo indicado

int string.Len();

StringLen

Retorna el número de caracteres en una cadena

int string.BufferSize();

StringBufferLen

Retorna el tamaño de un búfer distribuido para una cadena

bool string.SetLen(const int new_len);

StringSetLength

Establece para  una cadena la longitud indicada en caracteres

bool string.Reserve(const int buffer_len);

StringReserve

Reserva en la memoria para una cadena un búfer del tamaño indicado

bool string.Add(const string substring);

StringAdd

Añade una subcadena especificada al final

int string.Concatenate(const scalar val1, const scalar val2...);

StringConcatenate

Forma una cadena que consta de los parámetros transmitidos

array string.Split(const ushort separator, const bool long_separator);

StringSplit

Retorna una matriz de cadenas según el separador indicado

int string.Compare(const string str, const bool case_sensivity);

StringCompare

Realiza una comparación con la cadena especificada y retorna 1 si la primera cadena es mayor que la segunda; 0 - si las cadenas son iguales; -1 (menos uno) - si la primera cadena es menor que la segunda

string string.Substr(const int start_pos, const int len);

StringSubstr

Extrae una subcadena de la posición indicada

int string.Find(const string substr, const int pos);

StringFind

Retorna el índice de la posición desde la que comienza la subcadena necesaria

void string.ToLower();

StringToLower

Pasa todos los caracteres a minúscula

void string.ToUpper();

StringToUpper

Pasa todos los caracteres a mayúscula

int string.TrimLeft();

StringTrimLeft

Elimina los espacios, así como el movimiento del carro y los caracteres de tabulación a la izquierda.

int string.TrimRight()

StringTrimRight

Elimina los espacios, así como el movimiento del carro y los caracteres de tabulación a la derecha.

void string.Double(const double var, const int digits=8);

DoubleToString

Convierte una cadena en un número del tipo double

void string.Enum(const enum value);

EnumToString

Convierte un valor de enumeración de cualquier tipo en una cadena

void string.Integer(const int value, const int str_len=0, const ushort fill=' ');

IntegerToString

Convierte una cadena en un número del tipo long

void string.CharArray(const uchar array[], const int start_pos=0, const int len=-1, const uint cp=CP_ACP);

CharArrayToString

Convierte parte de una matriz del tipo uchar en una cadena

void string.ShortArray(const ushort array[], const int start_pos=0, const int len=-1);

ShortArrayToString

Copia parte de una matriz del tipo ushort en una cadena

void string.Time(const datetime dt,const int mode=TIME_DATE|TIME_MINUTES);

 TimeToString

Convierte un valor datetime en una cadena del formato "yyyy.mm.dd hh:mi".

void string.Format(const string format_str);

StringFormat

Formatea los parámetros obtenidos en una cadena

Véase también

Conversión de tipos, Funciones de cadenas de caracteres, FileOpen, FileReadString, FileWriteString