Fonction - Méthode pour trier un tableau de structures. Prix 10$. - page 7

 
Artyom Trishkin:

1) Pour vous, il s'agit de quelques dizaines de lignes obscures.
Mais pour moi, cela représente des dizaines de jours de travail, entièrement consacrés à la localisation des problèmes détectés, à leur reproduction, à leur description, à la recherche de solutions de contournement, sans oublier les nouveaux tests lors de la publication d'une nouvelle version et le rapport, afin que rien ne soit perdu...


2) Sur le fait de demander des améliorations :

Bugs, bugs, questions

Sergey Dzyublik, 2019.05.23 13:52

Suggestions :
"Permettre à la fonction ArrayCopy de copier des classes et des structures "complexes", de manière similaire à la façon dont les structures fournissent une fonctionnalité de copie profonde pour tout type d'objet".


3) Sur le partage du travail que nous avons fait :

Bugs, bugs, questions

Sergey Dzyublik, 2017.11.05 13:08

Problème : il y a un an de freelancing, différentes astuces non standard avec WinApi etc... utile pour la communauté.
Mais je ne vois pas l'intérêt de passer du temps à les trouver, les traiter, les mettre dans kodobase - 0 profit.

Suggestion : fournir le bouton "Merci" dans kodobase, par lequel vous pouvez remercier l'auteur pour le code fourni.
L'argent va au compte MQL, à son tour MQ déduit un certain pourcentage pour le service fourni.

 
Sergey Dzyublik:

1) Pour vous, il s'agit de quelques dizaines de cordes obscures.
Mais pour moi - des dizaines de jours de travail, qui ont été entièrement consacrés à la localisation des problèmes détectés, leur reproduction, la description, la recherche de solutions de contournement, ainsi que n'oubliez pas le re-test après la sortie d'une nouvelle version et la création de rapports, ce qui ne serait pas perdu...


2) Sur le fait de demander des améliorations :


3) Sur le partage de votre travail :

  1. Je ne dirai pas incompréhensible, mais sans intérêt. Excusez-moi, mais qui vous oblige à faire ça ? Quelqu'un t'a ordonné de faire tout ça ? Ou par vous-même ? Si vous l'avez fait vous-même, de votre propre gré, alors pourquoi vous plaignez-vous - personne ne vous a forcé.
  2. C'est bien. Je l'ai vu. Parfois, les développeurs comprennent mieux pourquoi telle ou telle "amélioration" est interdite. Et cela se produit pour un certain nombre de raisons que l'"utilisateur" moyen ne peut pas deviner.
  3. Il est probablement plus logique qu'ils prennent la poussière sur une étagère, ils tomberont plus vite dans l'oubli. Et le nom est le même bénéfice.
    Quelque part ici sur le forum, vous avez déjà écrit "Think deeper".
 

Qui aurait pu en douter. Tout ce qui est inconfortable à lire est supprimé.

Seuls quelques privilégiés sont autorisés à s'exprimer. La justesse d'une déclaration est jugée par le modérateur en fonction de l'humeur et du temps.

Parlez à vous-mêmes.

 
Artyom Trishkin:
  1. Je ne dirai pas incompréhensible, mais sans intérêt. Excusez-moi, mais qui vous oblige à faire ça ? Quelqu'un t'a ordonné de faire tout ça ? Ou par vous-même ? Si vous l'avez fait vous-même, de votre propre gré, alors pourquoi vous plaignez-vous - personne ne vous a forcé.
  2. C'est bien. Je l'ai vu. Parfois, les développeurs comprennent mieux pourquoi telle ou telle "amélioration" est interdite. Et cela se produit pour un certain nombre de raisons que l'"utilisateur" moyen ne peut pas deviner.
  3. Le fait qu'ils prennent la poussière sur une étagère est probablement plus logique : ils tomberont plus vite dans l'oubli. Et le nom est le même bénéfice.
    Quelque part sur ce forum, vous avez déjà écrit "Think deeper".
  1. L'homme essaie de rendre ce monde meilleur et il y parvient, ce dont il est reconnaissant.
  2. -
  3. Honnêtement, si demain Sergey met dans kodobase des conteneurs normaux, avec un itérateur, avec une macro qui fournit une gamme basée pour la logique, quel pourcentage de la communauté locale le comprendra et l'appréciera ? Et le temps qu'il a tué dessus... C'est pourquoi de telles choses sont promues par pur enthousiasme, une cuillère à café par an. Et là, les développeurs devraient attirer les gens par un petit ou pas si petit kopeck, et alors les conteneurs normaux apparaîtront et beaucoup d'autres choses intéressantes....
 

Vladimir Simakov:

Honnêtement, si demain Sergey met dans kodobase des conteneurs normaux, avec un itérateur, avec une macro qui fournit une gamme basée pour la logique, quel pourcentage de la communauté locale le comprendra et l'appréciera ? Et le temps qu'il a tué dessus... C'est pourquoi de telles choses sont promues par pur enthousiasme, une cuillère à café par an. Et là, il faudrait que les développeurs attirent les gens avec un petit ou moins petit kopeck, et alors les conteneurs normaux apparaîtront et des choses beaucoup plus intéressantes se produiront....

tout est là et tout fonctionne - écrire un article et être récompensé, étonnamment, Metakvot est assez fidèle au sujet des articles

ou de quoi parlons-nous ? d'une explosion d'applaudissements ?

imho, la "normalité" d'une solution de programme est quelque chose qui ne peut pas être évalué, vous pouvez écrire sur la brièveté du code, la lisibilité, le code indien, g...ocode en essayant d'évaluer une création mais, imho, il y a un critère raisonnable pour l'évaluation - la pertinence, mais malheureusement, cette évaluation sera disponible après la publication.

Laissez-le publier gratuitement dans le KB ou écrire un article, "pas se montrer comme une fille".

 
Igor Makanu:

tout est là et tout fonctionne - écrire un article et être récompensé, étonnamment, Metacquotes est assez fidèle au sujet des articles

ou de quoi parlons-nous, d'une explosion d'applaudissements ?

imho, la "normalité" d'une solution de programme est quelque chose qui ne peut pas être évalué, vous pouvez écrire sur la brièveté du code, la lisibilité, le code indien, g...ocode en essayant d'évaluer une création, mais, imho, il y a un critère raisonnable pour l'évaluation - la pertinence, mais malheureusement, cette évaluation sera disponible après la publication.

Laissez-le publier gratuitement dans le KB ou écrire un article, "au lieu de se montrer comme une fille".

Vous devriez lire le fil de discussion depuis le début, il semble que vous jugez par les derniers messages écrits et non par Sergei.
 
Igor Makanu:

ou de quoi parlons-nous, d'une explosion d'applaudissements ?

Sur le fait que les personnes qui ont répondu sur le sujet et avec un code fonctionnel, ont été harcelées sur place.
Il a mentionné qu'il a passé beaucoup d'heures à écrire et à tester, et qu'il n'a donc pas sorti les peluches supplémentaires ? Eh bien, oui, c'est un radin, il devrait être banni en enfer.

En général, tout allait bien avec le sujet jusqu'à ce qu'un modérateur vienne donner son point de vue sur la situation.

ps : étrange, le deuxième message n'a pas été supprimé.

 

Je lis ce fil depuis le premier jour.

le problème est résolu, mais pas de la manière dont l'auteur du sujet peut utiliser son expérience

à propos du "squeeze the code" - c'est simple ici - vous partagez ou vous ne partagez pas.... , également un modérateur "go to freelance" - l'année dernière j'ai vu des problèmes de MQL5 dans le fil de discussion ))))

Si vous ne vous en souvenez pas, nous sommes en 2020, et 99% des solutions aux problèmes élémentaires sont disponibles gratuitement, alors que les gens viennent sur le forum pour gagner du temps ou obtenir les connaissances manquantes, mais pas pour des histoires édifiantes et éclairantes avec des enseignements moraux... Ce qui est ce que NOUS faisons maintenant))))

 

Malheureusement, même les méthodes suggérées par fxsaber ne fonctionnent plus.

Et je cherche des méthodes pour trier un tableau de structures. Quelqu'un a-t-il des variantes qui fonctionnent ?

 
Vladimir Pastushak:

Malheureusement, même les méthodes suggérées par fxsaber ne fonctionnent plus.

Et je cherche des méthodes pour trier un tableau de structures. Quelqu'un a-t-il des variantes qui fonctionnent ?

Personnellement, j'ai écrit moi-même une classe CStructWrapper, héritée de CObject (CMyObject est en fait la même chose, avec des champs de débogage supplémentaires), et pour le tri j'utilise une fonction standard.

template <typename T>
class CStructWrapper:public CMyObject
{
protected:
   T  m_tObject;

public:
   CStructWrapper() {};
   CStructWrapper(T & tObj) { m_tObject = tObj; };
   ~CStructWrapper() {};

   // Копирование
   T CopyFrom(const T &tObj) { m_tObject = tObj; return (m_tObject); };
   T operator=(const T &tObj) { return (CopyFrom(tObj)); };
   T CopyFrom(const CStructWrapper<T> &tWObj) { m_tObject = tWObj.GetCoreObject(); return (m_tObject); };
   T operator=(const CStructWrapper<T> &tWObj) { return (CopyFrom(tWObj)); };

   // Возврат объекта   
   T GetCoreObject() const { return(m_tObject); };
};


Si j'ai besoin d'un tableau de structures, je déclare une classe dérivée basée sur ce modèle. J'y déclare une fonction permettant de comparer les champs nécessaires de la structure, puis j'utilise une classe standard de tableau d'objets avec tri.

Les objets créés peuvent être copiés directement à partir des structures en utilisant l'opérateur d'affectation. Si nécessaire - je les copie.