Errori, bug, domande - pagina 898

 

lazarev-d-m:

Yedelkin:

sergeev: il file ha delle linee?

FILE_LINE_END

Ottenere l'indicazione di finelinea

Ho più o meno capito, il terminale vede il file csv non come una tabella, ma come un normale file dove tutte le variabili sono allineate e separate da un delimitatore, e per orientarsi in esso come in una tabella, ho scritto un piccolo script di esempio per lavorare con csv come con una tabella, per quanto strano possa sembrare, oggi / domani lo butterò in CodeBase, penso che molti saranno interessanti

lazarev-d-m, il mio messaggio non è per te. È per Sergeyev personalmente.
 
Yedelkin:

FILE_LINE_END

Ottenere l'indicatore di finelinea

Non ti dico niente, sei già intelligente.

e capite che il file ha caratteri di controllo nella sua mappatura delle linee, in modo che alcuni visualizzatori del suo contenuto lo mostrino secondo le regole generalmente accettate.

Управляющие символы — Википедия
  • ru.wikipedia.org
Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие...
 
lazarev-d-m:

Ho più o meno capito, il terminale non vede il file csv come una tabella, ma come un file normale dove tutte le variabili sono allineate e separate da un separatore

Non vede solo i csv così, vede tutto come un file.
 

lazarev-d-m:

devi trovare un meccanismo per cercare le stringhe,

il file ha delle linee? come si segna una nuova linea? (alludendo a un simbolo speciale :)

Immaginate che il file sia un array unidimensionale di caratteri.

come trovate una "nuova linea" nell'array?

 

 

FILE_LINE_END

Ottenere il carattere di fine linea

sergeev: non ti dirò nulla. sei già abbastanza intelligente. capisci che un file ha caratteri di controllo nella sua rappresentazione lineare. per alcuni visualizzatori di visualizzare il suo contenuto secondo le regole accettate.
:) Supponiamo che le risposte alle domande "cos'è una nuova linea in un file? Un file ha delle linee? Li hai presi. La risposta non era attesa da te.
 
Yedelkin:
:) Supponiamo che le risposte alle domande "Cos'è una nuova linea nel file? Ci siamo capiti. Non è previsto che tu riceva una risposta.

è tutta una questione di concetti usati e della percezione di questi concetti.

Cos'è una"nuova linea" nel file? Questo è quello che sto cercando di scoprire da lazarev-d-m. Se aspetto una risposta, correggerò e spiegherò il concetto correttamente, se necessario. E poi mi dirigo verso la soluzione del problema.

E mentre non so cosa immagina lazarev-d-m quando chiede di una "newline", non posso dare una risposta su come trovarla. Conosce FileSeek e FileIsLineEnding e FileRead. Ma non sembra sapere a cosa servono.

È chiaro che nel suo caso si può trovare qualche carattere solo con la ricerca, ma se capisce che la nuova stringa è solo un carattere - non lo so.

 
sergeevвсе дело в Sto cercando di scoprire da lazarev-d-m cos'è una"nuova stringa" nel file. Se mi aspetto una risposta, correggerò e spiegherò correttamente il concetto. Nel frattempo, non so a cosa stia pensando lazarev-d-m quando chiede di una "newline". Conosce FileSeek e FileIsLineEnding e FileRead. Ma sembra che non sappia a cosa servono, è chiaro che nel suo caso si può trovare qualche personaggio solo cercando.

Il punto èche questo forum è un forum per la comunità MQL5. E MQL5 implica una nozione come "segno di fine linea del file":

FILE_LINE_END.

Ottenere le bandiere di fine linea

Pertanto, la domanda del signor Lazarev è assolutamente corretta. È assolutamente corretto all'interno della comunità MQL5.

 
Yedelkin:

Il punto èche questo forum è un forum per la comunità MQL5. E il linguaggio MQL5 implica una nozione come "segno di fine linea in un file":

Domanda: dimmi quali numeri si dividono per due?

La risposta è tutta.

Morale - non confondere la fine e quello che ti serve lazarev-d-m

 
sergeev: Domanda - ditemi, quali numeri sono divisibili per due? La risposta è tutta. Morale - non confondere la fine con il giusto lazarev-d-m
Sì, la risposta alla tua domanda "Un file ha delle stringhe? Ce l'hai già. Ora si confronta la fine e ciò che serve a Lazarev. :)
 
sergeev:

Domanda - potete dirmi quali numeri sono divisibili per due?

La risposta è tutta.

Morale - non confondere la fine e quello che ti serve lazarev-d-m

Capisco che ci sono modi per identificare una singola linea, ma nessun comando separato per accedervi, è necessario ricalcolare il numero di caratteri nei separatori di linea, per arrivare alla stringa giusta (se si conosce il "numero" di linee).

O la mia variante per scansionare il file linea per linea, che non è anche molto conveniente, soprattutto con i file di grandi dimensioni, dove ci possono essere centinaia di linee, e se improvvisamente incontrare questo nel tester, poi generalmente terribile.

Ecco come ho fatto, non funziona bene, lo sistemerò quando sarò libero

MqlDateTime mqldt;
string qwerty="EURUSD";
int filehandle;

void OnStart()
  {
   filehandle=FileOpen("News.csv",FILE_READ|FILE_CSV|FILE_ANSI,';');
   uint column1=FileReadInteger(filehandle);//Code
   string column2=FileReadString(filehandle);//Symbol
   uint column3=FileReadInteger(filehandle);//Year
   uint column4=FileReadInteger(filehandle);//Month
   uint column5=FileReadInteger(filehandle);//Day
   uint column6=FileReadInteger(filehandle);//Hour
   uint column7=FileReadInteger(filehandle);//Minute
   while(column2!=qwerty&&column3!=mqldt.year&&column4!=mqldt.mon&&column5!=mqldt.day&&column6!=mqldt.hour)
     {
   column1=FileReadString(filehandle);//Code
   column2=FileReadString(filehandle);//Symbol
   column3=FileReadInteger(filehandle);//Year
   column4=FileReadInteger(filehandle);//Month
   column5=FileReadInteger(filehandle);//Day
   column6=FileReadInteger(filehandle);//Hour
   column7=FileReadInteger(filehandle);//Minute
     }
   Alert("Искомое находится в ",column1,"-й строчке");
  }
Ora restituisce sempre la colonna1=Codice, mentre dovrebbe restituire il numero della linea, che corrisponde all'ora con l'ora corrente, penso che sia chiaro dal codice
Motivazione: