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
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Bug de PANORAMIC.EXE

Aller en bas 
AuteurMessage
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Bug de PANORAMIC.EXE   Mar 9 Fév 2016 - 21:17

Bonjour à tous

Dans certaines situations, les sources lancés avec PANORAMIC.EXE sont éxécutés 2 fois.
Les 2 sources de test sont à enregistrer dans le même répertoire:
Code:
' fichier1
dim f$
f$="C:\Program Files\Panoramic Editor\sources\fichier2.bas"
if file_exists(f$)=0 then print "fichier introuvable!" : end
execute "PANORAMIC0927i5.exe " + f$
terminate
Code:
' fichier2
print rnd(1000)
wait 2000
' print error_line   :' provoque volontairement une erreur
' terminate

Pour reproduire le bug:
-exécutez 'fichier1' ---> 'fichier2' s'execute 2 fois
-dans 'fichier2', enlever le rem de la ligne 5, enregistrez et executez 'fichier1' --->'fichier2' s'execute 1 seule fois
-dans 'fichier2', enlever le rem de la ligne 4, enregistrez et executez 'fichier1' --->'fichier2' s'execute 2 fois


Dernière édition par silverman le Mer 15 Fév 2017 - 15:59, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Bug de PANORAMIC.EXE   Mar 9 Fév 2016 - 21:17

maj post précédent
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Bug de PANORAMIC.EXE   Mer 15 Fév 2017 - 15:57

Plus rien ne marche avec la version 0927? Je n'arrive plus à lancer un source avec la version sans editeur Shocked
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Bug de PANORAMIC.EXE   Mer 15 Fév 2017 - 16:47

Citation :
Pour reproduire le bug:
-exécutez 'fichier1' ---> 'fichier2' s'execute 2 fois
-dans 'fichier2', enlever le rem de la ligne 5, enregistrez et executez 'fichier1' --->'fichier2' s'execute 1 seule fois
-dans 'fichier2', enlever le rem de la ligne 4, enregistrez et executez 'fichier1' --->'fichier2' s'execute 2 fois
Il y a un vieu bug, signalé déjà à plusieurs reprises, concernant le llancement de programmes Panoramic par programme. Jack a tenté d'y remédier à plusieurs reprises.

En gros, ce qui se passe, un EXE créé avec Panoramic démarre d'abord dans initerpréteur Panoramic. Ce dernier va ensuite analyser les paramètres. Si le paramètre est un chemin et nom d'un fichier BAS, il sera exécuté avant même le programme pour lequel l'EXE a été génére. Puis, ce sera le tour du programme réel contenu dans l'EXE. Il y a un vrai problème au niveau du lancement, ce qui conduit, effectivement, à un pseudo-double lancement, dans certains cas. Espérons qu'à l'aide des codes postés ci-dessus, Jack saura mettre le doigt dessus...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Mer 15 Fév 2017 - 19:19

Et dans certains cas, ça coince carrément l'ordinateur
à tel point qu'il faut faire un reset, c'est embettant.
Espérons effectivement que Jack trouve bientôt la solution.
scratch alien pale affraid
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Oscaribout



Nombre de messages : 173
Date d'inscription : 29/12/2016

MessageSujet: Re: Bug de PANORAMIC.EXE   Jeu 16 Fév 2017 - 0:01

Embêté par ce bug il y a quelque temps, j'avais trouvé une solution. J'avais voulu retrouvé la méthode pour mon programme en cours, et finalement je viens de retrouver le principe.

J'essaye de mettre le programme en défaut pour le tester avant de vous le donner, mais je n'arrive pas à avoir de clone une seule fois. Peut-être pourriez-vous vérifier que ça marche, vu que ce problème n'intervient que par moment.

Code:
' teste de blocage double démarrage de Panoramic
' Si le programme est déjà lancé au départ, il a fait une copy d'arrêt pour le clone du programme
wait 1000
if clipboard_string_paste$ = "Arret"  then arret_clone()
clipboard_string_copy "Arret" :'  pour le clone

' ------------- ici le code GUI ---------------



wait 1500 : clipboard_string_copy "" :' pour un bon départ suivant.
END
' =============================================
' procédures et sous-programme


' =============================================
' -------- Pour le clône de Panoramic ---------
sub arret_clone()
   clipboard_string_copy " "
   terminate :' le clone s'arrète, mais permet un redémarrage suivant
end_sub

' pour le cas où le programme avec ses code serait systématiquement fermé
' sélection et copier n'importe quoi, en dehors de Arret

Je ne suis pas sure que cela marche à tous les coups.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Bug de PANORAMIC.EXE   Jeu 16 Fév 2017 - 12:08

@oscaribout
j'ai déjà réglé ce problème de double démarrage et j'utilise le même principe que toi, mais je cré un fichier vide comme marqueur "arret". Je n'avais pas pensé à utiliser le presse-papier, c'est une bonne idée!

@tous
J'ai déterré un ancien post involontairement, ce que je voulais dire en fait, c'est:
Code:
execute "PANORAMIC.exe " + "monsource.bas"
ne fonctionne plus avec la version 0927
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 0:28

Pour lancer un programme Panoramic avec des paramètres, essayez de placer le paramètre en deuxième paramètre et de le prendre dans le programme lancé par PAMAM_VALUE$(2), comme ceci:
Code:
execute MonProgramme.exe " " param
pour le prendre dans MonProgramme comme ceci:
Code:
p$ = param_value$(2)
Ceci permet d'éviter un double lancement du programme MonProgramme.exe.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 13:19

Je ne passe pas de paramètre, je me contente juste de lancer un source '.bas', et ton astuce est impossible à réaliser avec la version de panoramic sans éditeur.
Avec la version de panoramic sans éditeur, il y a juste le menu 'open', et je peux éxécuter un source sans problème.
Pour la version 0927:
Lancer la version de panoramic sans éditeur  à partir de la commande 'execute', sans paramètre, ça marche.
Lancer la version de panoramic sans éditeur à partir de la commande 'execute' pour éxécuter un source, ça ne marche plus, alors que cela fonctionnait parfaitement sous une ancienne version(0927i5 dans mon cas).

As-tu des soucis similaires pour Synedit_Editor? Parviens-tu à éxécuter un fichier '.bas'?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 14:13

Voici un exemple simple qui marche, et qui déjoue les pièges des guillemets autour des noms longs avec espaces:
Code:
dim dir$    : dir$ = dir_current$ + "\"
dim exec$  : exec$ = "PANORAMIC.exe"
dim source$ : source$ = "test.bas"
dim cmd$    : cmd$ = "test.bat"
dim s$

' construction du code Panoramic à lancer
s$ = "message "+chr$(34)
s$ = s$ + "coucou"
s$ = s$ + chr$(34)
if file_exists(dir$+source$)=1 then file_delete dir$+source$
file_open_write 1,source$
file_writeln 1,s$
file_writeln 1,"terminate"
file_close 1

' construction d'un fichier BAT à lancer
if file_exists(dir$+cmd$)=1 then file_delete dir$+cmd$
file_open_write 1,cmd$
s$ = "cd "+chr$(34)+dir$+chr$(34)+" "
file_writeln 1,s$
s$ = exec$+" "+source$
file_writeln 1,s$
file_close 1

' exécution
execute dir$+cmd$
end
On voit apparapitre une fenêtre DOS, et c'est normal. Sur le forum, il y a moultes exemples comment éviter une telle fenêtre utilisant VBScript.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Oscaribout



Nombre de messages : 173
Date d'inscription : 29/12/2016

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 14:30

Silverman a écrit:
Lancer la version de panoramic sans éditeur à partir de la commande 'execute' pour éxécuter un source, ça ne marche plus, alors que cela fonctionnait parfaitement sous une ancienne version(0927i5 dans mon cas).

Si je comprend bien, cela veut dire: exécuter un source.

Pourquoi pas plutôt CHAIN qui est conçu pour cela.

J'ai voulu faire un teste d'exécuter avec 'execute' un source, mais malheureusement n'importe quel éditeur de Panoramic (même 1 de 2010) se termine par 'impossible RUN'. Ilk va falloir de nouveau que je relance Windows.

Maintenant pour Panoramic j'ai repris un ancien éditeur qui fonctionne et qui a les mot-clefs, aide... Si vous êtes d'accord pour en parler, j'en reparlerai dans un autre sujet que j'ai ouvert (mais c'est pas l'éditeur que j'ai présenté). Pour le cas où, et ça marche bien. J'en ai eu marre de Panoramic_Editor qui ne va plus du tout, et pour lequel Jack n'intervient pas Exclamation Il doit y avoir une incompatibilité avec Windows. Petit à petit Panoramic_Editor s'abime ou bloque Windows, je ne sais pas.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 14:40

Non, Panoramic_Editor n'a jamais été conçu pour pouvoir être lancé en mode commande avec le nom d'un fichier source en paramètre. Si jamais ça a marché dans le passé, c'était un effet sécondaire.

Depuis fort longtemps, Jack publie une version "sans éditeur" pour chaque version Panoramic. Ce programme est apelé Panoramic.exe. Une petite remarque personnelle: ce nom est très mal choisi, étant donné que l' fichier exécutable généré et lance par Panoramic_Editor.exe s'appelle Panoramic.exe également... mais passons.

Ce programme Panoramic.exe peut être lancé en mode interactif, auquel cas il présente un menu avec une seule option permettant d'ouvrir le fichier source à exécuter.

Ce programme Panoramoc.exe peut également être lancé en mode commande (et c'est précisément cue qui se passe dans mon exemple), et il, il prend le nom du fichier source dans les paramètres de la commande. Ceci est le mode normal et préféré - Panoramic.exe a été conçu pour cela.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 16:47

@Klaus
Ton exemple fonctionne.
Après de multiple essais, je viens de comprendre : en fait, c'est un nouveau bug de la commande 'execute' qui est apparu avec la version panoramic_editor0927, mais qui n'était pas présent avec la version panoramic_editor0927i5.
Code:
dim prog$,par$
'
dir_change "C:\Program Files\Panoramic Editor V 0.9.25"
'
prog$="PANORAMIC0927.exe" : if file_exists(prog$)=0 then message prog$+" pas trouvé!":end
prog$=prog$+" "
par$="test.bas" : if file_exists(par$)=0 then message par$+" pas trouvé!":end
'
 execute prog$ + par$
Ce code fonctionne parfaitement sous panoramic_editor0927i5, mais ne marche plus avec la version panoramic_editor0927!

Cependant, j'ai codé une alternative(shell execute) qui fonctionne parfaitement. Pour ceux que ça intéresse:
Code:
' plus de détails, en anglais:
' https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx

dim File_dir$,File$,Parameters$,Directory$
'
'
Directory$ = "C:\Program Files\Panoramic Editor V 0.9.25" : if dir_exists(Directory$)=0 then message Directory$+" pas trouvé!":end
'
' File_dir$ = "C:\Documents and Settings\Silverman\Bureau"   :' un exemple de chemin absolu
 File_dir$ = ""   :' rien donc le chemin de 'File$' est relatif à 'Directory$'
File$ = File_dir$ + "panoramic0927.exe" : CHECK_FILE_EXIST(File$,Directory$)
'
Parameters$ = "test.bas" : CHECK_FILE_EXIST(Parameters$,Directory$)



' lance un programme source
RUN_FILE(File$,Parameters$,Directory$)




END
sub RUN_FILE(File$,Parameters$,Directory$)
'
' File$ : fichier éxécutable. Le chemin de ce fichier peut être relatif(le fichier est recherché dans 'Directory$') ou absolu(dans ce cas, il faut écrire en entier chemin+fichier)
' Parameters$ : fichier à lancer
' Directory$ : chemin du fichier 'Parameters$'
'
   if variable("shell32%")=0
      ' commande : copie de mémoire
      dim kernel32%
      kernel32%=3
      LIBRARY kernel32%,"kernel32"
      command "copy_memory","RtlMoveMemory",kernel32%,"III","stdcall"
      ' ex.: copy_memory adr(destination), adr(source), taille_en_octet%


      ' commande : shell
      dim shell32%
      shell32%=5
      LIBRARY shell32%,"shell32"
      command "run","ShellExecuteA",shell32%,"IIIIII","stdcall"
      ' ex.: run hwnd%,adr(Operation$), adr(File$),adr(Parameters$), adr(Directory$), ShowCmd%
   end_if

   '
   dim_local null%
   dim_local hwnd%,Operation$,ShowCmd%   :' ,File$,Parameters$,Directory$
   dim_local lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%

   hwnd%=0
   Operation$="open" : copy_memory adr(lp_Operation%),adr(Operation$),4
   ' File$="panoramic0927.exe" :
   copy_memory adr(lp_File%),adr(File$),4
   ' Parameters$="test.bas" :
   copy_memory adr(lp_Parameters%),adr(Parameters$),4
   ' Directory$="C:\Program Files\Panoramic Editor V 0.9.25" :
   copy_memory adr(lp_Directory%),adr(Directory$),4
   ShowCmd%=10

   run hwnd%,lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%,ShowCmd%
end_sub


sub CHECK_FILE_EXIST(File$,Directory$)
' vérifie l'existence d'un fichier dont le chemin est absolu ou relatif à 'Directory$'
   if file_extract_path$(file$)=""
      if file_exists(Directory$+File$)=0 then message Directory$+File$+" pas trouvé!":end
   else
      if file_exists(File$)=0 then message File$+" pas trouvé!":end
   end_if
end_sub


@oscaribout
Tu as raison, on peut utiliser la commande 'chain', mais on ne peut pas passer de paramètre avec cette commande.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Bug de PANORAMIC.EXE   Ven 17 Fév 2017 - 19:00

Citation :
Tu as raison, on peut utiliser la commande 'chain', mais on ne peut pas passer de paramètre avec cette commande.
Une autre différence, et de taille, celle-là: alors que les commandes EXECUTE et EXECUTE_WAIT lancent un autre programme puis permettent au programme d'origine de continuer, la commande CHAIN ne le permet pas. Elle est équivalente à une commande EXECUTE, suivie immédiatement de TERMINATE.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Bug de PANORAMIC.EXE   

Revenir en haut Aller en bas
 
Bug de PANORAMIC.EXE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 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
» lol, panoramic dans google ;)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un bug dans PANORAMIC?-
Sauter vers: