Page 1 sur 1

Question sur les variables.

Publié : mer. 03/mars/2021 12:38
par Ulix
Bonjour a tous,


Je me suis lancer dans un nouveau petit projet.
Je programme a l'ancienne (pas de module :( ), et donc j'utilise souvent des
XIncludeFile pour charger des portions de programme (ayant leurs propres variables)
que je réutilise dans tous mes programmes.
Ex de fichier include : Log, Mdp, Synt, Pref, AProp, Prn, GtkLp... etc.

Et donc, j'inclus ces portions dans le programme principal (avec XIncludeFile ),
toutefois je suis bien obligé de nommer les variables (en global) dans mon programme principal !

C'est alors, qu'il met venu une réflexion : :idea:
Pourquoi ne pas lier deux variables ensembles (noms différents,
mais même valeur : attention toujours de même type),
un genre : Alias(Var1.b, Var2.b)

Je n'est rien trouvé de la sorte dans PureBasic ! (a moins que j'ai mal vu...)

Et la question est : (juste une question en passant ! je me débrouillerais bien s'en...)
Existe-il une solution pour lier deux variables (de même type) entre elles ?

J'explique avec un cas concret : 2 variables de nom suivants : Log_Etat.b et Prog_LogEtat.b

Si je change la valeur de l'un, l'autre change automatiquement;
Ex : Log_Etat.b = 1 et donc Prog_LogEtat.b = 1

Et bien sur l'inverse devient vrai aussi
Ex : Prog_LogEtat.b = 1 et donc Log_Etat.b = 1

Quelqu'un a-t-il une solution ? :oops:

Sinon peut-on imaginer que Fred implémente une nouvelle fonction !
Après tout, ne peut-on demander au compilateur de pointer la même adresse
mémoire pour deux noms de variables différentes ?


Merci de m'avoir lu ! :wink:

Re: Question sur les variables.

Publié : mer. 03/mars/2021 18:38
par falsam
Ulix a écrit :Quelqu'un a-t-il une solution ?
Et bien .... non.

Mais j'ai lu :mrgreen:

Re: Question sur les variables.

Publié : mer. 03/mars/2021 19:25
par Mindphazer
Moi aussi j'ai lu
Et..... j'ai pas compris l'intérêt.. (mais j'ai beau avoir lu, j'ai peut-être mal compris :mrgreen: )

Re: Question sur les variables.

Publié : mer. 03/mars/2021 19:50
par Ar-S
Si tu connais tes variables à l'avance (ce qui est logiquement le cas) tu peux faire une petite macro

Code : Tout sélectionner

Macro V(v1,New)
    v1=New
    Prog_LogEtat=v1
EndMacro

Log_Etat.b = 1
Prog_LogEtat.b = 5

Debug Log_Etat.b
Debug Prog_LogEtat.b

;---- On change l'avaleur de Log_Etat

V(Log_Etat,8)
Debug Log_Etat.b
Debug Prog_LogEtat.b

Re: Question sur les variables.

Publié : jeu. 04/mars/2021 10:06
par microdevweb
Je ne suis pas certain d'avoir compris le sens de ta question, mais si tu veux plusieurs allias pour une même variable il faut utiliser les pointeurs

Code : Tout sélectionner

Global maVariableGlobal.i

Global *monAlias1 = @maVariableGlobal
Global *monAlias2 = @maVariableGlobal

PokeI(*monAlias1,7)
Debug PeekI(*monAlias1)
Debug maVariableGlobal
PokeI(*monAlias2,25)
Debug PeekI(*monAlias2)
Debug maVariableGlobal
Maintenant il est vrai que je trouve que l'usage des pointeurs en Pb est mais facile qu'en C

exemple en C

Code : Tout sélectionner

int maVariableGlobal = 0;
int *monAllias1 = &maVariableGlobal;
int *monAllias2 = &maVariableGlobal;

*monAllias1 = 7;
printf("%d",*monAllias1);
// print address (same address of monAllias2 and  &maVariableGlobal)
printf("%p",monAllias1);
printf("%d",maVariableGlobal);
*monAllias2 = 25;
printf("%d",*monAllias2);
// print address (same address of monAllias1 and  &maVariableGlobal)
printf("%p",monAllias2);
printf("%d",maVariableGlobal);

Re: Question sur les variables.

Publié : ven. 05/mars/2021 12:42
par Ulix
Bonjour a tous

Et merci de m'avoir lu et pris le temps de commenté.

@Mindphazer : Tu n'a pas compris l'intérêt.. !
L'intérêt est de pouvoir incorporer (via les XIncludeFile) des portions entières de code
(ensemble de tache dédiés, fenêtre et fonctions sans utilisé les modules :twisted: ) dans
le programme principal sans être obliger de truffé ce même programme principal de
toutes les variables indispensables de ces XIncludeFile.

@microdevweb : C'est l'idée, mais cela serait 'cool' que cela soit
fait au niveau du compilateur, une fonction un genre : Alias(Var1.b, Var2.b)
qui si on change la valeur de l'une, cela change automatiquement la valeur de l'autre
et vis-versa.

L'idée aussi c'est que cela doit être transparent, automatique !
Peut-être avec un thread :?: en arrière plan qui surveillerait un certain nombres de variables,
et lorsque une d'entre elles changerait cela changerait la variable avec laquelle elle est liée.

En tous cas merci pour vos réflexions ! :lol:
Mais le sujet et ouvert...