[Ex] Créez un système de "flag" pour vos fonctions !

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#21

Message par mikell »

Bah le SDZ dit bien
les flags sont des constantes
Après, est-il vraiment indispensable de remplir son code de Bit... pour faire comprendre le concept à un débutant, même si c'est juste, ça peut se discuter
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#22

Message par matwachich »

Les bits sont indispensables pour que les flags puisses être additionnés (comme les style de GuiCreate par exemple) (PS: je peux très bien me tromper!)
Sans bits, sauf grosse manipulations (pleins de if ...), on ne pourrait mettre qu'un flag à la fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#23

Message par Iste »

Les flags sont des constantes oui, mais pas n'importe les quelles !

Comme l'explique bien le tuto et comme vous l'avez bien compris, ces constantes correspondent aux bit d'un nombre binaire, soit en décimal 1, 2, 4, 8 etc...

Et comme vous l'explique matwachich cela est indispensable pour pouvoir faire un systeme de flag dans lequel les valeur sont additionnées puis extraite par un AND dans la fonction.

Sans cela, il ne s'agit que d'un paramètre de fonction numérique.

Donc justement, le concept des flag c'est ca, transformer les bit en boolean, ce qui permet d'utiliser une seule variable pour envoyer plusieurs vrai/faux en les rendant facultatif.
explications : http://autoitscript.fr/forum/viewtopic. ... 355#p53355
Et je pense que, surtout pour un débutant, il vaut mieux clarifier les choses pour ne pas leur apprendre des choses fausses.

Note : servabat dans son message (http://autoitscript.fr/forum/viewtopic. ... 358#p53358) propose ce qui peut etre une alternative aux bit : les nombres premiers. En les multipliant on peut créer le meme effet
ex : 105 est une combinaison de 3, 4 et 7 et le modulo nous permet de les tester.
Si c'est sympa en maths, en programmation on préférera les bit, qui grâce aux opérateurs bit a bit rendent la choses tres légère et pratique.
Signez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#24

Message par mikell »

Il ne s'agit pas d'apprendre des choses fausses mais de rendre certaines explications aisément compréhensibles et accessibles au vulgum pecus qui n'a pas une formation de programmeur et qui appréhende le binaire comme d'autres le chinois
Fichier d'aide (MsgBox) a écrit :For example, to specify a SYSTEMMODAL box with the YES/NO buttons the flag value would be 4096+4 (or 4100) If using hexadecimal flags, that would be 0x1000+0x4 (or 0x1004).
Fichier d'aide (GUICtrlSetResizing) a écrit :$GUI_DOCKALL 802 (2+32+256+512) so the control will not move during resizing
Point de bits là-dedans, pourtant les valeurs sont combinées
on parle bien de flag mais là, on comprend de suite. J'avoue à ma grande honte ramer souvent parmi les Bit...() mais arriver quand même à me débrouiller avec les flags, serais-je un cas ? :shock:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#25

Message par Tlem »

Je suis d'accord avec mikell.
Avant d'étaler la science du flag dans son entier, il faut que le 'vulgum pecus' appréhende la notion de flag, qui sur une fonction de base représente la plupart du temps deux valeurs définies : 0 ou 1.

Ensuite et donc dans un deuxième temps, il peut être envisagé d'expliquer la notion de flag avec plus de valeurs et donc cette notion de bits combinables, mais en restant simple tel que les explications données pour la MsgBox (ou plus simple encore).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
MrDynoland
Niveau 3
Niveau 3
Messages : 33
Enregistré le : dim. 12 juin 2011 11:02
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#26

Message par MrDynoland »

J'ai compris que Iste et matwachich sont des pro, je répte tous comme mikell le dit, c'est pour un débutant.
Parlez-vous de bit avec une personne qui commence a comprend un language illeco ? Comprenez que apart vous il y a des personne qui ne sont pas encore professionnel et je essaye de les aider au maximun pour arriver un jour à réussir.
Merci de votre compréhension.

PS : Une petit modif' dans mon code et vous pouvez faire une addition en un clin d’œil.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#27

Message par Iste »

@mikell : "Point de bits là-dedans" ? et que sont 2+32+256+512 alors ? Bah des bit justement ^^
Et non justement, pas besoin de comprendre comment ca marche pour savoir l'utiliser, c'est l'une des grandes forces du flag.

@Tlem : oui en effet, un booléen 0/1 passé en paramètre d'une fonction est un flag simple. Seulement, encore une foi, ici, c'est pas ca :o

@MrDynoland : J'ai bien compris votre intention et le problème n'est pas là.
Es-ce que je parlerai de bit a un débutant ? Non, en effet. Pas si je lui explique comment se servir de flag.
Mais si je lui propose de mettre en place des flag dans ses fonctions, alors oui, il faut en parler :o ces notions sont indissociables.


Donc le problème n'est pas de proposer un code simple qui pourrait aider des débutants a se lancer.
Le seul problème ici est qu'on ne parle pas du tout de flag alors qu'ils en sont le sujet. C'est simplement ce que je veux vous faire remarquer.
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#28

Message par Tlem »

Iste a écrit :@Tlem : oui en effet, un booléen 0/1 passé en paramètre d'une fonction est un flag simple. Seulement, encore une foi, ici, c'est pas ca :o
Je ne peut pas être entièrement d'accord avec toi, car sur le message d'origine, il est question de donner une valeur qui renverra le nom du jour de la semaine qui lui correspond.
Nous avons donc une base pour un exemple de flag, mais qui n'est pas exploitée correctement.

De plus, tu précise que la notion de flag est la possibilité de combiner ceux-ci afin de gérer plusieurs conditions simultanées ! Certes, mais pas seulement, car dans certains cas, les flag ne se combinent pas et ne sont même pas calculés en ce sens.
Prend l'exemple des flag d'erreur, ou de certaines fonctions comme DriveMapAdd ou FileCopy qui ont comme flag : 0, 1 et 8.

Le mieux, au lieu de tourner ce sujet en troll, est de rester dans le cadre de AutoIt et de commencer à expliquer simplement le flag, à l'image de ceci, ou les explications restent simple et à la portée d'un débutant, puis pour les plus 'expérimentés', la suite ici.
Il est inutile dans un premier temps de parler de bit et de combinaisons de bits, par contre, il est indispensable d'y faire référence dans un sujet plus détaillé.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#29

Message par Iste »

Mais mais...
Loin de moi l'idée de troller tu le sais bien
il est question de donner une valeur qui renverra le nom du jour de la semaine qui lui correspond.
Donc il s'agit d'un paramètre simple et bête.


@§2 : Pour les "flag d'erreur" c'est un abus de langage, on parle normalement de code d'erreur, car en effet, ce ne sont pas des flag. On peut toute foi voir des flag d'erreur dans une fonction, il s'agit alors d'un booleen qui passe a true si tout ne se passe pas bien. Mais ca reste du 0/1.
Et pour les deux fonction citées, c'est pourtant bien un flag comme je l'explique Oo
"a combination of the following" avec les bit 0001 et 1000 (certes, pas forcément le plus logique)

Mais on a donc pour FileCopy bien un flag, avec pour valeur 1 pour l'overwrite et 8 pour le creat dir. La fonction analyse le flag pour savoir si l'on veut les deux, aucun ou un seul.


Donc je sais pas si c'est moi qui m'exprime mal ou si je zap quelque chose mais une foi de plus, dans l'exemple donné on ne voit pas de flag, même simplifié pour les débutants, on a juste un paramètre de fonction tout bête.
Un flag lui est un paramètre de fonction spécial.

C'est pour cela que je tenais a bien faire comprendre la différence a un éventuel débutant qui viendrai lire ce topic, pour ne pas qu'il y ai de confusion.

M'enfin, je ne continuerai pas, sauf si on me le demande, la discutions, je pense avoir tout dis. J'ouvrirai peut être un topic tuto flag si j'en trouve le temps, pour bien que tout soit claire.
Signez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#30

Message par matwachich »

mikell a écrit :
Fichier d'aide (GUICtrlSetResizing) a écrit :$GUI_DOCKALL 802 (2+32+256+512) so the control will not move during resizing
Point de bits là-dedans, pourtant les valeurs sont combinées
Ah bon??? c'est pas des bits ça??? :shock:
Multiples de 2, combinés avec la fonction OR (qui, on le rappel, correspond au +)... 9a ne vous rappel rien???

PS: Dans une fonction comme GuiCreate, pour combiner des flags de style on nous dit d'utiliser BitOR, mais essayez donc avec + et vous verrez que ça ne change rien!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#31

Message par timmalos »

matwachich a écrit :PS: Dans une fonction comme GuiCreate, pour combiner des flags de style on nous dit d'utiliser BitOR, mais essayez donc avec + et vous verrez que ça ne change rien!
La, je me permet d'intervenir ;)
Vous avez peut etre l'impression que ca ne change rien, car les constantes ont été bien choisies , mais ce n'est PAS la même chose.
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#32

Message par mikell »

Tlem je ne voudrais pas que ça passe pour du troll mais j'ai l'impression (et ce n'est pas la première fois) d'une sorte de fossé d'incompréhension entre les pros de l'informatique et les programmeurs novices, ce qui parait évident aux uns est ardu pour les autres
D'ailleurs les posts précédents montrent que même les pros ne sont pas d'accord... vous imaginez le débutant qui débarque là-dedans ?! :mrgreen:

matwachich, dans "802 (2+32+256+512)" je vois pas des bits, je vois des chiffres, pas vous ?
Mais oui je suis d'accord, j'aurais dû mettre la majuscule Bit...
Excusez-moi de me répéter mais on parle d'essayer de renseigner des débutants... et comprenez que pour un débutant, non 9a ne rappelle rien, et 'OR correspondant à + ' n'est pas d'une évidence folle (OR veut dire "ou", a priori...)
802 = 2+32+256+512 : pas besoin de grandes connaissances pour comprendre ça

timmalos cet exemple est étrange car il combine des constantes style et exstyle qui en principe ne sont pas combinables, ce qui explique (peut-être...?) les différences de résultat
EDIT :mrgreen: coquin timmalos, dans les tables style et exstyle certaines constantes ont des valeurs identiques... un exemple "légal" fonctionne bien comme matwachich le dit
► Afficher le texte
Modifié en dernier par mikell le mar. 16 août 2011 19:39, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#33

Message par Iste »

@all : http://autoitscript.fr/forum/viewtopic.php?f=11&t=8211
vala ^^ J’espère que tout le monde y trouvera son bonheur.
La réponse au probleme soulevé par matwachich et timmalos se trouve a la fin de la 2em partie.
Signez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#34

Message par mikell »

Merci pour ce tutoriel très complet
Ceci n'est pas un tuto technique
Ya même de l'humour Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#35

Message par timmalos »

Hmmm je differenciais juste l'utilisation d'un bitOR et d'une addition. Comme ecrit precedemment les 'flags' sont choisis pour qu' une addition ne pose pas de soucis, mais MATHEMATIQUEMENT les calculs effectués ne sont pas les mêmes, je voulais juste soutenir ce point.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#36

Message par Tlem »

Je trouve ce tutoriel intéressent, ceci-dit, il comporte quelques 'erreurs' de présentations et de cheminement qui pourraient perturber un débutant.

Le temps de rédiger les points négatifs et j'en ferais part à Iste afin qu'il puisse corriger son travail.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#37

Message par Tlem »

N'étant pas d'accord sur la manière de présenter cette partie :
  • - Trop simplifiée et pas complète dans ce sujet.
    - Trop technique et pas assez détaillée dans le tutoriel de Iste.
J'ai moi même rédigé un tutoriel, qui, je pense, est plus complet.

Ceci dit, j'ai conscience des difficultés de compréhension d'un utilisateur novice sur un sujet aussi complexe que celui-ci, car l'utilisation du système de flag dans AutoIt n'est pas aussi simple que certains peuvent le penser. :mrgreen:
Certes, une fois qu'on maitrise une certaine logique, cela ce passe sans douleurs. Mais j'imagine bien que beaucoup ne voient dans tout cela que des trucs compliqués de 0, de 1, de nombres hexadécimaux et de puissances de 2 !!!

C'est pourquoi, avant de donner le lien vers celui-ci, je souhaiterais obtenir l'avis de lecture d'un ou plusieurs membres novice sur ce sujet, afin de simplifier ou éclaircir les passages les plus compliqués.
Pour ceux qui souhaiterait participer, merci de m'envoyer un MP.

PS: Merci à mikell qui s'occupe de la correction orthographique. 8)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#38

Message par Tlem »

Bien, puisque personne ne se bat pour me donner son avis, je vous le fournit tel quel : Les Fonctions et les Flags
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
MrDynoland
Niveau 3
Niveau 3
Messages : 33
Enregistré le : dim. 12 juin 2011 11:02
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#39

Message par MrDynoland »

Il faut ce vouer a l'idée, c'est la fin du topic, trop de débat tu le débat ! xD
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Ex] Créez un système de "flag" pour vos fonctions !

#40

Message par mikell »

Tlem a écrit :Bien, puisque personne ne se bat pour me donner son avis, je vous le fournit tel quel
Vous fâchez pas, si plus personne ne lit ce topic à part les modos vous risquez effectivement d'avoir peu de réponses :mrgreen:
Pour ce genre de demande, je ne vois que le nouveau sujet ou le MP à des utilisateurs que vous "sentez" Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre