Errori, bug, domande - pagina 327

 
mrProF:
A colpo d'occhio, l'intero file è scritto su str...
Aggiungere il flag FILE_ANSI, dato che legge unicode di default:)
Inoltre, avrò 15 anni perché c'è una riga vuota alla fine.
Secondo la documentazione MQL5, la funzione FileReadString "legge una stringa dal file con la posizione corrente del puntatore del file ... Quando si legge da un file csv, la stringa sarà letta dalla posizione corrente al separatore più vicino o al segno della fine della stringa di testo". Quindi non sono d'accordo sul fatto che "tutto il file è scritto". Ho provato a usare FILE_ANSI, ma non funziona. Per quanto riguarda la linea vuota alla fine: non capisco bene, chiarisci di quale linea stai parlando.
 
DenisR:
Secondo la documentazione MQL5, la funzione FileReadString "legge una stringa dalla posizione corrente del puntatore del file ... Quando si legge da un file csv, la stringa sarà letta dalla posizione corrente al separatore più vicino o alla fine del segno di stringa di testo". Quindi non sono d'accordo sul fatto che "tutto il file è scritto". Ho provato a usare FILE_ANSI, ma non funziona. Per quanto riguarda la stringa vuota alla fine: non capisco bene, chiarisci di quale stringa stai parlando.

È se troverà una virgola correttamente, se la codifica non corrisponde, potrebbe non vederla.
Lo guarderò con il debugger.
Ho copiato il tuo codice, ho aggiunto la bandiera - tutto è ok.
 
E così, ecco i risultati, come ho detto.
Senza ansi legge abracadabra e senza vedere le virgole, vola alla fine del file.
Con l'ansi, si legge bene.
Vedere gli allegati.
File:
 
-Alexey-:
In MetaEditor, il pulsante "List of functions in file" apre la lista. Se lo scorro verso il basso, finisce a P, e non si muove oltre (il triangolo nero rivolto verso il basso diventa inattivo), anche se ci sono classi alla lettera R. Per favore, correggetelo.

Sono necessari più dettagli.

Costruzione, file, risoluzione...

Ho appena provato sul file ChartObject.mqh - scorre su e giù.

 
mrProF:
E così, ecco i risultati, come ho detto.
Senza ansi legge abracadabra e senza vedere le virgole, vola alla fine del file.
Con l'ansi, si legge bene.
Vedere gli allegati.
Da ansi l'ho letto (5 505 1009), cioè i è ora 5 invece di 0 per qualche motivo, la dimensione del file è 505 come prima e FileTell è 1009 come prima. In MT4 lo stesso script recita (15 505 505).
 
alexvd:

Sono necessari più dettagli.

Costruzione, file, risoluzione...

Ho appena provato sul file ChartObject.mqh - scorre su e giù.

Interesting:
E almeno la dimensione approssimativa della lista cosa? Forse c'è un limite alla dimensione della lista...

-Aleksey-

Esattamente 100 linee.


Interessante:

Sperimentato con una delle mie librerie (110 funzioni), visualizza da 100 a 106 nella lista (numero diverso per tutto il tempo, ma non 110).

Costruire l'ultimo, sembra essere un problema con un numero di righe superiore a 100. ChartObject.mqh ha solo 62 linee nella lista. Risoluzione 1680x1050. Windows7, lo schema dei caratteri è a caratteri ingranditi.

 
DenisR:
Da ansi l'ho letto (5 505 1009), cioè i è ora 5 invece di 0 per qualche motivo, la dimensione del file è 505 come prima e FileTell è 1009 come prima. In MT4 lo stesso script recita (15 505 505).
Hmm, il mio è 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;

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


Prova a fare il debug linea per linea se sai come farlo...

 
mrProF:
Hmm, ho 155091009.



Anche io avevo 15 505 1009 all'inizio, ma poi il terminale si è aggiornato all'ultima versione (408) ed è diventato 5 505 1009. Ma in ogni caso, il segno di fine file non può essere più grande della dimensione del file stesso. Questa è la mia principale preoccupazione al momento.
 
alexvd:

Servono più dettagli.

Costruzione, file, risoluzione...

Ho appena provato sul file ChartObject.mqh - scorre su e giù.

Builds 404 e 408, Win XP Prof SP3, 3.0 GHz CPU e 3.0 Gb RAM.

Ladimensione del carattere e le altre impostazioni (tranne il colore) sono standard.

Le azioni sono le seguenti:

1. Creare una libreria o qualsiasi altro modulo del programma;

2. Genera un insieme di procedure e funzioni che devono essere superiori a 100. Nel mio caso, erano 110 (stavo prendendo in giro la mia libreria di migrazione).

Più precisamente, le funzioni erano 110, e il modulo è uscito con la dimensione di circa 3310 linee.

3. Compilazione del modulo;

4. Stiamo cercando di esaminare l'elenco delle funzioni.

Nella lista ho visto da 100 a 106 funzioni (con ogni ricompilazione un diverso numero e composizione di funzioni). All'inizio sono stati visualizzati i nomi di 106 funzioni, poi il numero ha cominciato a diminuire.

Allo stesso tempo, tutte le 110 funzioni non sono mai state nella lista.

PS

Un'altra cosa strana - non so dopo quante funzioni (ma sicuramente meno di 50) le nuove funzioni hanno smesso di apparire nella lista dopo la prima compilazione, ho dovuto fare due o tre ricompilazioni.

Propongo o di cambiare l'ordine di formazione della lista, per esempio di assegnare le singole classi sotto forma di un menu di gruppo (con la visualizzazione della classe "ripiena" in una lista separata), o di organizzare un gestore separato, come quello di Delphi (la discussione di una tale richiesta è già stata sul forum).

 
-Alexey-:
alexvd:

Sono necessari più dettagli.

Costruzione, file, risoluzione...

Ho appena provato sul file ChartObject.mqh - scorre su e giù.

Bild ultimo, sembra essere un problema con il numero di linee superiore a 100. ChartObject.mqh ha solo 62 righe nella lista. Risoluzione 1680x1050. Windows7, lo schema dei caratteri è a caratteri ingranditi.

Sì, riprodotto.

Grazie, diamo un'occhiata.