Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 633

 
hoz:


Non. J'ai déjà cherché dans les dossiers du répertoire de mon terminal :

Il n'y a aucun nom de fichier nulle part :

Ce qui est ce que mon code dit qu'il devrait être.

cela signifie que les caractères/caractères du chemin complet + nom du fichier doivent maintenant être comptés. si plus de 255 - bonjour - rien ne se passera.... pas d'erreur - malheureusement, il est connu pour causer de la confusion du côté de l'utilisateur...

raccourcir le nom du fichier à "1" ou quelque chose d'unique et rechercher le disque en utilisant les outils intégrés de Windows...

Vous pouvez également créer manuellement un fichier dans le répertoire requis. S'il s'ouvre, cela signifie que nous allons rechercher une erreur dans le code.

 
barabashkakvn:
Pour éviter les problèmes avec MetaTrader4/MetaEditor4, définissez "Exécuter en tant qu'administrateur" dans les paramètres du terminal et du fichier de l'éditeur. Après cela, le MQL4.Cloud et les modèles dans le terminal commenceront à fonctionner correctement.


Merci. Je n'y ai pas pensé tout de suite :) Je vais essayer de le faire. Mais j'ai déjà remarqué que le "répertoire des programmes" est maintenant déplacé vers un chemin normal :

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

Comme avant. Bien que le "Dossier de données partagé" soit toujours là :

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


Merci. Je n'y ai pas pensé tout de suite :) Je vais essayer. Mais, à ce stade, je remarquerai déjà que le "Répertoire des programmes" s'est déplacé directement vers le chemin normal :

Comme avant. Le "dossier de données partagées" est toujours là, cependant :

um,de admin.... C'est obligé ? Les gens ne savent pas comment faire un pare-feu. ....

Je me demandais comment faire pour restreindre les permissions...

Je l'ai eu - installez-le en tant que "non-administrateur".

Merci ! !!! )))

 
_new-rena:

hmm, de admin.... Tu es obligé de le faire ? Les gens ne savent pas comment défaire un mur.....

Je me demandais comment faire pour restreindre les droits de l'utilisateur méta...

Je l'ai eu - installez-le en tant que "non-administrateur".

Merci ! !!! )))


Dès que je suis passé à Windows 8.1, j'ai dû inventer cette méthode :)
 

En fin de compte, il n'y avait pas de dossier et il n'y en a pas. Voici le code actuel de la 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 );
}

L'appeler depuis le conseiller expert. La classe fonctionne. La fonctionfPrint, qui fonctionne en bas (imprime à l'écran ce dont vous avez besoin), je l'ai commentée, car je teste exactement la création et l'écriture dans le fichier. J'ai limité le nom long du fichier à un seul "T".

Il n'y a pas de dossier. Voici les résultats de la recherche :


 
hoz:

En fin de compte, il n'y avait pas de dossier et il n'y en a pas. Voici le code actuel de la classe :

L'appeler depuis le conseiller expert. La classe fonctionne. La fonctionfPrint, qui fonctionne en bas (imprime à l'écran ce dont vous avez besoin), je l'ai commentée, car je teste exactement la création et l'écriture dans le fichier. J'ai limité le nom long du fichier à un seul "T".

Il n'y a pas de dossier. Voici une recherche qui est apparue :

                  

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);

essayez ceci, (je n'aime pas comprendre le code des autres)

Et autre chose, le marché reste en place, les ticks ne viennent pas, start() ne fonctionne pas. Mettez le code dans init() et compilez ... et vous serez heureux )))) !

//N'oubliez pas de le transférer à start() ou à ce qu'il est maintenant...

 

Comment utiliser l'instruction return pour retourner des STRUCTURES ?

La fonction utilisateur peut-elle retourner des structures, ou est-elle utilisée ailleurs ?

Une structure peut-elle contenir des opérateurs ou s'agit-il simplement d'un ensemble de variables ?

Et en général, comment sont-elles traitées ? (en russe uniquement, et sans référence à des programmes de quelqu'un de très long, vous pouvez utiliser des exemples plus simples, comme c=a+b).

 
Tara, je l'ai lu. Trois fois :-)) Je m'interroge sur l'opérateur de retour. Il semble que j'allais "décharger" quelque chose là pour ne pas réécrire la même chose 5 fois. Ou est-il possible d'y déclarer quelque chose de public/protégé et de ne pas me déranger ?
 

Ici

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

il est dit :

" Vous pouvez renvoyer des types simples, des structures simples et des pointeurs vers des objets . Les tableaux, les objets de classe ou les variables de type structure complexe ne peuvent pas être retournés à l'aide de l'opérateur de retour.

"