[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 471

 
Axmed писал(а) >>


CSV - Comma Separated Values (valeurs séparées par des virgules ). Le "," est le délimiteur par défaut. La séparation avec " ;" est utilisée moins souvent, et je ne suis pas sûr qu'elle soit supportée dans MQL4.


int FileOpen( string filename, int mode, int delimiter=';')
Ouvre le fichier pour l'entrée et/ou la sortie. Renvoie le descripteur de fichier du fichier ouvert ou -1 en cas d'échec. Appelez GetLastError() pour obtenir plus d'informations sur l'erreur.
Remarque : les fichiers ne peuvent être ouverts que dans le dossier terminal_directory\experts\files(terminal_directory\tester\files en cas de test expert) ou ses sous-dossiers.
Les modes FILE_BIN et FILE_CSV ne peuvent pas être utilisés simultanément.
Si FILE_WRITE n'est pas combiné avec FILE_READ, un fichier de longueur nulle sera ouvert. Même s'il y avait des données dans le fichier avant son ouverture, elles seront détruites. Si des données doivent être ajoutées à un fichier existant, celui-ci doit être ouvert en utilisant la combinaison FILE_READ | FILE_WRITE.
Si FILE_READ n'est pas combiné avec FILE_WRITE, le fichier ne sera ouvert que s'il existe déjà. Si le fichier n'existe pas, il peut être créé en utilisant FILE_WRITE.
Il n'est pas possible d'ouvrir plus de 32 fichiers en même temps dans un seul exécutable. Les descripteurs des fichiers ouverts dans un module ne peuvent pas être transférés vers d'autres modules (bibliothèques).
Paramètres :
nom de fichier - Nom du fichier - nom du fichier.
mode - Méthode d'ouverture. Il peut s'agir d'une valeur unique ou d'une combinaison de valeurs : FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
délimiteur - Un caractère de délimitation pour les fichiers csv. Par défaut, le caractère ';' est appliqué.
Exemple :
 int handle ; handle=FileOpen("mesdonnées.csv",FILE_CSV|FILE_READ,';') ; if(handle<1) { Print("Le fichier mesdonnées.dat n'a pas été détecté, dernière erreur ", GetLastError()) ; return(false) ; }.

Vous devriez également lire l'aide.
 
Axmed >>:


Что конкретно Вам не понравилось в том что я пишу?..

C'est tout faux.
Le " ;" est le délimiteur par défaut.
FileReadString - ne lit pas la chaîne entière, mais de la position actuelle du pointeur dans le fichier jusqu'au prochain séparateur.

 

Bonjour, pourriez-vous me dire comment appeler la variable requise à partir d'un indicateur personnalisé? J'ai essayé GlobalVariableSet() / GlobalVariableGet() - cela fonctionne à partir d'un autre EA, mais pas à partir d'un indicateur. Merci d'avance.

 
kara100 писал(а) >>

Bonjour, pourriez-vous me dire comment appeler la variable requise à partir d'un indicateur personnalisé ? J'ai essayé GlobalVariableSet() / GlobalVariableGet() - cela fonctionne à partir d'un autre EA, mais pas à partir d'un indicateur. Merci d'avance...


Quelle variable voulez-vous obtenir et à partir de quel indicateur ?
 

Prix de +MP (ligne 228) - J'ai besoin de valeurs de niveau (prix)

Dossiers :
ymp_1.mq4  6 kb
 
kara100 писал(а) >>

Prix de +MP (ligne 228) - J'ai besoin des niveaux de valeurs (prix)


essayez de déplacer la variable prise au niveau global, et placez la chaîne GlobalVariableSet("55", prise) ; au début de la fonction start() et de l'autre programme get double x=GlobalVariableGet("55") ;

 
Techno писал(а) >>


essayez de déplacer la variable prise au niveau global, et placez la chaîne GlobalVariableSet("55", prise) ; au début de la fonction start() et depuis l'autre programme obtenez le double x=GlobalVariableGet("55") ;


J'ai essayé... Il écrit que la variable globale n'est pas décrite, c'est-à-dire que les variables globales ne sortent pas de l'indicateur... >> Je vais réessayer.

 
kara100 писал(а) >>


Je crois que j'ai essayé... il est dit qu'aucune variable globale n'est décrite, c'est-à-dire qu'aucune variable globale ne sort de l'indicateur... >> Je vais réessayer.


Une fois que vous aurez réparé le code, postez-le ici.
 
Mes amis, merci beaucoup de votre réponse. clarification, comment convertir une chaîne de caractères en double ?
StrToDouble() ne fonctionne pas :(

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return; // Выход из start()
}
k=0;
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
ss1[k] = (FileReadString(Handle));
x1[k]=StrToDouble(ss1[k]);//
ss2[k] = (FileReadString(Handle));
rr1[k] = (FileReadString(Handle));
rr2[k] = (FileReadString(Handle));
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение
//-----------------------------------------------
Alert(" ", ss1[0], " ", ss2[0], " ", rr1[0], " ", rr2[0], " x1== ", x1[0] );

Les tableaux de chaînes sont remplis à partir du fichier normalement. Mais, j'ai besoin de convertir ces chaînes en double.
Je le fais :
x1[k]=StrToDouble(ss1[k]) ;
mais, lors de la sortie vers Alert, x1[0] = 0, ce qui est faux. c'est-à-dire qu'il y a une erreur dans la conversion de type quelque part...

Comment corriger cette situation ?
 
Morzh09 >>:

Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double?
StrToDouble() - не прокатывает :(
Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double.
делаю это:
x1[k]=StrToDouble(ss1[k]);
но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...

Как такую ситуацию исправить?

Pourriez-vous poster le script complet ? Je veux dire avec les déclarations de tableaux de variables, etc.

Raison: