CSV - Valores separados por comas. El "," es el delimitador por defecto. La separación con ";" se utiliza con menos frecuencia, y no estoy seguro de que incluso se admita en MQL4.
int FileOpen(
string filename, int mode, int delimiter=';')
Abre el archivo para la entrada y/o salida. Devuelve el descriptor del archivo abierto o -1 en caso de fallo. Llame a GetLastError() para obtener más información sobre el error. Nota: los archivos sólo pueden abrirse en la carpetaterminal_directory\experts\files (terminal_directory\tester\files en caso de pruebas de expertos) o en sus subcarpetas. Los modos FILE_BIN y FILE_CSV no pueden utilizarse simultáneamente. Si FILE_WRITE no se combina con FILE_READ, se abrirá un archivo de longitud cero. Incluso si había datos en el archivo antes de que se abriera, se destruirán. Si hay que añadir datos a un archivo existente, hay que abrirlo con la combinación FILE_READ | FILE_WRITE. Si FILE_READ no se combina con FILE_WRITE, el archivo sólo se abrirá si ya existe. Si el archivo no existe, se puede crear con FILE_WRITE. No se pueden abrir más de 32 archivos al mismo tiempo dentro del mismo ejecutable. Los descriptores de los archivos abiertos en un módulo no pueden ser transferidos a otros módulos (bibliotecas).
Parámetros:
nombre de archivo
-
Filename - nombre del archivo.
modo
-
Método de apertura. Puede ser un solo valor o una combinación de valores: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
delimitador
-
Un carácter delimitador para los archivos csv. Por defecto se aplica el carácter ';'.
Ejemplo:
int handle; handle=FileOpen("mis_datos.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("Archivo mis_datos.dat no detectado, último error ", GetLastError()); return(false); }
Что конкретно Вам не понравилось в том что я пишу?..
Todo está mal. El ";" es el delimitador por defecto. FileReadString - no lee toda la cadena, sino desde la posición actual del puntero en el archivo hasta el siguiente separador.
Hola, ¿podríais decirme cómo llamar a la variable requerida desde un indicador personalizado? He probado con GlobalVariableSet() / GlobalVariableGet() - funciona desde otro EA, pero no desde un indicador. Gracias de antemano.
Hola, podríais decirme cómo llamar a la variable requerida desde un indicador personalizado, he probado con GlobalVariableSet() / GlobalVariableGet() - funciona desde otro EA, pero no desde un indicador. Gracias de antemano...
Precio de +MP (línea 228) - Necesito valores (precio) niveles
intente mover la variable prise al nivel global, y coloque la cadena GlobalVariableSet("55", prise); al principio de la función start() y desde el otro programa obtenga double x=GlobalVariableGet("55");
intente mover la variable prise a nivel global, y coloque la cadena GlobalVariableSet("55", prise); al principio de la función start() y desde el otro programa obtenga double x=GlobalVariableGet("55");
Lo he probado... Escribe, que la variable global no está descrita, es decir, las variables globales no salen del indicador... >> Lo intentaré de nuevo.
Las matrices de cadenas se llenan desde el archivo normalmente. Pero, necesito convertir estas cadenas en dobles. Yo lo hago: x1[k]=StrToDouble(ss1[k]); pero, cuando se envía a Alert, x1[0] = 0, lo cual es incorrecto. es decir, hay un error en la conversión de tipo en alguna parte...
Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double? StrToDouble() - не прокатывает :( Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double. делаю это: x1[k]=StrToDouble(ss1[k]); но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...
Как такую ситуацию исправить?
¿Podría publicar el script completo? Me refiero a las declaraciones de matrices de variables, etc.
CSV - Valores separados por comas. El "," es el delimitador por defecto. La separación con ";" se utiliza con menos frecuencia, y no estoy seguro de que incluso se admita en MQL4.
Nota: los archivos sólo pueden abrirse en la carpetaterminal_directory\experts\files (terminal_directory\tester\files en caso de pruebas de expertos) o en sus subcarpetas.
Los modos FILE_BIN y FILE_CSV no pueden utilizarse simultáneamente.
Si FILE_WRITE no se combina con FILE_READ, se abrirá un archivo de longitud cero. Incluso si había datos en el archivo antes de que se abriera, se destruirán. Si hay que añadir datos a un archivo existente, hay que abrirlo con la combinación FILE_READ | FILE_WRITE.
Si FILE_READ no se combina con FILE_WRITE, el archivo sólo se abrirá si ya existe. Si el archivo no existe, se puede crear con FILE_WRITE.
No se pueden abrir más de 32 archivos al mismo tiempo dentro del mismo ejecutable. Los descriptores de los archivos abiertos en un módulo no pueden ser transferidos a otros módulos (bibliotecas).
int handle; handle=FileOpen("mis_datos.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("Archivo mis_datos.dat no detectado, último error ", GetLastError()); return(false); }Что конкретно Вам не понравилось в том что я пишу?..
Todo está mal.
El ";" es el delimitador por defecto.
FileReadString - no lee toda la cadena, sino desde la posición actual del puntero en el archivo hasta el siguiente separador.
Hola, ¿podríais decirme cómo llamar a la variable requerida desde un indicador personalizado? He probado con GlobalVariableSet() / GlobalVariableGet() - funciona desde otro EA, pero no desde un indicador. Gracias de antemano.
Hola, podríais decirme cómo llamar a la variable requerida desde un indicador personalizado, he probado con GlobalVariableSet() / GlobalVariableGet() - funciona desde otro EA, pero no desde un indicador. Gracias de antemano...
¿Qué variable quiere obtener y de qué indicador?Precio de +MP (línea 228) - Necesito valores de nivel (de precio)
Precio de +MP (línea 228) - Necesito valores (precio) niveles
intente mover la variable prise al nivel global, y coloque la cadena GlobalVariableSet("55", prise); al principio de la función start() y desde el otro programa obtenga double x=GlobalVariableGet("55");
intente mover la variable prise a nivel global, y coloque la cadena GlobalVariableSet("55", prise); al principio de la función start() y desde el otro programa obtenga double x=GlobalVariableGet("55");
Lo he probado... Escribe, que la variable global no está descrita, es decir, las variables globales no salen del indicador... >> Lo intentaré de nuevo.
Creo que lo probé... dice que no se describe ninguna variable global, es decir, no salen variables globales del indicador... >> Lo intentaré de nuevo.
Una vez que arregles el código, publícalo aquí.StrToDouble() no funciona :(
Las matrices de cadenas se llenan desde el archivo normalmente. Pero, necesito convertir estas cadenas en dobles.
Yo lo hago:
x1[k]=StrToDouble(ss1[k]);
pero, cuando se envía a Alert, x1[0] = 0, lo cual es incorrecto. es decir, hay un error en la conversión de tipo en alguna parte...
¿Cómo arreglar esta situación?
Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double?
StrToDouble() - не прокатывает :(
Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double.
делаю это:
x1[k]=StrToDouble(ss1[k]);
но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...
Как такую ситуацию исправить?
¿Podría publicar el script completo? Me refiero a las declaraciones de matrices de variables, etc.