Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 633

 
hoz:


No. Ho già cercato nelle cartelle della mia directory del terminale:

Non c'è un nome di file da nessuna parte:

Che è quello che il mio codice dice che dovrebbe essere.

significa che i caratteri/caratteri del percorso completo+nome del file dovrebbero ora essere contati. se più di 255 - ciao - non succederà nulla.... nessun errore - sfortunatamente, si sa che causa confusione sul lato utente...

accorciare il nome del file a "1" o qualcosa di unico e cercare il disco con gli strumenti integrati di Windows...

Potete anche creare a mano un file nella directory richiesta. Se si apre, significa che cercheremo un errore nel codice.

 
barabashkakvn:
Per evitare problemi con MetaTrader4/MetaEditor4, impostare "Esegui come amministratore" nelle impostazioni del terminale e del file editor. Dopo di che il MQL4.Cloud e i modelli nel terminale inizieranno a funzionare correttamente.


Grazie. In qualche modo non ci ho pensato all'inizio :) Cercherò di farlo. Ma ho già notato che la "directory del programma" è ora spostata in un percorso normale:

C:\Program Files (x86)\Имя терминала\

Come prima. Anche se la "Cartella dati condivisa" è ancora qui:

C:\Users\hoz\AppData\Roaming\MetaQuotes\Terminal\Common
 
hoz:


Grazie. In qualche modo non ci ho pensato subito :) Ci proverò. Ma, a questo punto, noterò già che la "Program Directory" si è spostata direttamente nel percorso normale:

Come prima. La "cartella dati condivisa" è ancora qui, però:

um, da admin.... Devi proprio? La gente non sa come fare il firewall....

Mi chiedevo come fare per limitare i permessi...

fondamentalmente ce l'ho: installalo come "non amministratore".

Grazie !!!! )))

 
_new-rena:

hmm, da admin.... Devi proprio? La gente non sa come defaerwall....

Mi chiedevo come fare per limitare i diritti del meta utente...

fondamentalmente ce l'ho: installalo come "non amministratore".

Grazie !!!! )))


Appena sono passato a Windows 8.1 ho dovuto inventare questo modo :)
 

Alla fine, non c'era e non c'è nessun file. Ecco il codice attuale della classe:

// 1.1 Пишим Log-файл. ====================================================================================================================
CLogging::fWriteLog( string  fs_Txt,                           // Данные, которые требуется записать в log-файл
                      bool   fb_PrintPermission = true,        // Флаг печати комментариев
                      bool   fb_CommentPermission = true )     // Флаг показа комментариев на графике
{
   static datetime ldt_NewDayOpen = 0;
   static string   ls_FileName = "";
   datetime        ldt_CurrDayOpen = iTime( Symbol(), NULL, PERIOD_D1 );
   //---- Имя лог файла определяем один раз в сутки
   if ( ldt_NewDayOpen != ldt_CurrDayOpen )
   {
      // ls_FileName = StringConcatenate( WindowExpertName(), "_", Symbol(), "_", Period(), "-", Month(), "-", Day(), ".log" );
      ls_FileName = StringConcatenate( "T" );
      ldt_NewDayOpen = ldt_CurrDayOpen;
   }
   int handle = FileOpen( ls_FileName, FILE_READ|FILE_WRITE|FILE_CSV, "/t" );
   
   FileSeek( handle, 0, SEEK_END );
   FileWrite( handle, StringConcatenate(TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS), ": ", fs_Txt) );
   FileClose( handle );
   
//   fPrint( fs_Txt, fb_PrintPermission, fb_CommentPermission );
}

Chiamandolo dall'Expert Advisor. La classe sta lavorando. La funzionefPrint, che funziona in basso (stampa sullo schermo ciò che serve), l'ho commentata, perché sto testando esattamente la creazione e la scrittura sul file. Ho limitato il nome del file lungo a una "T".

Non c'è nessun file. Ecco il risultato della ricerca:


 
hoz:

Alla fine, non c'era e non c'è nessun file. Ecco il codice attuale della classe:

Chiamandolo dall'Expert Advisor. La classe funziona. La funzionefPrint, che funziona in basso (stampa sullo schermo ciò che serve), l'ho commentata, perché sto testando esattamente la creazione e la scrittura sul file. Ho limitato il nome del file lungo a una "T".

Non c'è nessun file. Ecco una ricerca che è venuta fuori:

                  

int handle=FileOpen(Symbol()+".csv",FILE_READ|FILE_WRITE|FILE_CSV);
if(handle>0)
{                  
FileSeek(handle,0,SEEK_END);
double BID=MarketInfo(Symbol(),MODE_BID);
FileWrite(handle,DoubleToString(BID,4));
}
FileClose(handle);

prova questo, (non mi piace capire il codice degli altri)

E un'altra cosa, il mercato si ferma, i tick non arrivano, start() non funziona. Metti il codice in init() e compila ... e sarai felice ))) !

//Non dimenticare di trasferirlo a start() o qualunque cosa sia ora...

 

Come si usa l 'operatore return per restituire STRUTTURE?

La funzione utente può restituire strutture o viene usata altrove?

Una struttura può contenere operatori o è solo un insieme di variabili?

E in generale, come vengono gestiti? (solo in russo e senza riferimenti ai programmi di qualcuno lunghi un miglio, si possono usare esempi più semplici, come c=a+b).

 
Tara, l'ho letto. Tre volte:-)) Sto chiedendo dell'operatore di ritorno. Sembra che stavo per "scaricare" qualcosa lì per non riscrivere la stessa cosa 5 volte. O è possibile dichiarare qualcosa di pubblico/protetto lì e non darmi fastidio?
 

Qui

https://docs.mql4.com/ru/basis/operators/return

c'è scritto:

"Potete restituire tipi semplici, strutture semplici e puntatori a oggetti . Gli array, gli oggetti di classe o le variabili di tipo struttura complessa non possono essere restituiti con l'operatore return.

"