Descargar MetaTrader 5

FileReadString

Lee del archivo una cadena desde la posición actual del puntero de archivos.

string  FileReadString(
   int  file_handle,     // manejador del archivo
   int  length=-1        // longitud de la cadena
   );

Parámetros

file_handle

[in]  Descriptor de archivo devuelto por la función FileOpen().

length=-1

[in]  Número de caracteres para leer.

Valor devuelto

Cadena leída (string).

Nota

Cuando leemos de un archivo bin es obligatorio indicar la longitud de la cadena. Cuando leemos de un archivo txt no hace falta especificar la longitud de la cadena; la cadena será leída desde la posición actual hasta el salto de línea "\r\n". Cuando leemos de un archivo csv tampoco hace falta especificar la longitud de la cadena; la cadena será leída desde la posición actual hasta el separador más cercano o hasta el salto de línea.

Si el archivo está abierto con la bandera FILE_ANSI, la cadena leída se convierte a Unicode.

Ejemplo (se utiliza el archivo conseguido como resultado de trabajo del ejemplo para la función FileWriteInteger)

///--- mostramos la ventana de los parámetros de entrada al arrancar el script
#property script_show_inputs
//--- parámetros para la lectura de datos
input string InpFileName="Trend.bin"// nombre del archivo
input string InpDirectoryName="Data"// nombre de la carpeta
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- abrimos el archivo
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("El archivo %s está abierto para la lectura",InpFileName);
      PrintFormat("Ruta del archivo: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- variables auxiliares
      int    str_size;
      string str;
      //--- leemos los datos desde el archivo
      while(!FileIsEnding(file_handle))
        {
         //--- averiguamos cuántos símbolos han sido utilizados para la escritura del tiempo
         str_size=FileReadInteger(file_handle,INT_VALUE);
         //--- leemos la cadena
         str=FileReadString(file_handle,str_size);
         //--- imprimimos la cadena
         PrintFormat(str);
        }
      //--- cerramos el archivo
      FileClose(file_handle);
      PrintFormat("Datos leídos, archivo %s cerrado",InpFileName);
     }
   else
      PrintFormat("Fallo al abrir el archivo %s, Código del error = %d",InpFileName,GetLastError());
  }

Véase también

Tipo string, Conversión de datos, FileWriteInteger


Actualizado: 2015.12.03