FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Extension de SELECT .... END_SELECT Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Extension de SELECT .... END_SELECT Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Extension de SELECT .... END_SELECT Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Extension de SELECT .... END_SELECT Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Extension de SELECT .... END_SELECT Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Extension de SELECT .... END_SELECT Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Extension de SELECT .... END_SELECT Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Extension de SELECT .... END_SELECT Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Extension de SELECT .... END_SELECT Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Extension de SELECT .... END_SELECT Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Extension de SELECT .... END_SELECT Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Extension de SELECT .... END_SELECT Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Extension de SELECT .... END_SELECT Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Extension de SELECT .... END_SELECT Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Extension de SELECT .... END_SELECT Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Extension de SELECT .... END_SELECT

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Extension de SELECT .... END_SELECT Empty
MessageSujet: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 2:04

Lorsqu’on a affaire aux testes sur une variable, on recourt au IF.
Mais lorsque les testes deviennent nombreux, les IF imbriqués avec ses ELSE et ses END_IF deviennent une structure assez lourde et souvent sources d’erreurs.

Pour éviter cela, on se rabat sur SELECT … END_SELECT.
Mais son utilité (telle qu’elle est définie maintenant) est assez limitée, il me semble :
Elle n’accepte que le type entier. Il serait intéressant qu’elle puisse également accepter le type caractère et l’on pourrait coder, par exemple, comme ceci
Code:

SELECT C$
    CASE  "A" : ....
    CASE  "+" : ....
    CASE  "0" : ....
    ......
END_SELECT
Et tant que nous y sommes, pourquoi pas le type « énuméré »
Code:

SELECT V%
  CASE 1      : ....    : ' une seule valeur
  CASE 2,3,4  : ....    : ' 3 valeurs successives
  CASE 7,99    : ....    : ' 2 valeurs différentes
  ELSE_CASE  : ....    : '  pour toutes les autres valeurs non mentionnées
END_SELECT

Je rêve trop ces temps-ci, mais qui sait ?
Peut-être que Jack, dans le futur (pas le futur antérieur) pourra décider de la faisabilité et de l’utilité de ce souhait.

Veuillez regarder ce code :

Code:

dim mois
mois = int(rnd(1)*12 +1)
print_locate 50,50
' structure correcte, mais beaucoup de IF imbriqués et ça pourrait être pire!
if (mois >= 1) and (mois <= 3)
  print "Premier trimestre"
  else
  if (mois >= 4) and (mois <= 6)
      print "Second trimestre"
      else
      if (mois >= 7) and (mois <= 9)
          print "Toisième trimestre"
          else
          print "Quatrième trimestre"
      end_if
  end_if
end_if

' structure correcte, mais si on a une centaine de valeurs, 3 boîtes d'aspérine
' ne suffisent plus!
print_locate 50,70
select mois
  case 1  : print "Premier  trimestre"
  case 2  : print "Premier  trimestre"
  case 3  : print "Premier  trimestre"
  case 4  : print "Second    trimestre"
  case 5  : print "Second    trimestre"
  case 6  : print "Second    trimestre"
  case 7  : print "Troisième trimestre"
  case 8  : print "Troisième trimestre"
  case 9  : print "Troisième trimestre"
  case 10 : print "Quatrième trimestre"
  case 11 : print "Quatrième trimestre"
  case 12 : print "Quatri-me trimestre"
end_select

' structure INCORRECTE, mais c'est mon souhait!

select mois
'  case 1,2,3 : print "Premier  trimestre"
'  case 4,5,6 : print "Second    trimestre"
'  case 7,8,9 : print "troisième trimestre"
'  else      : print "Quatrième trimestre
end_select

lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 12:43

et encore... le dernier exemple de IF imbriqués n'est pas correct : il manque des end_if Extension de SELECT .... END_SELECT 14

Si on pouvait faire:
Code:
IF
  ...
ELSE IF
  ...
ELSE
  ...
END_IF

cela serait déjà pas mal... Wink


Pour des SELECT sur 1 caractère, on peut toujours feinter en faisant:
SELECT ASC(Var$)

mais pouvoir faire des CASE "Toto", je suis d'accord avec toi :cela serait un +...

EDIT :
Je sais que c'était un exemple, mais pour l'histoire des trimestre, tu peux faire comme ceci :
Code:
select int((mois-1)/3)+1
  case 1 : print "Premier  trimestre"
  case 2 : print "Second    trimestre"
  case 3 : print "Troisième trimestre"
  case 4 : print "Quatrième trimestre"
end_select

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 13:07

si on modifie le case, on pourrait ajouter la possibilité de terminer par case others:
pour gérer les cas non listés
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 13:11

Jicehel a écrit:
si on modifie le case, on pourrait ajouter la possibilité de terminer par case others:
pour gérer les cas non listés
Comme en langage C avec default... Wink

Je reviens sur l'histoire des CASE avec des chaines de caractères
Quand les fonctions seront disponibles, je pense que l'on va pouvoir contourner le problème en faisant:

Code:
SELECT MaFunction(Chaine$)
  CASE 1245: .... 
  CASE 7845: ....
  CASE ...
END_SELECT

Reste à coder MaFonction() de telle manière qu'elle renvoie une valeur numerique...(type CRC par exemple)
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 13:29

OK Nardo que ce soit Default, case others, othercase ou autre tant que l'on peut le mettre facultativement pour moi Wink
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 15:32

Ou ELSE_CASE comme mentionné dans mon 1er post ! (vous ne faites pas attention à ce que vous lisez ? Shocked ou vous lisez à moitié ? Rolling Eyes c’est bonne celle-là HI HI HI) Laughing
On pourra aussi utiliser OTHERWISE ou ..... EINH QUOI ! ce n’est pas les vocables qui manquent !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 15:45

ou mieux CASE ELSE qui me paraît plus logique et qui existe déjà dans les autres Basics (Basic classique, QBasic, FreeBasic...), et d'accord pour les valeurs chaînes dans Select_case, ça manque.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Extension de SELECT .... END_SELECT Empty
MessageSujet: re   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 16:29

Je n'ai rien contre le principe du "case_else" .
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 17:52

En effet CASE ELSE me parait bien.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT EmptySam 15 Sep 2012 - 20:27

Mais comme CASE et ELSE sont deux mots-clés existants, je pense qu'ici ce serait obligatoirement CASE_ELSE
Revenir en haut Aller en bas
Contenu sponsorisé





Extension de SELECT .... END_SELECT Empty
MessageSujet: Re: Extension de SELECT .... END_SELECT   Extension de SELECT .... END_SELECT Empty

Revenir en haut Aller en bas
 
Extension de SELECT .... END_SELECT
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Extension du Select ... case ... End_Select
» else et select case
» Extension de Checked(N)
» Extension de la commande DELETE
» Diverses propositions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: