Case amélioré

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Case amélioré

Message par Anonyme2 »

Fred,
Vu que le Père Noël est resté sur Strasbourg (si, je l'ai entendu à la Télé :mrgreen: ) profites-en pour lui demander un select case amélioré

Code : Tout sélectionner

Select a
  Case  a> 10

  Case  a>= 10

  Case  a<> 10

  Case a in ['a'..'z']   ; a appartient à l'intervalle de l'alphabet et les bornes sont incluses

  Case a in ['a'..'z'[   ; a appartient à l'intervalle de l'alphabet et la borne finale n'est pas incluse, a peut valoir entre 'a' et 'y'

  Case a in ]'a'..'z']   ; a appartient à l'intervalle de l'alphabet et la 1ere borne n'est pas incluse, a peut valoir entre 'b' et 'z'

  Case a in ]'a'..'z'[   ; a appartient à l'intervalle de l'alphabet et les 2 bornes ne sont pas incluses, a peut valoir entre 'b' et 'y'

  Case a in ['a'..'z'] or ['A'..'Z']   ; a appartient au 1er intervalle de l'alphabet (minuscules) ou il appartient à l'intervalle des majuscules, avec comme ci-dessus les bornes à définir

  Case a out ['a'..'z']       ; etc
Idem pour les intervalles des chiffres.
Je pense que pour optimiser le code, il faudrait un certain nombre d'intervalles définis commes l'alphabet mais aussi les jours de la semaine, les mois de l'années

exemple

Code : Tout sélectionner

  Select Jour
     Case [Lundi..Vendredi]
          debug "ça craint, c'est le boulot"

     Case [samedi..Dimanche]
          debug "il faudrait créer que des samedi dimanche"



On pourrait aussi créer des intervalles

Code : Tout sélectionner

Interval  Arbre
   Bouleau
   Charme
   Chene   
   Epicea
   Frene
   Hetre
   Pin
   Tilleul
   Sapin  
EndInterval
et là encore on pourrait définir le type Arbre en byte, word, long, string

MonArbre = Pin

Code : Tout sélectionner

Select MonArbre
   Case in [Arbre]

   Case Out [Arbre]
endselect
Dernière modification par Anonyme2 le mar. 28/déc./2004 13:04, modifié 1 fois.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ouaip , ça serait super , d'ailleurs il y a déjà eu pas mal de demande à ce sujet sur le forum anglais , il y a un gros besoin dans ce domaine :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

comtois a écrit :ouaip , ça serait super , d'ailleurs il y a déjà eu pas mal de demande à ce sujet sur le forum anglais , il y a un gros besoin dans ce domaine :)
Je sais que ça déjà été demandé, mais comme je ne sais pas si Fred l'a écrit quelque part :roll:

En fait cette syntaxe je l'utilisais en Turbo Pascal (supeeeeeeeeeeeeeer pratique les intervalles)

Et puis la priorité c'est de pouvoir utiliser le case avec les signes > et <
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah je pense que dans ce cas on fait plutot appel à ElseIf nan ???
Plus souple que le Case....

Dri
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Dr. Dri a écrit :bah je pense que dans ce cas on fait plutot appel à ElseIf nan ???
Plus souple que le Case....

Dri
3 choses :

1) Le case est bien plus parlant et beaucoup plus intutif que le if elseif else (à mon goût) et permet d'avoir un code plus lisible

2) Le case donne un meilleur code car on selectionne une fois pour toute la variable du case avec le select alors qu'avec des if ce n'est pas le cas car derrière un elseif on peut mettre une expression qui n'a rien à voir avec le premier if.

3) actuellement le case est très limité dans son expression (pas de <> etc). C'est dommage pour les raisons évoqués ci-dessus.

Mais bon, on peut croire au Père Noël :D
Fred, y a encore de la place dans ta hotte ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

dans le genre je trouverais pratique ce genre de syntaxe :
-

Code : Tout sélectionner

ForEach x in [ 1..10 ]
  Debug x
Next
x prends successivement la valeur 1, puis 2, ... jusqu'à 10
-

Code : Tout sélectionner

ForEach x in [ 10, 20, 30, 40 ]
  Debug x
Next
x prends successivement la valeur 10, puis 20, 30 et enfin 40
-

Code : Tout sélectionner

ForEach x in [ 1..10, 100..1000, 2000..2004 ]
  Debug x
Next
un mix des 2 précédents
-

Code : Tout sélectionner

a[] = [ 1, 2, 3, 4 ]

ForEach x in a[]
  Debug x
Next
l'idéal étant de pouvoir stocker la liste dans une variable
-

Code : Tout sélectionner

Dim a(4)

a() = (0, 1, 2, 3, 4)

ForEach a()
  Debug a()
Next
Ou rendre le ForEach compatible avec les tableaux à une seule dimension.
Et rendre possible le remplissage d'un tableau en une seule ligne.
-

Code : Tout sélectionner

a.s = "purebasic"

ForEach x in a
  Debug x
Next
Voir même avec les chaînes caractères
-
mais je sais ce sera pas papa noel 2004 qui m'amènera toutes ces idées.
:)
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Excellent Flype :D

Fred, il faut remplir ta hotte version 4.0 :D
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

La hotte du père noël est elle déjà bien remplie à ce niveau là ???? :oops:
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

je pense que pour les CASES améliorés, le système peut-être très facilement ajouté si il est modifié sous ce principe :

Select VAR
CaseSuperiorTo VALUE ....
CaseInferiorTo VALUE ....
CaseInRange VALUEMIN , VALUEMAX ....
EndSelect
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

C'est vrai que ça pourrait être très pratique comme ça
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

c'est vrai que les intervalles en Turbo Pascal, c'était pratique
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Les tableaux pourait être améliorés en faisant comme possible en php.

Code : Tout sélectionner

	users$ = array(
"user=>"jklm",
"Gansta93"=>"MotdePasse"
	);
Et puis après on lit les données:

Code : Tout sélectionner

Debug Users("Gansta93")
ça n'a rien à voir, mais je trouve que ça serait bien.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Le php est interprêté.. Dans un langage plutôt bas niveau (programmé e assembleur nan ?) ce ne serait pas approprié de faire des tableaux indexés dynamiquement... Surtout avec des indices autres que numériques...

Dri ;)
Répondre