[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 385

 
nadya:
Certo che può, se la vostra variabile è del tipo appropriato
Una cella. Ma così, solo con le costanti: "Gli array sono inizializzati con una sequenza unidimensionale di costanti elencate separate da virgole. La sequenza è circondata da parentesi graffe. "
 
kifa911:
Buon pomeriggio, ho una domanda sull'inizializzazione degli array. Nel tutorial è scritto che: Un array può essere inizializzato solo con costanti del tipo appropriato. Gli array monodimensionali e multidimensionali sono inizializzati con una sequenza unidimensionale di costanti elencate separate da virgole. La sequenza è circondata da parentesi graffe. In questo caso sono confuso dalla parola "costante". Non si può assegnare un valore a un certo indice di matrice tramite una variabile.

è possibile, ma non durante l'inizializzazione.

Cioè la situazione:

int aaa = 4;
int bbb[5] = {0, 1, 2, 3, 0};
bbb[4] = aaa;

consentito

E la situazione

int aaa = 4;
int bbb[5] = {0, 1, 2, 3, aaa};

causerà un errore

 
nadya:
Certo che può, se questa vostra variabile ha il tipo appropriato

Allora ecco una domanda. una funzione deve passare due array di dati per riferimento, per esempio:

void SomeFunction(int& firstmassive[][3],double& secondmassive[][3])

{

 int iCount=-1,

      ifirst,isecond,ithird;

 double dfirst,dsecond,dthird;

...

 iCount++;

  firstmassive[iCount][0]=ifirst;firstmassive[iCount][1]=isecond;firstmassive[iCount][2]=ithird;

  secondassive[iCount][0]=dfirst;secondmassive[iCount][1]=dsecond;secondmassive[iCount][2]=dthird;

  print("iCount= "+iCount+" firstmassive_2= "+firstmassive[iCount][1]+" isecond= "+isecond);

...

return(0);

}

Quando rilascio questa funzione per lavorare, la scheda "esperti" nei messaggi terminali come:

iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
Si scopre che nessun valore della variabile viene passato all'array, anche se quest'ultimo ha un valore. Cosa ho fatto di male?
 
artmedia70:

Il nome del file del plug-in è: GetExstremumZZZPrice.mqh?

Si trova nella cartella terminale Terminal_folder/experts/include?


Il nome è lo stesso, era nella cartella libraries, ora è nella cartella includ, ma il risultato è lo stesso
 
kifa911:

Allora ecco una domanda. una funzione deve passare due array di dati per riferimento, per esempio:

Quando rilascio questa funzione per lavorare, la scheda "esperti" nella termica mostra messaggi di questo tipo, ad esempio

Si scopre che nessun valore di variabile viene passato all'array, anche se quest'ultimo ha un valore. Cosa ho fatto di male?

Non vedo l'errore. forse qualcun altro può aiutarti
 
Di nuovo, per favore spiegate le operazioni sui file. Dopo aver scritto alcune informazioni in un file , è possibile rimuoverle parzialmente dal file? Diciamo che avete scritto alcune righe in un documento di testo e poi potete cancellare le righe non necessarie o correggerle usando le funzioni delle operazioni sui file?
 
fore-x:
Di nuovo, per favore spiegate le operazioni sui file. Dopo aver scritto alcune informazioni in un file, è possibile rimuoverle parzialmente dal file? Diciamo che avete scritto alcune righe in un documento di testo e poi potete cancellare le righe non necessarie o correggerle usando le funzioni delle operazioni sui file?
È possibile.
 
Zhunko:
È possibile.
  if(text != " ") 
    {
    handle = FileOpen(filename,FILE_CSV|FILE_READ|FILE_WRITE, ';'); //открыл файл
    FileSeek(handle,0,SEEK_SET );                               //переместил указатель   
    while(FileIsEnding(handle)==false)                              
      {
      pos = StringFind(FileReadString(handle),symb, 0);             //нашел нужную строку...  
      if(pos >= 0)break;                                   //...файловый указатель в конце строки
      if(FileIsEnding(handle)==true) break;                            
      }
                                 
      ?????????????????? //тут что делать, как удалить или перезаписать выбранную строку
    
    FileWrite(handle,text);     //записываем новую строку
    FileClose(handle);          //закрываем файл
    }  
Per favore, guidatemi. Cosa devo fare ora, arrivare all'inizio della linea? E poi?
 
kifa911:
Buon pomeriggio, ho una domanda sull'inizializzazione degli array. Nel tutorial è scritto che: Un array può essere inizializzato solo da costanti del tipo appropriato. Gli array monodimensionali e multidimensionali sono inizializzati con una sequenza unidimensionale di costanti elencate separate da virgole. La sequenza è circondata da parentesi graffe. In questo caso sono confuso dalla parola "costante". Non si può assegnare un valore a un certo indice di matrice tramite una variabile.

Quindi bisogna distinguere tra: inizializzare e assegnare.
 
Vinin:
E se si imposta la linea per ieri o domani?

Grazie per l'attenzione, ma non capisco la sua domanda. La linea può essere impostata per qualsiasi data, e quando il grafico la raggiunge, l'EA si attiva? O forse non capisco qualcosa, se non vi dispiace spiegarmelo.
Motivazione: