Errores, fallos, preguntas - página 327

 
mrProF:
A simple vista, todo el archivo se escribe en str...
Añade la bandera FILE_ANSI, ya que por defecto lee unicode:)
Además, seré 15 ya que hay una línea en blanco al final.
Según la documentación de MQL5, la función FileReadString "lee una cadena del archivo con la posición actual del puntero del archivo ... Al leer desde un archivo csv, la cadena se leerá desde la posición actual hasta el separador más cercano o hasta el signo del final de la cadena de texto". Así que no estoy de acuerdo con que "se escriba todo el archivo". He intentado utilizar FILE_ANSI, pero no funciona. Sobre la línea vacía del final: no entiendo muy bien, explica a qué línea te refieres.
 
DenisR:
Según la documentación de MQL5, la función FileReadString "lee una cadena desde la posición actual del puntero del archivo... Al leer desde un archivo csv, la cadena se leerá desde la posición actual hasta el separador más cercano o hasta el final del signo de la cadena de texto". Así que no estoy de acuerdo con que "se escriba todo el archivo". He intentado utilizar FILE_ANSI, pero no funciona. Respecto a la cadena vacía del final: no entiendo bien, aclara de qué cadena hablas.

Es si encontrará una coma correctamente, si la codificación no coincide, puede que no la vea.
Lo miraré con el depurador.
He copiado tu código, he añadido la bandera y todo está bien.
 
Y así, aquí están los resultados, como he dicho.
Sin ansi lee abracadabra y sin ver comas, vuela hasta el final del archivo.
Con ansi, se lee bien.
Vea los archivos adjuntos.
Archivos adjuntos:
 
-Alexey-:
En el MetaEditor, el botón "Lista de funciones en el archivo" abre la lista. Si lo desplazo hacia abajo, termina en la P, y no se mueve más (el triángulo negro hacia abajo se vuelve inactivo), aunque hay clases hasta la letra R. Por favor, arréglalo.

Necesito más detalles.

Construir, archivar, resolver...

Acabo de probarlo en el archivo ChartObject.mqh - se desplaza hacia arriba y hacia abajo.

 
mrProF:
Y así, aquí están los resultados, como he dicho.
Sin ansi lee abracadabra y sin ver comas, vuela hasta el final del archivo.
Con ansi, se lee bien.
Vea los archivos adjuntos.
Desde ansi lo tengo leyendo (5 505 1009), es decir, i es ahora 5 en lugar de 0 por alguna razón, el tamaño del archivo es 505 como antes y FileTell es 1009 como antes. En MT4 el mismo script dice (15 505 505).
 
alexvd:

Necesito más detalles.

Construir, archivar, resolver...

Acabo de probarlo en el archivo ChartObject.mqh - se desplaza hacia arriba y hacia abajo.

Interesting:
Y al menos el tamaño aproximado de la lista ¿qué? Tal vez haya un límite en el tamaño de la lista...

-Aleksey-

Exactamente 100 líneas.


Interesante:

Experimenté con una de mis bibliotecas (110 funciones), muestra del 100 al 106 en la lista (un número diferente todo el tiempo, pero no 110).

Construir el último, parece ser un problema con el número de filas mayor de 100. ChartObject.mqh tiene sólo 62 filas en la lista. Resolución 1680x1050. Windows7, el esquema de fuentes es de fuentes ampliadas.

 
DenisR:
Desde ansi lo tengo leyendo (5 505 1009), es decir, i es ahora 5 en lugar de 0 por alguna razón, el tamaño del archivo es 505 como antes y FileTell es 1009 como antes. En MT4 el mismo script dice (15 505 505).
El mío es 155091009.


//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+


void OnStart()
  {int handle;
   ulong i, size;
   double _Ask, _Bid;
   string str;
      
   handle = FileOpen("test.csv",FILE_CSV|FILE_READ|FILE_ANSI,',');
   
   if (handle != INVALID_HANDLE)
     {
      size = FileSize(handle);
      
      for (i = 0; i < size; i++)
        {
         str = FileReadString(handle);
         _Ask = FileReadNumber(handle);
         _Bid = FileReadNumber(handle);
        
         if (FileIsEnding(handle))
           {
            Print(i," ",size," ",FileTell(handle));
            break;
           }
        }
     }   
      
   FileClose(handle);

   return;

  }
//+------------------------------------------------------------------+


Intenta depurar línea por línea si sabes cómo...

 
mrProF:
Hmm, tengo 155091009.



Yo también tenía 15 505 1009 al principio, pero luego el terminal se actualizó a la última versión (408) y se convirtió en 5 505 1009. Pero en cualquier caso, el signo de fin de archivo no puede ser mayor que el tamaño del propio archivo. Esa es mi principal preocupación en este momento.
 
alexvd:

Se necesitan más detalles.

Construir, archivar, resolver...

Acabo de probarlo en el archivo ChartObject.mqh - se desplaza hacia arriba y hacia abajo.

Compuestos 404 y 408, Win XP Prof SP3, CPU de 3,0 GHz y 3,0 Gb de RAM.

Eltamaño de la letra y otros ajustes (excepto el color) son estándar.

Las acciones son las siguientes:

1. Crear una biblioteca o cualquier otro módulo del programa;

2. Generar un conjunto de procedimientos y funciones que debe superar los 100. En mi caso, fueron 110 (estaba burlando mi biblioteca de migración).

En concreto, las funciones eran 110 y el módulo tenía un tamaño de unas 3.310 líneas.

3. Compilación del módulo;

4. Estamos tratando de buscar en la lista de funciones.

En la lista he visto de 100 a 106 funciones (con cada recompilación un número y composición diferente de funciones). Al principio se mostraron los nombres de 106 funciones, y luego el número empezó a disminuir.

Al mismo tiempo, las 110 funciones nunca estuvieron en la lista.

PS

Otra cosa extraña - no sé después de cuántas funciones (pero definitivamente menos de 50) dejaron de aparecer nuevas funciones en la lista después de la primera compilación, tuve que hacer dos o tres recompilaciones.

Propongo o bien cambiar el orden de formación de la lista, por ejemplo, para asignar las clases individuales en la forma de un menú de grupo (con la visualización de la clase de "relleno" en una lista separada), u organizar un gestor independiente, como el de Delphi (la discusión de tal solicitud ya ha sido en el foro).

 
-Alexey-:
alexvd:

Se necesitan más detalles.

Construir, archivar, resolver...

Acabo de probarlo en el archivo ChartObject.mqh - se desplaza hacia arriba y hacia abajo.

Bild último, parece ser un problema con el número de líneas mayores de 100. ChartObject.mqh sólo tiene 62 filas en la lista. Resolución 1680x1050. Windows7, el esquema de fuentes es de fuentes ampliadas.

Sí, reproducido.

Gracias, vamos a echar un vistazo.