FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:48

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 13:46

» a l'aide klaus
par Minibug Aujourd'hui à 11:42

» KGF_dll - nouvelles versions
par Minibug Aujourd'hui à 1:48

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Aujourd'hui à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» API Windows
par Klaus Jeu 7 Déc 2017 - 21:03

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

» j'ai un petit problème
par JL35 Mer 6 Déc 2017 - 21:58

» source vumetre avec delphi
par Klaus Mar 5 Déc 2017 - 23:22

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Mon Panoramic ne sait plus compter les if

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Mon Panoramic ne sait plus compter les if   Ven 30 Jan 2015 - 23:22


Code:
dim x%,a$,Nif%,Nelse%,Nthen%,Nendif%,dif%

dlist 1
file_load 1,"C:\Users\Yannick\Desktop\PPE_2_04\Recovery.bas"

memo 2
full_space 2
bar_both 2

for  x%=1 to count(1)

  a$=item_read$(1,x%)

  if instr(a$,"if")>0
    item_add 2,"("+str$(x%)+") if"
    Nif%=Nif%+1
  end_if

  if instr(a$,"else")>0
    item_add 2,"("+str$(x%)+") else"
    Nelse%=Nelse%+1
  end_if

  if instr(a$,"then")>0
    item_add 2,"("+str$(x%)+") then"
    Nthen%=Nthen%+1
  end_if

  if instr(a$,"end_if")>0
    item_add 2,"("+str$(x%)+") end_if"
    Nendif%=Nendif%+1
  end_if

next x%

item_add 2,"Nombre de if    : "+str$(Nif%)
item_add 2,"Nombre de else  : "+str$(Nelse%)
item_add 2,"Nombre de then  : "+str$(Nthen%)
item_add 2,"Nombre de end_if : "+str$(Nendif%)

if Nif%>(Nthen%+Nendif%)
  dif%=Nif%-(Nthen%+Nendif%)
  item_add 2,str$(dif%)+" if de plus"
else
  if Nif%<(Nthen%+Nendif%)
      dif%=(Nthen%+Nendif%)-Nif%
      item_add 2,str$(dif%)+" de moins"
  else
      item_add 2,"Egalité"
  end_if
end_if

end



Je me suis retrouvé avec un de ces messages énervant  Mad en voulant ajouter une procédure
à mon éditeur. 
Et voilà la surprise en créant un petit code pour retrouver mes " if, then, else, end_if". Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 31 Jan 2015 - 1:31

Arrêt - Démarrage de l' ordi
Nettoyage de disque
Anti Malware
Désinstallation ré-installation

Rien n' y fait Crying or Very sad , quelqu' un a une idée ?... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Mon Panoramic ne sait plus compter les if   Sam 31 Jan 2015 - 2:03

C'est un bug dans la compilation de Panoramic. Il y a une confusion entre les commandes IF et les mots IF dans une chaîne de caractères, ainsi que les if% dans les noms de variables. Le source suivant compile sans problème:
Code:
dim x%,a$,Nixf%,Nelxse%,Nthxen%,Nendixf%,dixf%

dlist 1
file_load 1,"C:\Users\Yannick\Desktop\PPE_2_04\Recovery.bas"

memo 2
full_space 2
bar_both 2

for  x%=1 to count(1)

  a$=item_read$(1,x%)

  if instr(a$,"i"+"f")>0
    item_add 2,"("+str$(x%)+") i"+"f"
    Nixf%=Nixf%+1
  end_if

  if instr(a$,"el"+"se")>0
    item_add 2,"("+str$(x%)+") el"+"se"
    Nelxse%=Nelxse%+1
  end_if

  if instr(a$,"th"+"en")>0
    item_add 2,"("+str$(x%)+") th"+"en"
    Nthxen%=Nthxen%+1
  end_if

  if instr(a$,"end_i"+"f")>0
    item_add 2,"("+str$(x%)+") end_i"+"f"
    Nendixf%=Nendixf%+1
  end_if

next x%

item_add 2,"Nombre de i"+"f    : "+str$(Nixf%)
item_add 2,"Nombre de el"+"se  : "+str$(Nelxse%)
item_add 2,"Nombre de th"+"en  : "+str$(Nthxen%)
item_add 2,"Nombre de end_i"+"f : "+str$(Nendixf%)

if Nixf%>(Nthxen%+Nendixf%)
  dixf%=Nixf%-(Nthxen%+Nendixf%)
  item_add 2,str$(dixf%)+" i"+"f de plus"
else
  if Nixf%<(Nthxen%+Nendixf%)
      dixf%=(Nthxen%+Nendixf%)-Nixf%
      item_add 2,str$(dixf%)+" de moins"
  else
      item_add 2,"Egalité"
  end_if
end_if

end

Je suis d'accord - c'est illisible. Mais ça marche. J'ai coupé toutes les chaînes de caractères contenant des mots-clé liés au IF...END_IF, ainsi que les noms des variables associés dans lesquels j'ai inséré un "x" pour rendre les mots-clé indétectables.

Je te suggère de poster les deux versions dans un rapport de bug, dans la rubrique appropriée.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 31 Jan 2015 - 2:10

Mais si tu écris cela :
Code:
if 1=1
  print "if"
else
  print "r"
end_if

end

Il n' y a pas de confusion...

Là où je ne comprends pas c' est sur le source de PPE 2.04.
J' ai repris tous les fichiers et je ne vois rien.
L' appel à une fonction avec 2 if...else...end_if imbriqués renvoie une erreur
en sorti avec une ligne qui ne correspond à rien si ce n' est le début d' un label.

"Change:"

scratch

Je vais mettre ca dans les bugs ou pas et Jack nous en dira plus.

En tout cas je récupère tes modifs pour tester mon source,
merci Klaus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 31 Jan 2015 - 5:30

Je n' y comprends plus rien !!!

J' ai mis à jour le zip de PPE 2.04 sur mon webdav.
Pour ceux qui voudrait jeter un oeil à mon problème :

- cliquez sur la première icône de la toolbar.
- cliquez sur "Cancel" dans la fenêtre du "message_input"

La sub appelée est ligne 1863
L' appel se fait dans le label Change ligne 258 case 2

et là affraid le résultat est plus que surprenant .

J' ai vérifié, je n' ai pas de problème avec mes if...else...end_if
J' ai le compte de if, else, end_if, then et pas de meli-melo... Rolling Eyes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Mon Panoramic ne sait plus compter les if   Sam 31 Jan 2015 - 12:46

Je pense que c'est encore un bug dans Panoramic. J'ai mémorisé le résultat de message_input dans une variable locale. J'ai ensuite testé cette variable, au lieu d'interroger directement le résultat de la fonction. Et il n'y a plus de problème:
Code:
' CREATION D UN PROJET
Sub Create_Projet()
  dim_local KGF%
  L:
'  if message_input("Nouveau projet","Nom du projet :","")=1
  KGF% = message_input("Nouveau projet","Nom du projet :","")
  if KGF%=1
      if message_text$<>""
        message message_text$
      else
        if message_warning_ok( "Vous devez donner un nom à vôtre projet !")=1
            goto L
        end_if
      end_if
  else
      exit_sub
  end_if
End_sub
' OUVERTURE D UN PROJET
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 31 Jan 2015 - 14:24

Avant de poster mon message cette nuit, pour voir, j' avais tester cela qui simule mon programme sans tout le reste :
Code:
Dim x% : x%=1
Label Choix,L

Gosub Choix

end

Choix:
  select x%
      case 1
        Ma_sub()
      case 2
  end_select
return


Sub Ma_sub()
  L:
  if message_input("ma fenêtre","Mon info :","")=1
      if message_text$<>""
        message message_text$
      else
        if message_warning_ok("Vous devez donner une info !")=1
            goto L
        end_if
      end_if
  else
      exit_sub
  end_if
end_sub

et cela fonctionne correctement. scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Mon Panoramic ne sait plus compter les if   Sam 31 Jan 2015 - 14:51

C'est une manière comme une autre de ne pas tester directement la valeur de retour de MESSAGE_INPUT, à l'intérieur d'une construction SELECT...END_SELECT. Le bug se situe à ce niveau-là. C'est bien un problème qui vient de Panoramic.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 31 Jan 2015 - 15:27

@ Klaus,

Cela étant ta solution fonctionne et je l' adopte
car, il me semble, ce sera la bonne façon de faire appel à message_input 
pour Panoramic_Compilator.

Merci pour ton aide Klaus, je me voyais déjà en train de créer une enième fenêtre... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Mon Panoramic ne sait plus compter les if   

Revenir en haut Aller en bas
 
Mon Panoramic ne sait plus compter les if
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Quelqu'un sait il se servir de GanttProject ?
» EDI réalisé entièrement en Panoramic
» EDI réalisé entièrement en Panoramic
» pas un panoramic mais utilitaires delphi.
» Programmes Panoramic en ligne de commande

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: