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.
Comment trouver si une variable est définie ? Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Comment trouver si une variable est définie ? Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Comment trouver si une variable est définie ? Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Comment trouver si une variable est définie ? Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Comment trouver si une variable est définie ? Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Comment trouver si une variable est définie ? Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Comment trouver si une variable est définie ? Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Comment trouver si une variable est définie ? Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Comment trouver si une variable est définie ? Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Comment trouver si une variable est définie ? Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Comment trouver si une variable est définie ? Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Comment trouver si une variable est définie ? Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Comment trouver si une variable est définie ? Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Comment trouver si une variable est définie ? Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Comment trouver si une variable est définie ? 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
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Comment trouver si une variable est définie ?

Aller en bas 
4 participants
AuteurMessage
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 16:19

Dans un programme, je cherche à déterminer, à plusieurs endroits, si certaines variables ont été définies par la commande dim.

Première hypothèse:
Je sais que je pourrais définir une variable "drapeau" dont l'état me dirait si ma variable cible a déjà été définié. Inconvéniant: il faut avoir une variable drapeau pour chaque variable à créer à des endroits différents, et mettre le drapeau à 1 à chaque création d'une variable. C'est lourd, difficile à étendre si je veux gérer plusieurs variables de cette manière, et je ne retiens pas cette solution.

2ème hypothèse:
Je sais que le peux faire ainsi:
Code:

label deja_existant
...

' ici, on teste:
on_error_goto deja_existant
dim i%
off_error_goto
' ici, la variable n'existait pas et a été définie
...
deja_existant:
'ici, la variable existait déjà et ne doit plus être recréée
off_error_goto
..

Cette technique marche très bien, et de façon similaire pour les labels.

Mais si je veux utiliser ce test à plusieurs, voir beaucoup d'endroits dans le programme ? Il faudrait déclarer autant de labels différents pour le on_error_goto, et ça devient très lourd !

Est-ce quelqu'un a une idée pour déterminer dynamiquement si une variable a été définie ? J'ai beau parcourir le forum et la doc, je ne vois rien à ce sujet, et avant de demander l'ajout d'une nouvelle fonction à Jack, je voulais savoir si je n'ai pas raté quelque choise !


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




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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 16:56

dynamiquement, je ne vois pas bien comment on peut faire, mais je ne vois pas trop l'intérêt non plus ?
c'est un truc à faire au moment de l'écriture du programme et et je ne vois pas l'intérêt de le faire à chaque exécution.
Enfin, il me semble... ça fait partie de la mise au point.
Alors à part passer le programme dans une moulinette qui donne la liste des variables déclarées...
Revenir en haut Aller en bas
Nardo26

Nardo26


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 17:48

Je pense savoir ce que cherche à faire Klaus...
Prend par exemple le printf en C, le nombre de paramètres est variable...
Est-ce que je me trompe Klaus ?
As-tu une idée en tête du même style ?
Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 19:00

La réponse est dans le lien ci-dessous:

https://panoramic.1fr1.net/vos-souhaits-d-amelioration-de-panoramic-f8/subroutine-function-ainsi-que-labels-et-variables-locales-t1248.htm#10672

Dans mon dernier post, je présente une "maquette" de fonctions avec paramètres réalisée entièrement en Panoramic. Et c'est une sacrée gymnastique pour détecter si une variable a déjà été définie, si oui la réinitialiser, si non, la définir.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 22:14

La solution serait d'utiliser la variable par une simple affectation et en cas d'erreur dire qu'elle n'a pas été définie, mais est-ce possible en panoramic je ne sais pas.
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyDim 21 Nov 2010 - 23:54

Oui, c'est possible. C'est l'hypothèse 2 de mon post initial. Problème: c'est qu'il faut protéger cette utilisation par un on_error_goto avec un label, et il faut donc définir autant de labels que d'endroits de test différents dans le code - c'est justement ce que je voulais éviter.

Si personne n'a une suggestion simple (car compliqué- je l'ai trouvé), je porposerais une fonction Panoramic du type
i% = defined_label("label")
i% = defined_variable("a$")
i% = defined_variable("i%()")
Le résultat serait 1 si le label ou la variable est défini, ou zéro sinon.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 0:09

J'ai une préférence pour -1 en cas d'erreur, parce que 0 fait partie des entiers souvent utilisés comme dans l'indice d'un tableau par exemple.

Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 0:34

Pourquoi pas. L'important, c'est d'avoir un équivalent true/false.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 1:08

J'ai pas tout à fait fini, mais j'ai surement la réponse.
d'abord un fichier des commandes Panoramic, à mettre en chaine de caractères. En principe, les toutes dernières n'y sont pas.
Citation :
#INCLUDE 2D_CIRCLE 2D_CLEAR 2D_FILL_COLOR 2D_LINE 2D_PEN_COLOR 2D_PEN_WIDTH 2D_POINT 2D_POLY_FROM 2D_POLY_TO 2D_RECTANGLE 2D_TARGET_IS 3D_ACTOR 3D_BOX 3D_CHAIN 3D_CHAIN_BREAK 3D_COLOR 3D_CONE 3D_CUBE 3D_CYLINDER 3D_DELETE 3D_DELETE_ALL 3D_DODECAHEDRON 3D_HIDE 3D_LINE 3D_LINE_WIDTH 3D_LOAD_OBJECT 3D_LOAD_TEXTURE 3D_MESH 3D_MOVE 3D_POINT_OBJECT 3D_SHOW 3D_SPHERE 3D_TARGET_IS 3D_TEAPOT 3D_TEXT 3D_TEXT_CHANGE 3D_TORUS 3D_TRANSPARENT 3D_X_POSITION 3D_X_ROTATE 3D_X_SCALE 3D_Y_POSITION 3D_Y_ROTATE 3D_Y_SCALE 3D_Z_POSITION 3D_Z_ROTATE 3D_Z_SCALE ABS(V) ACOS(V) ACTIVE ADR(V) ALPHA AND ASC(S) ASIN(V) ATN(V) AXES_HIDE AXES_SHOW BAR_BOTH BAR_HORIZONTAL BAR_NONE BAR_VERTICAL BEEP BIN_AND(V1,V2) BIN_OR(V1,V2) BIN_XOR(V1,V2) BORDER_HIDE BORDER_NORMAL BORDER_SMALL BRIGHTNESS BUTTON CAM_POSITION CAM_X_POSITION CAM_Y_POSITION CAM_Z_POSITION CAPTION CAPTION$(N) CARET_POSITION CASE CHECK CHECKED(N) CHR$(N) CLEAR CLICKED(N) CLIPBOARD_COPY CLIPBOARD_CUT CLIPBOARD_PASTE CLS COLOR COLOR_PIXEL_BLUE(N,X,Y) COLOR_PIXEL_GREEN(N,X,Y) COLOR_PIXEL_RED(N,X,Y) COMBO COMMAND_TARGET_IS CONTAINER_OPTION CONTRAST COS(V) COUNT(N) CURSOR_ARROW CURSOR_BEAM CURSOR_CROSS CURSOR_DEFAULT CURSOR_HELP CURSOR_HIDE CURSOR_HOURGLASS CURSOR_NOPARKING CURSOR_POINT DATA DATE$ DELETE DIM DIR_CHANGE DIR_CURRENT$ DIR_EXISTS(D) DIR_MAKE DIR_REMOVE DISPLAY DLIST DLL_CALL0(F) DLL_CALL1(F,P1) DLL_CALL2(F,P1,P2) DLL_CALL3(F,P1,P2,P3) DLL_CALL4(F,P1,P2,P3,P4) DLL_CALL5(F,P1,P2,P3,P4,P5) DLL_CALL6(F,P1,P2,P3,P4,P5,P6) DLL_OFF DLL_ON EDIT END END_IF END_SELECT END_WHILE ERROR_ENGLISH ERROR_FRENCH ERROR_LINE ERROR_NUMBER ERROR_TYPE$ EVEN(V) EXCEL_FILE_CLOSE EXCEL_FILE_NEW EXCEL_FILE_OPEN EXCEL_READ$(C) EXCEL_START EXCEL_STOP EXCEL_WRITE EXECUTE EXECUTE_WAIT EXIT_FOR EXIT_REPEAT EXIT_WHILE EXP(V) FILE_ADD FILE_CLOSE FILE_DELETE FILE_EOF(N) FILE_EXISTS(F) FILE_FIND_CLOSE FILE_FIND_FIRST$ FILE_FIND_NEXT$ FILE_LOAD FILE_NAME$(N) FILE_OPEN_APPEND FILE_OPEN_READ FILE_OPEN_WRITE FILE_READ FILE_READBUF FILE_READLN FILE_RENAME FILE_SAVE FILE_WRITE FILE_WRITEBUF FILE_WRITELN FILEBIN_CLOSE FILEBIN_OPEN_READ FILEBIN_OPEN_WRITE FILEBIN_POS(N) FILEBIN_POSITION FILEBIN_READ FILEBIN_SIZE(N) FILEBIN_WRITE FILTER FONT_BOLD FONT_BOLD_OFF FONT_COLOR FONT_ITALIC FONT_ITALIC_OFF FONT_NAME FONT_NAMES_ADD FONT_NAMES_LOAD FONT_SIZE FONT_STRIKE FONT_STRIKE_OFF FONT_UNDERLINE FONT_UNDERLINE_OFF FOR FORM FRAC(V) FULL_SPACE GAMMA GOSUB GOTO HANDLE(N) HANDLE_CANVAS(N) HCOS(V) HEIGHT HEIGHT(N) HIDE HINT HINT_HIDE HORIZONTAL HSIN(V) HTAN(V) IF IF INACTIVE INKEY$ INPUT INPUT_MARK_OFF INPUT_MARK_ON INPUT_REDO_OFF INPUT_REDO_ON INPUT_SOURCE_IS INPUT_VISIBLE_OFF INPUT_VISIBLE_ON INSERT$(S1,S2,P) INSTR(S1,S2) INT(V) ITEM_ADD ITEM_DELETE ITEM_INDEX$(N) ITEM_INDEX(N) ITEM_INSERT ITEM_READ$(N,L) KEY_DOWN_CODE KEY_DOWN_SPECIAL KEY_UP_CODE KEY_UP_SPECIAL LABEL LEFT LEFT$(S,N) LEFT(N) LEN(S) LIGHT_POSITION LIGHT_X_POSITION LIGHT_Y_POSITION LIGHT_Z_POSITION LIST LOG(V) LOG10(V) LOG2(V) LOWER$(S) LTRIM$(S) MAIN_MENU MARK_OFF MARK_ON MAX MEMO MESSAGE MESSAGE_CONFIRMATION_OK(T) MESSAGE_CONFIRMATION_YES_NO(T) MESSAGE_ERROR_OK(T) MESSAGE_ERROR_YES_NO(T) MESSAGE_INFORMATION_OK(T) MESSAGE_INFORMATION_YES_NO(T) MESSAGE_INPUT$(T1,T2,T3) MESSAGE_INPUT(T1,T2,T3) MESSAGE_TEXT$ MESSAGE_WARNING_OK(T) MESSAGE_WARNING_YES_NO(T) MID$(S,P,N) MIDI_OFF MIDI_ON MIDI_PLAY MIDI_VOLUME MIN MOUSE_LEFT_DOWN(N) MOUSE_LEFT_UP(N) MOUSE_RIGHT_DOWN(N) MOUSE_RIGHT_UP(N) MOUSE_X_LEFT_DOWN(N) MOUSE_X_LEFT_UP(N) MOUSE_X_POSITION(N) MOUSE_X_RIGHT_DOWN(N) MOUSE_X_RIGHT_UP(N) MOUSE_Y_LEFT_DOWN(N) MOUSE_Y_LEFT_UP(N) MOUSE_Y_POSITION(N) MOUSE_Y_RIGHT_DOWN(N) MOUSE_Y_RIGHT_UP(N) MOVIE NEXT NOT NUMBER_3D_OBJECTS NUMBER_EVENTS NUMBER_OBJECTS NUMBER_SPRITES NUMBER_VARIABLES NUMERIC(V$) O3D_X_POSITION(N) O3D_X_ROTATE(N) O3D_X_SCALE(N) O3D_Y_POSITION(N) O3D_Y_ROTATE(N) O3D_Y_SCALE(N) O3D_Z_POSITION(N) O3D_Z_ROTATE(N) O3D_Z_SCALE(N) ODD(V) OFF_CLICK ON_CHANGE ON_CLICK ON_ERROR_GOTO ON_KEY_DOWN ON_KEY_UP OPEN_DIALOG OPTION OR PARALLEL_INP(A) PARALLEL_OFF PARALLEL_ON PARALLEL_OUT PARAM_NUMBER PARAM_VALUE$(N) PARENT PICTURE PLAY PLAY_WAIT POINT_POSITION POINT_X_POSITION POINT_Y_POSITION POINT_Z_POSITION POSITION POSITION(N) POWER(X,Y) PRINT PRINT_LOCATE PRINT_TARGET_IS PRINT_X_LOCATE PRINT_Y_LOCATE PROGRESS_BAR READ REM REPEAT RESTORE RETURN RIGHT$(S,N) RMDIR RND(V) RTRIM$(S) SAVE_DIALOG SCANCODE SCENE2D SCENE3D SCREEN_X SCREEN_Y SCROLL_BAR SECRET_OFF SECRET_ON SELECT SELECT_READ$(N) SELECT_TEXT SET_FOCUS SGN(V) SHOW SIN(V) SORT SORT_OFF SORT_ON SOUND SPIN SPRITE SPRITE_DELETE SPRITE_DELETE_ALL SPRITE_FILE_LOAD SPRITE_HIDE SPRITE_POSITION SPRITE_SHOW SPRITE_TARGET_IS SPRITE_X_POSITION SPRITE_Y_POSITION SQR(V) STOP STR$(V) STRETCH_OFF STRETCH_ON STRING$(N,C) SUB_MENU TAN(V) TERMINATE TEXT TEXT$(N) THEN TIME$ TO TO_BACKGROUND TO_FOREGROUND TOP TOP(N) TRACK_BAR TRIM$(S) UNTIL UPPER$(S) VAL(S) VERTICAL WAIT WHILE WIDTH WIDTH(N)

un petit programme qui n'est pas fini, mais j'arrète (fatigué). En principe, il ne restera plus qu'à retirer les chaines de caractères.

Vois si tu veux faire quelque chose avec ce programme qui n'est pas fini, mais tu codes plus vite que moi.
Sinon poubelle!
T'es une bête en programmation!

Code:

' essayer de retrouver toutes les variables
dim f$,instruction$ ,a% ,v% ,a$,b$ ,c$ ,b% ,separe$ ,guil%
separe$=" <>=,:/*-+()"+chr$(34)

' ligne teste
a$= "  for a%=1 to 10: print a%,"+chr$(34)+"je ne sais pas"+chr$(34)

' si tu as le fichier des instructions, c'est ici, xinon mettre la liste que je t'ai donné
dlist 1:file_load 1,"C:\TESTE\AIDE_PANORAMIQUE\liste_des_fiches.txt"
memo 2:left 2,200:bar_both 2

' là mettre à la place la chaine d'instruction par le moyen qui te convient dans instruction$.
instruction$=" "
for a%=1 to count(1)
instruction$=instruction$+ item_read$(1,a%)+" "
next a% 
' message instruction$
' ICI c'est pour décoder une seule ligne,il faudrait le faire pour un fichier

  a$=trim$(a$) :guil%=0
  repeat
      for a%=1 to len(a$)
        b$=mid$(a$,a%,1) : if b$=chr$(34) then guil%=-1-guil%
        v%=  instr(separe$ , b$)
        if v%>0
            b$=mid$(separe$,v%,1)
            v%=instr(a$,b$)
            c$=left$(a$,v%-1)  :  message c$
            if numeric(c$)=0
              b%=instr(instruction$," "+upper$(c$)+" ")
              if b%>0 then message "instruction:"+c$ :' les chaines si guil%à -1 seront à exclure
            end_if
            exit_for
        end_if
      next a%
      a$=trim$(mid$(a$,v%+1,500))
      item_add 2,"---------"
  until v%=0

Il ne restera plus qu'à récupérer les variables, et les mettre en haut du programme. Désolé de ne pas continuer, mais j'en ai mare, et tu sembles pressé0

Bonne nuit!
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 1:27

Peut-être d'ouvrir ton fichier de programme en lecture seule, de chercher ta variable à l'intérieur, et normalement le premier endroit où elle doit être trouvée c'est une déclaration dim, donc tu regarde s'il y a bien un dim devant ta variable trouvée, si c'est le cas c'est qu'elle est déclarée.

Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 1:45

Non, dragonno, ce n'est pas si simple que ça. La commande dim est une commande comme une autre, elle est "exécutable", et les erreurs lors d'un dim (variable déjà définie, par exemple) peuvent être interceptées par un on_error_goto. Tu peux très bien faire ceci:
Code:

label declarations
gosub declarations
coucou$ = "coucou"
print coucou$
end

declarations:
dim coucou$
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 1:51

Mais la variable doit au moins se trouver une fois à la suite d'un Dim sinon c'est qu'elle n'est pas déclarée, enfin je vois pas trop la difficulté si on le voit comme ça.
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 1:54

Oui, ma s DYNAMIQUEMENT ! C'est à dire que le DIM doit être exécuté CHRONOLOGIQUEMENT avant l'utilisation de la variable. Nul besoin de placer de DIM en haut du source pour pouvoir utiliser la variable en bas ! Regarde mon exemple.

Et c'est bien ce qui pose problème au niveau d'une analyse d'un fichier source, et c'est bien pourquoi Cosmos70 met les dim en commentaire pour les palcer au début du fichier...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 2:04

Toi ce que tu voudrais, c'est avant d'utiliser une variable en cours d'execution, pouvoir tester sa déclaration avant d'utiliser la variable, c'est ça ?

Car si c'est ça, chercher la déclaration d'une donnée dans un source peut suffire non ?
même si le programme est déjà lancé, ça gêne quoi ?
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 10:21

Cela voudrait dire qu'à-côté du programme compilé en *.exe, il faut avoir le source *.bas sous la main. Et d'autre part, je ne vois absolument pas comment, en exécution, on peut voir dans le source si telle o telle variable a été définie, puisqu'il n'y a aucun rapport entre les numéros de lignes et l'ordre dans lequel les lignes sont exécutées, de plus il peut y avoir des INCLUDE dont il faudrait avoir les sources aussi, etc. Crois-moi, techniquement, ce n'est pas faisable. Regarde bien mon petit bout de code - il n'y a pas moyen de savoir, en le parcourant, si de dim a été fait ou non. Le commande "gosub definitions" pourraite même être "if xxx then gosub definitions", ou la commande dim pourrait être "if xxx then dim yyy" etc. Il n'y a que le noyau de Panoramic qui sait si une variable ou un label a été defini, à un instant donné, et il faudrait pouvoir le lui demander.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyLun 22 Nov 2010 - 13:17

Oui tu as raison dans tous ces points Wink
J'essaie de trouver une solution la plus simple mais je crois qu'il n'y en a pas tout simplement et que le mieux est d'attendre que cela arrive en haut de la file d'attente des ajouts de panoramic :/
Revenir en haut Aller en bas
Invité
Invité




Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 0:45

J'ai enfin réussi à faire en sorte que toutes les variables soient dynamiques, avec les pseudos variables locales. Mais je vais rajouter une fonction pour qu'au delà d'un préfixe auto déterminé par le programme, du genre un deux trois..., on puisse imposer son propre préfixe. Et j'aimerai aussi pouvoir plutôt que de choisir un préfice avec un trait de soulignement, avoir la possibilité de capitaliser un nom de variable. Maintenant ils faut tester et tester.

Je trouver une méthode simple à partir de l'éditeur de Panoramic, que tout se face en arrière place, à partir du programme que l'on écrit avec ce type de programmation. Avec l'éditeur PsPad, c'est plus facile, mais il en faut pour tout le monde. Ensuite c'est à vous de voir.
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 0:51

Comment fais-tu pour capitaliser un nom de variable de façon significative ? J'utilise les lettres capitales uniquement de façon visuelle, comme dans "dim MaVariable_de_TEST", mais pour Panoramic, c'est absolument identique ) "dim mavariable_de_test". On le voit bien avec "dim a$, A$" qui provoque une erreur...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 1:19

Excuse pour l'erreur. Il ne s'agit que de présentation pour une meilleurs lecture, sans plus. Vu que ce sont des préfixes qui se rajoutent, et que l'on n'écrit pas. J'ai choisi pour l'instant le caractère "&", mais je me demande si "²" serait pas mieux pour écrire les programmes. est que ²a% n'est pas plus présentable que &a%?

Dans un include ou un sous programme(si on définit pour ce dernier un préfixe) j'écris par exemple: ²a%=²a%*²carre%+ chr$(²a$), et ça me le remplace avec par exemple un préfixe "calcul":
calcul_a%=calcul_a%*calcul_carre%+ chr$(calcul_a$). Les variables sont définies par le programme et mis en haut de celui-ci

Je ne sais pas si cela plait à quelqu'un. En tout cas, je vais m'en servir, et c'est le principal.
Revenir en haut Aller en bas
Klaus

Klaus


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

Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 1:52

Ton idée du préfixe est bonne. Cela rejoint mon idée pour les variables locales dans des subroutines et fonctions, en tout cas pour le simulation avec les moyens actuels de Panoramic.

Si, comme je l'espère, Jack accepte d'implémenter ces commandes, je pense que lui aussi choisira un moyen d'adapter les noms des variables et labels, mais certainement avec des caractères invisibles pour éviter des conflits avec ce que les programmeurs peuvent écrire. Ce n'est évidemment pas à notre niveau que nous pouvons faire cela.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 12:18

C'est toi qui m'en a donné l'idée. Donc cela te revient!
Revenir en haut Aller en bas
Invité
Invité




Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? EmptyMer 24 Nov 2010 - 22:56

Je voudrais essayer le programme simple, qui fasse appel aux includes (au moins deux), et même un include qui appel un autre, voir le résultat à la suite dans le programme, et avec des mélanges de variables locales et globales. Je veux vérifier que les préfixes correspondent bien à la partie du programme concernée. Et je manque d'idée là dessus.
Si quelqu'un veut bien donner un exemple, j'arriverai enfin à être assuré que mon programme est ok!

Je sèche lamentablement! Nul le mec!

Ceci pour en faire la démonstration et l'explication de la méthode.
Revenir en haut Aller en bas
Contenu sponsorisé





Comment trouver si une variable est définie ? Empty
MessageSujet: Re: Comment trouver si une variable est définie ?   Comment trouver si une variable est définie ? Empty

Revenir en haut Aller en bas
 
Comment trouver si une variable est définie ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment trouver les disques durs ou lecteurs du systeme ?
» 2ème "dim" sur variable EFFACE la variable
» RESOLU : petit code à tester, trouver l'erreur^^
» Aide pour trouver un problème de détection de collisions
» [Résolu] Trouver la taille d'une image BMP

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: