PureBasic

Forums PureBasic
Nous sommes le Dim 16/Déc/2018 18:47

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: Créer un substitut plus puissant que With: EndWith
MessagePosté: Dim 26/Oct/2014 15:08 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3223
(largement même...)

Bonjour, With: EndWith, c'est déjà bien.

Mais souvent ça n'enlève pas tout le temps perdu à retaper ses champs de structure quand on traite avec plusieurs structures. Or, on traite la plupart du temps avec plusieurs structures, et pas des moindres quand elles sont imbriquées sur de multiples étages...

Voici un code fictif pour constater la pratique.
Le but ne serait plus de chercher à imbriquer des With: EndWith mais à traiter avec un équivalent de With: EndWith comme on traiterait avec des balises. L'ordre d'imbrication n'aurait plus d'importance.

Cette balise "With" jouerait un rôle similaire à une macro temporaire.
Elle devrait donc comporter un nom d'usage et le préfixe usuel de champ de structure.
Le nom d'usage servirait à invoquer le préfixe de champ de structure attribué.

A la manière de
Code:
With StructureChampPrefixe

On pourrait disposer de
Code:
/StructureChampPrefixeNomUsuel= StructureChampPrefixe

Et à la manière de:
Code:
EndWith

On pourrait disposer de...
Code:
/StructureChampPrefixeNomUsuel

...pour "clôturer" tout simplement.

Je montre l'exemple en utilisant le caractère "/" (barre de division). C'est une hypothèse. Je la trouve possible puisque ça ne rentre pas en conflit avec la syntaxe actuelle du langage (la division par zéro n'existant pas, la double barre " .../ /StructureChampPrefixeNom\Champ... " indiquerait une division par une variable d'un champ de structure).

Le tout serait évidemment supplémentaire à With: EndWith.

Difficile à expliquer! Mais rudement simplificateur en pratique.
Code:
; Equivalents d'un "With multiple"
/Def = *Root\Desk\DefaultWindow
/Current = *Root\Desk\Window()

With /Current

; Usage
\X = /Def\X
\Y = /Def\Y
OpenWindow(#Pb_Any, \X, \Y, etc...)

EndWith

; Clôtures
/Def
/Current

Si quelqu'un a une alternative, je suis preneur.
Ici, l'exemple n'est pas flagrant: il n'y a que 2 champs x et y.
Mais quand on se tape la douzaine de champs répartis dans des structures de plusieurs étages (ça peut très vite aller loin en profondeur), on se rend très vite compte que c'est très très pratique.
Cerise sur le gateau: le compilateur obtient directement du programmeur des repères de référence pour optimiser à bloc les accès mémoire. Résultat:
Non seulement le programmeur construit plus facilement des usines à gaz en toute simplicité.
En plus, le compilateur possèderait des directives programmeur pour digérer la complexité desdites usines à gaz et donc ne rien perdre en performance...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Dim 26/Oct/2014 23:26 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3223
J'ai dit une connerie?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Ven 07/Nov/2014 23:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 21/Mai/2005 17:50
Messages: 1318
Pas pour moi, et d'ailleurs comme je suis en train de lire tout les posts du fofo depuis 1mois, j'approuve ici toutes tes autres demandes antérieures à ce message.
Elles me semblent pertinentes, et pratiques !

_________________
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Sam 08/Nov/2014 10:31 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3223
Graph100 a écrit:
Pas pour moi, et d'ailleurs comme je suis en train de lire tout les posts du fofo depuis
1mois, j'approuve ici toutes tes autres demandes antérieures à ce message.
Elles me semblent pertinentes, et pratiques !

Ouaip... Mais là... J'ai un problème. Pour préciser ce problème, je dirais "Context error"! Je m'explique...

Quand je lis ton message, je peux imaginer:
1) qu'à ma question "j'ai dit une connerie?", tu réponds "pas pour moi".
2) qu'à ta phrase " j'approuve ici toutes tes autres demandes antérieures à ce message." si "ce message" c'est le tiens, ce sont toutes mes demandes que tu approuves.

Conclusion A: J'imagine que tu estimes que je ne dis pas de connerie et que tu approuves toutes mes demandes.

Mais...
1) Quand je lis ton même message, je peux imaginer aussi que quand tu réponds "pas pour moi", c'est au sujet tout entier que tu réponds négativement...
2) Quand je lis ta phrase "j'approuve ici toutes tes autres demandes antérieures à ce message.", et que ce message c'est le mien, ci-dessus, en tête de sujet. Si je regarde sa date, je n'ai pratiquement pas fait beaucoup de suggestion à la date antérieure à ce message-là...

Conclusion B: tu recales ma suggestion par un "Pas pour moi" et tu dis que tu préfères mes suggestions à une période où je n'en faisais pas de suggestions!


Alors, ma question, Graph100, est manichéenne:
Est-ce que tu approuves ce que j'ai dit ou bien, est-ce que tu me recales ironiquement la tronche?!?
Parce qu'entre la conclusion A et la conclusion B, même en faisant le grand écart, j'ai les deux pieds dans le vide!

That is the question, because I have not the context là... I suppose your were fatigouèche duraingue the writaingue...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Sam 08/Nov/2014 11:16 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3223
Pour préciser ce qui m'apporte à faire une telle suggestion, il faut d'ailleurs que je précise moi-même un détail qui me fait déclencher.

Avant, les structures étaient "statiques", fixées une bonne fois pour toute. Pour les lier entre elles ou bien d'une structure à un ensemble de structures, il fallait user des pointeurs.

Mais... Ça, c'était "avant"...
Fred est passé par là, a sorti le bouclier et l'épée et a décrété vaillamment une défonce ouverte de concept, avec ouverture non modérée des portes de la problématique :

"on va intégrer du dynamique dans ce qui était statique"

Résultat: une structure peut puissamment posséder des listes et des tableaux.
Conséquence: le programmeur n'a plus besoin de pointeur forcément et proprement dits. Par cette innovation, une autre manière de programmer est née.

On définit ses structures, on alloue un seul pointeur (la racine) et on initialise un arbre de structures dynamiques articulées par des pointeurs implicites au sein même des structures.

Résultat: simplification, structuration totale, modulation, etc...
Sauf que ces variables "hyper structurées dynamiquement" (ou "contexte") doivent être "complètement" écrites si on en traite deux ou plus, car "with" ne créée un "raccourci de frappe" que pour UN contexte, pas pour PLUSIEURS contextes.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Sam 08/Nov/2014 11:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 21/Mai/2005 17:50
Messages: 1318
Effectivement, ton raisonnement se tient dans les deux cas !
Mais tu as oublié de prendre un paramètre en compte : si graph100 n'était pas content, graph100 te l'aurait fait savoir :mrgreen:

Donc, pour entrer dans le filtre manichéen par lequel tu veux m'observer, j'entendais bien sur la conclusion A.

Je n'ai mentionné l'antériorité de tes messages qu'uniquement pour ne pas te donner mon aval illimité et désordonné :lol:

_________________
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Sam 08/Nov/2014 15:07 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3223
Graph100 a écrit:
Je n'ai mentionné l'antériorité de tes messages qu'uniquement pour ne pas te donner
mon aval illimité et désordonné

Ma conclusion spéculative est que tu donnes un aval limité et ordonné. Si c'est le cas, c'est judicieux en effet.
Déjà, je te remercie de t'être penché sur ces sujets et d'en apporter un avis.

Ensuite, c'est vrai que si demain, je suggère à Fred d'étendre son compilateur à la confection d'un OS, ou autre illumination aussi subite qu'irréaliste, tu pourras toujours dire:" Attention! J'ai bien dit 'date antérieure' et 'depuis 1 mois' mes approbations, pas toutes les folies qu'il a pu balancer avant et qu'il balancera après! D'ailleurs, je ne connais pas du tout ce fêlé !!!".

J'aquiesce bien évidemment la prudence de ton approbation. Si ça peut te rassurer, je ne demanderai pas l'impossible à Fred.

Mais c'est vrai que quand ça semble à portée de main, autant en faire part. Il faut savoir que son compilateur progresse et reste compatible avec du vieux matériel, compile toujours aussi vite et bien, sur ces mêmes vieilles bécanes. Donc il avait prévu quelques coups possibles plusieurs années à l'avance, ce qui n'est pas sans être exceptionnel, dans une équipe qui compte une poignée de personnes.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Créer un substitut plus puissant que With: EndWith
MessagePosté: Sam 08/Nov/2014 18:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 21/Mai/2005 17:50
Messages: 1318
Exactement !

J'apprécie ce que tu fais Ollivier :mrgreen: :mrgreen:

_________________
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye