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

 
ALXIMIKS:

Si les données ont changé, nous devrions mettre le pointeur à l'endroit où nous allons l'écraser avec fileseek, l'écraser avec la méthode standard filewrite..., se souvenir de la fin du fichier et le couper avec la fonction WinApi

Ou bien, en utilisant la méthode standard, écrire la position à la fin du fichier, là où l'information utile se termine, et ensuite lire cette position. (Vous pouvez écrire la position dans un autre fichier).

Mais de toute façon, il vaut mieux le tailler, et il n'y a pas d'outil de taille standard ((

c'estZhunko12.09.2014 20:19#

Il serait intéressant de disposer des mêmes fonctions WinApi.

C'est triste, c'est si compliqué.

 
Existe-t-il un exemple simple d'écrasement d'une chaîne de caractères ?
 
VOLDEMAR:
Existe-t-il un exemple simple d'écrasement d'une chaîne de caractères ?
Comment ne pas apprécier l'exemple de l'aide ?
 
AlexeyVik:
Quel est le problème avec l'exemple dans l'aide ?
Soit c'est compliqué, soit ça ne marche pas...
 

Aidez à modifier le script pour transférer le rapport vers le graphique. Je n'arrive pas à trouver la raison pour laquelle ça ne rend pas...

Lien vers le codebase.

La version légèrement modifiée que j'ai dans le trailer. |

\ | /

\ /

\/

Dossiers :
 

int RegisterWindowMessageA (string param) ;

il y a probablement un problème avec ça, nous devrons y remédier.

 
Heroix:

Aidez à modifier le script pour transférer le rapport vers le graphique. Je n'arrive pas à trouver la raison pour laquelle ça ne rend pas...

Le lien ren voie à la base de code.

Version légèrement modifiée par moi dans le trailer.

1. Il n'y a pas de PostMessageA dans l'importation, mais il y en a un dans le code.

2. Le format a changé dans la communication avec l'api (voici un exemple de travailPavlick28.07.2014 17:24#)

 

Bonjour, veuillez m'aider. J'utilise un indicateur CCI avec une période 34 et une période 170. Je dois vérifier si le CCI 170 croise la ligne de zéro du CCI 34. En d'autres termes, je veux voir quand le CCI 34 franchit la ligne de zéro en premier, et le CCI 170 franchit la ligne de zéro après lui. A ce moment, le CCI 170 peut avoir n'importe quelle valeur, et les lignes zéro de ces indicateurs ne coïncident pas sur le graphique.

Comment dois-je m'y prendre ? Dois-je utiliser des opérateurs graphiques ? Lesquelles et comment ? Merci beaucoup d'avance.

 
VOLDEMAR:
Soit c'est compliqué, soit ça ne marche pas.

Quelle est la difficulté ? Mettre un pointeur de fichier au début de la chaîne ? Ou remplacer la lecture des lignes par l'écriture ?

Tiens, tu as un indice.

r772ra:

FileSeek() pour vous aider.

Récupérer de l'aide :

//--- откроем файл
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_TXT|InpEncodingType);
//////////////////////////////////

//--- получим позицию начала для каждой строки в файле
      GetStringPositions(file_handle,pos);
// Эту функцию возьми в справке.
///////////////////////////////////////

//--- сдвинем позицию на начало этой строки
      if(FileSeek(file_handle,pos[ind],SEEK_SET)==true)
// Здесь надо pos[ind] заменить на ArrayMaximum(). Это будет последняя строка.

////////////////////////////////////

//--- прочитаем и распечатаем строку с номером ind
         PrintFormat("Текст строки с номером %d: \"%s\"",ind,FileReadString(file_handle));
// А это замени на uint  FileWrite()
///////////////////

 
Zeta:

Bonjour, veuillez m'aider. J'utilise un indicateur CCI avec une période 34 et une période 170. Je dois vérifier si le CCI 170 croise la ligne de zéro du CCI 34. En d'autres termes, je veux suivre le moment 1.où le CCI 34 franchit la ligne de zéro d'abord, puis le CCI 170 franchit laligne de zéro. A ce stade, le CCI 170 peut avoir n'importe quelle valeur, les lignes zéro de ces indicateurs sur le graphique ne coïncident pas.

Comment dois-je m'y prendre ? 2. Dois-jeutiliser des opérateurs graphiques ? Lesquelles et comment ? Merci d'avance.


2. Pourquoi ?iCCI(......) ;

C'est une option :

1. Démarrer un compteur. Un ou deux sont facultatifs.

Ensuite, l'algorithme pour un compteur :

1. initialisation 0.

Déterminer quand le passage par zéro du CCI(34) se produit et lancer un compteur. Par exemple, si le croisement est UP, alors +1, si DN -1.

3. si le compteur = 0 - attendez la prochaine barre.

4. Si la valeur du compteur est différente de 0 - Vérifiez le franchissement du CCI(170).

4.1 S'il n'y a pas eu de croisement, augmenter la valeur du compteur UP/Diminuer la valeur du compteur DN.

4.1 Si UP - Vérifier la valeur du compteur : si elle est différente de zéro et inférieure à la valeur requise (par exemple, nous attendons un croisement du CCI(170) dans les 5 barres d'un croisement du CCI(34) - alors une valeur de 5 est requise).

4.1.2 Si toutes les conditions sont remplies sur la barre actuelle ou si le nombre de barres écoulées est supérieur au nombre prévu, nous remettons le compteur à zéro.

4.1.3 Si les conditions ne sont pas remplies - augmenter la valeur du compteur.

4.2 Si DN - de même, mais seulement pour les valeurs négatives.