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
» Gestion d'un système client-serveur.
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar Klaus Aujourd'hui à 1:15

» item_index(résolu)
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Problème avec des SELECT...CASE imbriqués - Page 2 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Bon plan achat en duo : 2ème robot cuiseur ...
Voir le deal
600 €

 

 Problème avec des SELECT...CASE imbriqués

Aller en bas 
+5
Nardo26
Jicehel
papydall
Yannick
Klaus
9 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 17:20

@Cosmos70:
ITEM_READ$ est une fonction normale de Panoramic, et à ce titre, on peut l'inclure dans une expression, la passer en paramètre, etc. Donc, rien d'anormal dans ton code - rien que du Panoramic parfaitement normal et qui marche depuis longtemps.

Ceci dit, cela n'a pas vraiment de rapport avec le problème initial que j'ai soulevé dans mon post initial. Pour le moment, comme je l'ai déjà dit, je contourne le problème avec des séries de IF en chaîne ce qui est très lourd. Mon SELECT_CASE principal comprend à ce jour plus de 150 CASE, et il va encore bien grandir. J'espère vraiment avoir bientôt au moins une idée de ce qui va se passer, car je devrai reprendre tout le code existant pour le réajuster.

Je vais oser une suggestion: Jack, si tu constates qu'il y a vraiment une anomalie, aurais-tu l'occasion d'inclure la correction dans la version instantanée dont tu as parlé au sujet des variables locales et paramètres formels en lien avec la fonction ADR() ? Ce serait vraiment super !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 17:21

@Cosmos70:
es-tu sûr d'avoir choisi le bon fil de discussion ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 17:39

Citation :
@Cosmos70:
ITEM_READ$ est une fonction normale de Panoramic, et à ce titre, on peut l'inclure dans une expression, la passer en paramètre, etc. Donc, rien d'anormal dans ton code - rien que du Panoramic parfaitement normal et qui marche depuis longtemps.

Je prends la réponse pour moi. Je viens de grandir un peu..... Very Happy

A+
Revenir en haut Aller en bas
Atom




Nombre de messages : 26
Date d'inscription : 11/07/2012

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 18:36

Personnellement j'ai eu le même problème il y a 1 mois. Je voulais alors regarder si le problème était dans les versions antérieures de Panoramic mais comme on ne peut pas télécharger les anciennes versions j'ai n'ai pas pu essayer.

J'ai aussi un autre problème à propos d'une boucle For. Ma boucle n'allait qu'à 1 alors qu'elle aurait dû aller jusqu'à 5. Curieusement si je changeais i par j le problème se retirait. Et puis il y a pleins d'autres bugs étranges que j'ai rencontrer de temps à autres.
Revenir en haut Aller en bas
Invité
Invité




Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 18:46

Klaus a écrit:
@Cosmos70:
es-tu sûr d'avoir choisi le bon fil de discussion ?
Il me semble que oui.
Je suis d'accord avec toi pour demander l'imbrication des cases successifs.

L'idée était provisoirement de remplacer select en 2ème niveau en sub t.(1) sub t.(2)...
C'est un peu plus lourd, j'en convient. C'est une idée qui m'est venu au moment que j'allais quitter pour rangé le bois que j'ai coupé ce matin. Un essai rapide qui semblait marché. C'est ce que j'ai pensé au départ, mais entre temps en faisant mon boulot, je n'en étais plus très sûr. Je sais que c'est faisable, et ... et j'arrête.

Maintenant je pense que Jack a vu ton message, même si il ne répond pas.

@Jean-Claude. Tu es comme moi, tu réponds trop vite.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 19:39

C'est vrai Cosmos, mais çà m'a permis d'apprendre. Smile

A+
Revenir en haut Aller en bas
Nardo26

Nardo26


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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 20:09

Klaus a écrit:
Timidement, je relance un peu... Mon problème de SELECT...CASE persiste. Ai-je commis une erreur ou s'agit-il vraiment d'un problème technique scratch dans Panoramic ?
Problème technique... problème technique...Problème avec des SELECT...CASE imbriqués - Page 2 14
Je crois qu'il faut arrêter de tourner autour du pot et employer le mot qui correspond le plus à ton problème. Je pense que Jack ne nous linchera pas si on l'emploi pour des raisons valables...

Si on doit bricoler une usine à gaz (sans succès d'ailleurs) pour arriver à faire 2 select imbriqués, je pense que c'est un BUG !

Ça y est, puisque personne ne veut le dire, le mot est lâché... Smile

Cela dis, cela risque d'être compliqué à Jack de résoudre ce problème (je ne sais pas comment Jack gère ce type de commande mais peut être que cela implique des notions de ré-entrance?) et cela retardera encore plus l'arrivée des nouvelles fonctionnalités prévues dans la prochaine version... mais peut être qu'une fois résolu, cela apportera un + aux futures fonctions?...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 21:02

Atom a écrit:
J'ai aussi un autre problème à propos d'une boucle For. Ma boucle n'allait qu'à 1 alors qu'elle aurait dû aller jusqu'à 5. Curieusement si je changeais i par j le problème se retirait. Et puis il y a pleins d'autres bugs étranges que j'ai rencontrer de temps à autres.
Il ne faut pas rester avec ces incertitudes sous le coude, le mieux (après vérification de son code bien sûr) est de soumettre un exemple ici , c'est souvent une incompréhension quelconque et c'est bête de perdre son temps (et son moral) là-dessus !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 2 Oct 2012 - 22:22

S'il vous plaît, les gars - si vous avez un problème différent de celui qui fait l'objet du fil de discussion en cours - OUVREZ UN NOUVEAU FIL DE DISCUSSION ! Sinon, personne ne comprendras plus ce qui se passe ! Chaque problème mérite son fil de discussion séparé !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMer 3 Oct 2012 - 0:27

Spoiler:
Revenir en haut Aller en bas
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 16:51

Je viens de me casser la tête un bon moment sur des SELECT imbriqués avant de me souvenir vaguement que ça avait été évoqué ici...
Évoqué par Klaus en septembre 2012, le comportement est assez étrange, et apparemment toujours pas de solution.
Je relance ici, à tout hasard.

Bon, eh bien il faut que je trouve une solution de rechange...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 16:58

Effectivement, toujours pas de solution. Il faut éviter ces constructions et programmer différemment. Peut-être en plaçant le second niveau de SELECT_END_SELECT dans uns SUB ? A vérifier...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 17:05

YES !!!!!!!!!!!!!!!!

En plaçant les SELECT...END_SELECT du deuxième niveau dans une SUB, ça marche !
La preuve: voici le sour ce mon post initial adapté à cette technique:
Code:
' test SELECT.bas

dim i%
dim v1, v2
v1 = 2
v2 = 3

i% = 1
  select i%
    case 1
      message "1"
    case 2
      message "2"
    case 3
      message "3"
    case 4
      message "4"
    case 5
      message "5"
    case 6
      message "6"
    case 7
      message "7"
    case 8
      message "8"
    case 9
      message "9"
    case 10
      message "10"
    case 11
      message "11"
    case 12
      message "12"
    case 13
      message "13"
    case 14
      message "14"
    case 15
      message "15"
    case 16
      message "16"
    case 17
      message "17"
    case 18
      message "18"
    case 19
      message "19"
    case 20
      message "20"
      case20
'  end_select
'  end
'  select i%
    case 21
      case21()
    case 22
      message "22"
    case 23
      message "23"
    case 24
      message "24"
    case 25
      message "25"
    case 26
      message "26"
    case 27
      message "27"
    case 28
      message "28"
    case 29
      message "29"
    case 30
      message "30"
    case 31
      message "31"
    case 32
      message "32"
    case 33
      message "33"
    case 34
      message "34"
    case 35
      message "35"
    case 36
      message "36"
    case 37
      message "37"
    case 38
      message "38"
    case 39
      message "39"
    case 40
      message "40"
    case 41
      message "41"
    case 42
      message "42"
    case 43
      message "43"
    case 44
      message "44"
    case 45
      message "45"
    case 46
      message "46"
    case 47
      message "47"
    case 48
      message "48"
    case 49
      message "49"
    case 50
      message "50"
    case 51
      message "51"
    case 52
      message "52"
    case 53
      message "53"
    case 54
      message "54"
    case 55
      message "55"
    case 56
      message "56"
    case 57
      message "57"
    case 58
      message "58"
    case 59
      message "59"
    case 60
      message "60"
    case 61
      message "61"
    case 62
      message "62"
    case 63
      message "63"
    case 64
      message "64"
    case 65
      message "65"
    case 66
      message "66"
    case 67
      message "67"
    case 68
      message "68"
    case 69
      message "69"
  end_select
  message "fini"
end

sub case20()
      select v1
        case 1
          message "v1: 1"
        case 2
          message "v1: 2"
        case 3
          message "v1: 3"
      end_select
end_sub

sub case21()
      message "21"
      select v2
        case 1
          message "v2: 1"
        case 2
          message "v2: 2"
        case 3
          message "v2: 3"
      end_select
end_sub

Heureka !!!!!!!!!!!!!!!
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 17:12

Oui Klaus, c'est une belle solution.

A première vue, le problème se pose s'il y a plusieurs CASEs dans un SELECT qui contiennent eux-mêmes d'autres SELECT.
S'il n'y en a qu'un seul ça semble marcher.
C'était mon cas, j'en avais deux, j'en ai supprimé un (remplacé par quelques IF, il y avait peu de cas) et comme ça ça marche (mais bon, il y a quand même une anomalie):
Code:
SELECT x
    CASE 1
    CASE 2
    ...
    CASE z
        SELECT y
            CASE ...
        END_SELECT
END_SELECT
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 17:22

Oui, c'est bien ça le problème. Si plusieurs SELECT...END_SELECT sont imbriqués dans le code, ça foire. Il suffit d'extraire le deuxième niveau pour le placer dans une SUB, et c'est bon. D'ailleurs, si on les place dans un sous-programme appelé par GOSUB, c'est bon aussi:
Code:
' test SELECT.bas

label case20, case21

dim i%
dim v1, v2
v1 = 2
v2 = 3

i% = 1
  select i%
    case 1
      message "1"
    case 2
      message "2"
    case 3
      message "3"
    case 4
      message "4"
    case 5
      message "5"
    case 6
      message "6"
    case 7
      message "7"
    case 8
      message "8"
    case 9
      message "9"
    case 10
      message "10"
    case 11
      message "11"
    case 12
      message "12"
    case 13
      message "13"
    case 14
      message "14"
    case 15
      message "15"
    case 16
      message "16"
    case 17
      message "17"
    case 18
      message "18"
    case 19
      message "19"
    case 20
      message "20"
'      case20
      gosub case20
'  end_select
'  end
'  select i%
    case 21
'      case21()
      gosub case20
    case 22
      message "22"
    case 23
      message "23"
    case 24
      message "24"
    case 25
      message "25"
    case 26
      message "26"
    case 27
      message "27"
    case 28
      message "28"
    case 29
      message "29"
    case 30
      message "30"
    case 31
      message "31"
    case 32
      message "32"
    case 33
      message "33"
    case 34
      message "34"
    case 35
      message "35"
    case 36
      message "36"
    case 37
      message "37"
    case 38
      message "38"
    case 39
      message "39"
    case 40
      message "40"
    case 41
      message "41"
    case 42
      message "42"
    case 43
      message "43"
    case 44
      message "44"
    case 45
      message "45"
    case 46
      message "46"
    case 47
      message "47"
    case 48
      message "48"
    case 49
      message "49"
    case 50
      message "50"
    case 51
      message "51"
    case 52
      message "52"
    case 53
      message "53"
    case 54
      message "54"
    case 55
      message "55"
    case 56
      message "56"
    case 57
      message "57"
    case 58
      message "58"
    case 59
      message "59"
    case 60
      message "60"
    case 61
      message "61"
    case 62
      message "62"
    case 63
      message "63"
    case 64
      message "64"
    case 65
      message "65"
    case 66
      message "66"
    case 67
      message "67"
    case 68
      message "68"
    case 69
      message "69"
  end_select
  message "fini"
end

' sub case20()
case20:
      select v1
        case 1
          message "v1: 1"
        case 2
          message "v1: 2"
        case 3
          message "v1: 3"
      end_select
' end_sub
return

' sub case21()
case21:
      message "21"
      select v2
        case 1
          message "v2: 1"
        case 2
          message "v2: 2"
        case 3
          message "v2: 3"
      end_select
'end_sub
return

C'est donc la position "géographique" des SELECT...END_SELECT de deuxième niveau qui semble poser problème. C'est pour Jack, tout ça...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 20:22

Tu as raison, il doit y avoir un problème dans la mémorisation des adresses de retour de select...
Comme tu dis, c'est pour Jack (des fois qu'il ne saurait pas trop quoi faire... Very Happy ).

L'essentiel c'est d'avoir des solutions de secours, comme celle que tu suggères, et de pouvoir contourner l'obstacle.
Revenir en haut Aller en bas
Invité
Invité




Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 21:56

Çà alors! ça ne fonctionne que si c'est le dernier de la liste.
Code:
teste(3)

end
' ************
sub teste(x)
   dim_local y
   y = 2
   SELECT x
      CASE 1
      CASE 2
      CASE 3
         SELECT y
            CASE 1:message y
            CASE 2:message y
         END_SELECT
      ' case 4 :' si on enlève l'apostrophe il n'y a plus de message
   END_SELECT
end_sub
Revenir en haut Aller en bas
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 22:01

Ben oui cosmos, c'est ce que j'avais remarqué aussi. Comme je disais plus haut j'ai un SELECT avec 4 CASE, et ça marche si je laisse le SELECT imbriqué dans le 4ème CASE, mais pas ailleurs.
(je m'en suis aperçu en rajoutant un Select dans le 3ème, et là plus rien ne marchait).
Revenir en haut Aller en bas
papydall

papydall


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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 22:13

Pardon Klaus, mais ça ne marche pas !
Change la valeur initiale de i% :  20 ou 21 au lieu de 1 et relance le code.
Avec SUB …END_SUB , message d’erreur END_SUB without CALL ..
Avec GOSUB…RETURN, message d’erreur Return without Gosub …

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 22:50

Exact papydall, il doit y avoir un problème plus général de stockage (pile) des adresses de retour de sous-programmes...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 22:52

Exact, Papydall ! Il y a à l'évidence un vrai bug. J'espère seulement que ces petits morceaux de code permettront à Jack de cerner le problème !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyLun 4 Nov 2013 - 22:54

bon, je remets dans ma culo..
bof!:
.:


Dernière édition par cosmos70 le Mar 5 Nov 2013 - 4:09, édité 2 fois
Revenir en haut Aller en bas
papydall

papydall


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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 5 Nov 2013 - 1:41

Je crois   qu’il y a un problème d’adresse de retour si on utilise  SUB … END_SUB ou GOSUB…RETURN
Dans les deux cas, lors du retour, le programme va se brancher sur l’instruction qui suit celle qui a fait appel (soit à la procédure SUB, soit au sous-programme par GOSUB), c’est-à-dire l’instruction CASE suivante.
A ce moment, je pense que PANORAMIC ne sait plus où il en est.
Le code suivant qui contient un CASE après END_SELECT ne provoque pas d’erreur mais le programme y reste coincé et n'exécute pas l'instruction PRINT
Code:
dim i
i = 2
select i
  case 1 : message "hello"
  case 2 : message "bye"
end_select
case 3 : message "impossible"
print "ok"



Pour revenir au code de Klaus, voici ma solution qui permet l’imbrication de SELECT…END_SELECT soit par appel à une SUB soit par GOSUB (comme l’a indiqué Klaus) mais en gérant soi-même le branchement : autrement dit en se branchant à la fin de tous les CASEs.
ça marche mais ça n’empêche pas qu’il y ait un bug !

Code:
' test SELECT.bas

label case20,fin_select

dim i%
dim v1, v2
v1 = 2
v2 = 3

i% = 20
  select i%
    case 1  : message "1"
    case 2  : message "2"
    case 3  : message "3"
    case 4  : message "4"
    case 5  : message "5"
    case 6  : message "6"
    case 7  : message "7"
    case 8  : message "8"
    case 9  : message "9"
    case 10 : message "10"
    case 11 : message "11"
    case 12 : message "12"
    case 13 : message "13"
    case 14 : message "14"
    case 15 : message "15"
    case 16 : message "16"
    case 17 : message "17"
    case 18 : message "18"
    case 19 : message "19"
    case 20 : message "20" : gosub case20 : goto fin_select
' si on enlève goto fin_select, il y aura une erreur.
    case 21 : message "21" : case21() : goto fin_select
    case 22 : message "22"
    case 23 : message "23"
    case 24 : message "24"
    case 25 : message "25"
    case 26 : message "26"
    case 27 : message "27"
    case 28 : message "28"
    case 29 : message "29"
    case 30 : message "30"
    case 31 : message "31"
    case 32 : message "32"
    case 33 : message "33"
    case 34 : message "34"
    case 35 : message "35"
    case 36 : message "36"
    case 37 : message "37"
    case 38 : message "38"
    case 39 : message "39"
    case 40 : message "40"
    case 41 : message "41"
    case 42 : message "42"
    case 43 : message "43"
    case 44 : message "44"
    case 45 : message "45"
    case 46 : message "46"
    case 47 : message "47"
    case 48 : message "48"
    case 49 : message "49"
    case 50 : message "50"
    case 51 : message "51"
    case 52 : message "52"
    case 53 : message "53"
    case 54 : message "54"
    case 55 : message "55"
    case 56 : message "56"
    case 57 : message "57"
    case 58 : message "58"
    case 59 : message "59"
    case 60 : message "60"
    case 61 : message "61"
    case 62 : message "62"
    case 63 : message "63"
    case 64 : message "64"
    case 65 : message "65"
    case 66 : message "66"
    case 67 : message "67"
    case 68 : message "68"
    case 69 : message "69"
fin_select:
  end_select
  message "fini"
end
' ==============================================================

case20:
      select v1
        case 1
          message "v1: 1"
        case 2
          message "v1: 2"
        case 3
          message "v1: 3"
      end_select

return
'  ================================================================
sub case21()
    message "21"
    select v2
        case 1
          message "v2: 1"
        case 2
          message "v2: 2"
        case 3
          message "v2: 3"
    end_select
end_sub
' =================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12298
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 5 Nov 2013 - 1:46

Intéressant ! Cela devrait donner du grain à moudre à Jack !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 EmptyMar 5 Nov 2013 - 1:55

Bon, quand ça marche, en général on ne dit rien, mais quand ça ne marche pas, on essaye de savoir pourquoi.
C’est le moins que l’on puisse faire pour éventuellement aider à trouver une solution.

Attention :Quand ça ne marche pas, ne faites pas ceci
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Problème avec des SELECT...CASE imbriqués - Page 2 Empty
MessageSujet: Re: Problème avec des SELECT...CASE imbriqués   Problème avec des SELECT...CASE imbriqués - Page 2 Empty

Revenir en haut Aller en bas
 
Problème avec des SELECT...CASE imbriqués
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Problème avec select case.
» Problème avec select case Probleme réglé merci
» select, case, end_select
» Problème avec IF imbriqués
» else et select case

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: