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.
variables locales - Variables locales et DIM dynamique Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
variables locales - Variables locales et DIM dynamique Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
variables locales - Variables locales et DIM dynamique Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
variables locales - Variables locales et DIM dynamique Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
variables locales - Variables locales et DIM dynamique Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
variables locales - Variables locales et DIM dynamique Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
variables locales - Variables locales et DIM dynamique Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
variables locales - Variables locales et DIM dynamique Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
variables locales - Variables locales et DIM dynamique Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
variables locales - Variables locales et DIM dynamique Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
variables locales - Variables locales et DIM dynamique Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
variables locales - Variables locales et DIM dynamique Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
variables locales - Variables locales et DIM dynamique Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
variables locales - Variables locales et DIM dynamique Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
variables locales - Variables locales et DIM dynamique 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 du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Variables locales et DIM dynamique

Aller en bas 
3 participants
AuteurMessage
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 8:24

Ceci est un premier teste, et avoir vos avis.
modifier le 26/11/10 à 10h35
modifier le 26/11/10 à 14h40 ajout de PREFIXE><
modifié à 17h00


Ceci permet, pour avoir une définition au départ, de coder en évitant toute déclaration des DIM. De toute façon, toutes les lignes dim sont détruite, pour être reconstruite à la fin. Ensuite de faire des pseudo variables locales dans le programme, partir avec des variables qu'on a utilisées auparavant, mais avec l'aide d'un caractère qui précède celle-ci est qui est:² d'ajouter automatiquement un ou deux préfixe à celle-ci.

Ainsi si on veut se resservir de a%, qui est déjà utilisé, au tape par exemple: ²a%=²a% -1. On aura une nouvelle variable, lorsque l'on découvrira le programme, qui pourra être par exemple Test_a%, selon ce qui aura été défini au départ. Il faut savoir que chaque include aura automatiquement un autre préfixe. On pourra aussi lui donner un autre nom que celui défini au départ.

En parallèle avec les discutions:
https://panoramic.1fr1.net/a-l-aide-f6/comment-trouver-si-une-variable-est-definie-t1255-15.htm#10763
donc: La difficulté est de pouvoir de manière simple à appeler de manière simple un chargeur qui permet d'intercepter le programme à décoder

Je connais deux méthodes avec l'éditeur Panoramic, et pour l'instant, je ne m'occupe que de celui-ci:
soit enregistrer le programme avant de le lancer, soit passer par le presse papier. J'ai choisi pour l'instant de partir avec la 1ère partie, c'est à dire charger le fichier à partir du disque. Pour ce faire, il est indispensable de mettre des lignes au début de tout programme qui se servira de cette méthode. Ces lignes sont provisoire et seront détruite lors du décodage du programme. Ce sont celles-ci:

Code:

 ' Programme outils permettant de programmer avec de variables dynamiques et aussi locales
 ' instructions complémentaire, en majuscules et seules sur une ligne:
 ' PREFIXE>²<  soit du préfixe dans la définition de la variable. Est permis: ²^°~&§|{}[] sinon arrêt du prg
 ' FICHE>préfixe<  : définissant un préfixe suplémentaire, à la place "²"
 ' FICHE_CLEAR  identique à FICHE><  : annule le préfixe suplémentaire
 '    au fur et à mesure de leur lecture. Les variables sont définies à la fin du décriptage
 '    et toutes remises en haut du programme.
 
' En haut du programme, afin de minimiser les manipulations pour le lancement de décodage, rajouter:
' les lignes suivantes sont exécutables dans le programme et ne sont pas des commentaires
                          ' début
'  clipboard_string_copy "C:\TESTE\M_au _P_TRACE\teste prg.bas"
'  label fin :' modifier le label selon votre programme
'  EXECUTE "C:\TESTE\PROCEDURE\DIM_Global_Local\Dim_global_local.exe"
'  wait 1500:goto fin
'  end
                          ' fin
' le "end" est la fin de ce mini programme. c'est lignes seront supprimées avant exécution!
' cette méthode permet de fermer le programme codé automatiquement sans faire de bruit.

' LE PROGRAMME COMMENCE ICI

hide 0
form 10:width 10,500:height 10,100:left 10,screen_x/2-250:top 10,screen_y/2-50
ALPHA 29:parent 29,10:font_size 29,10:top 29,20:left 29,30:font_bold 29
 dim f$
 ' f$ = clipboard_string_paste$
' Pour les includes
 width 0,screen_x:height 0,1000 :top 0,100 :caption 0,"Dépileur d'include"
'

error_french
dim a%,b%,c%,d%,g%,a$,b$,c$,d$,v% ,pref$ ,lig_b% ,flag_efface%, lig_a% ,mot$,local$, nb% ,A ,B ,C ,D ,E ,F ,G
dim caption_form$ , clear_dim% , ligne% ,ligne$,instruction$,separe$,a1$,v1% ,flag_prg% ,H ,flag_guil% ,prefix$
label control , control0 ,controlform0 ,sort_repeat,sort_next
data Un,Deux,Trois,Quatre,Cinq,Six,Sept,Huit,Neuf,Dix

separe$=" <>=,:/*-+()"+chr$(34)  : prefix$="²"
A=21 : B=22 : C=23 : D=24 : E=25 : F=26 : G=27 : H=28  : ' numéro pour être repris dans un autre programme
memo  A:hide A:' width A,screen_x-400:height A,860:font_size A,12 :font_name A,"Bistream Vera Sans Mono"
memo  B: hide B
memo  H:hide H :' width H,screen_x/2-10:height H,560:font_size H,12:left H,screen_x/2
dlist C

  file_load A,"C:\TESTE\M_au _P_TRACE\teste prg.bas"  :'              sert pour les testes en direct
 ' file_load A,"C:\TESTE\PROCEDURE\DIM_Global_Local\teste prg.bas"      ""
' file_load A, f$
  caption 29,"Patientez! re-définition des variables"+chr$(13)+f$
for a%=1 to 10:read a$:item_add C,a$:next a%
dlist  E:' top E,570:height E,300:left E,screen_x-250:width E,240 :font_size E,10
dlist  F:' top F,570:height F,300:left F,screen_x-400 :width F,140 :font_size F,10
dlist  G
bar_horizontal A:bar_horizontal B

  a%=1  :nb%=0
 
' -------------------------------------------------------
' on retire les lignes du programme qui chargent celui-ci (VOIR LES INSTRUCTIONS)
  repeat
      a$=trim$(item_read$(A,1))
      item_delete A,1
      a%=a%+1
  until a$="end" and a%>5
  if a%>9 then message "on stop, ne trouve pas de 'end' dans les premières lignes":terminate
 
' -------------------------------------------------------

' si tu as le fichier des instructions, c'est ici, sinon mettre la liste que je t'ai donné
dlist 1:file_load 1,"C:\TESTE\AIDE_PANORAMIQUE\liste_des_fiches.txt" :' vient du lien que Jack avait fourni (les fiches)
for a%=1 to count(1)  :  b$=item_read$(1,a%)
  ' on retire la fin si il y a des parenthèses, autrement la fonction est prise pour une variable
  ' nota, les dernières instructions ne sont dedans
  if instr(b$,"(")>0 then b$=left$( b$, instr(b$,"(") -1):item_delete 1,a%:item_insert 1,a%,b$
next a%
for a%=1 to count(1)
instruction$=instruction$+ item_read$(1,a%)+" "
next a%
' rajout des instructions qui ne sont pas fichées.
instruction$=instruction$+"INCLUDE FICHE TO LOCAL " :' on rajoute ici les instructions qui manquent

' DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT DEBUT

  ligne%=1 : nb%=0
  repeat
      a$=item_read$(A,ligne%) :a$=rtrim$(a$)
      if instr(trim$(a$),"LOCAL>") > 0
        a$=trim$(a$) :flag_efface%=1
        caption_form$=mid$( trim$(a$)  ,instr(a$ ,"LOCAL>")+6,100):caption_form$=left$(caption_form$, len(caption_form$)-1)
        if left$(caption_form$,1)=chr$(34) then caption_form$= mid$(caption_form$,2,300)
        if right$(caption_form$,1)=chr$(34) then caption_form$=left$(caption_form$,len(caption_form$)-1)
        item_delete C,1:item_insert C,1,caption_form$
        goto sort_repeat
      end_if

      ' ---------------------------------------------

      if left$(trim$( upper$(a$)) ,8) ="#INCLUDE"
        ' INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE
        local$="" :clear_dim%=0  : nb%=nb%+1
        v%=instr( upper$(a$),"#INCLUDE")
        c$=mid$( a$,v% +9,80 )  :c$=trim$(c$)            :' chemin complet de l'include
        if left$(c$,1)=chr$(34) then c$=mid$(c$,2,80)
        item_add B,"' #" + str$(nb%) + " dépilé: " + trim$(a$)
        lig_b% = count(B) : lig_a% = ligne%
        item_delete A,lig_a%
        file_add B,c$  :' on rajoute le fichier include après avoir détruit #INCLUDE chemin\prg.bas

        while lig_b%<=count(B)
            a$=item_read$(B,lig_b%)  :  gosub control
            if flag_efface%=0 then item_insert A,lig_a%,a$ :lig_a%=lig_a%+1 :' supprime les commandes sup
            item_delete B,lig_b%                                            :' avec flag_efface%=1
        end_while
        local$="" :caption_form$=item_read$(C,1) :' on récupère le préfixe du programme normal
      else
        ' PROGRAMME PROGRAMME PROGRAMME PROGRAMME PROGRAMME PROGRAMME PROGRAMME PROGRAMME

        clear_dim%=0  :  gosub controlform0
sort_repeat:
        item_delete A , ligne%      :if flag_efface%=1 then ligne%=ligne%-1
        if flag_efface%=0 then item_insert A,ligne%,a$
        flag_efface%=0
      end_if
      ligne%=ligne%+1
      local$=""
  until ligne%> count(A)
' /////////////////////////////////////////////////////
' fin de traitement. On insert tous les dim(s)

  if count(E)>0
      a$="dim " :  b%=2  :' b%= ligne d'insertion dans A , on insert en ligne 2 au départ
      for g%=1 to count(E)
        a$=a$+item_read$(E,g%)
        if g%/8=int(g%/8)
            item_insert A,b%,a$:a$="":b%=b%+1:if g%<count(E) then a$="dim "
        else
            a$=a$+" , "
        end_if
      next g%:if a$<>"" then a$=left$(a$,len(a$)-2)
      if a$<>"dim " and a$<>"" then item_insert A,b%,a$:b%=b%+1

  end_if

  if count(F)>0
      a$="dim "
      for g%=1 to count(F)
        a$=a$+item_read$(F,g%)
        if g%/8=int(g%/8)
            item_insert A,b%,a$:a$="":b%=b%+1:if g%<count(F) then a$="dim "
        else
            a$=a$+" , "
        end_if
      next g%:if a$<>"" then a$=left$(a$,len(a$)-2)
      if a$<>"dim " and a$<>"" then item_insert A,b%,a$
  end_if
  hide 10
  file_save A,"C:\temp\Panoramic.bas" :' pour récupérer le programme décodé
  file_save E,"C:\temp\dim.txt"      :' pour voir toutes les variables
  chain "C:\temp\Panoramic.bas"
  stop
END
' =======================================================================================================
' END END END END END END END END END END END END END END END END END END END END END END END END END END
'  END END END END END END END END END END END END END END END END END END END END END END END END END

controlform0:
' pour la forme 0
  pref$=caption_form$
  flag_prg%=0
  goto control0
return
' ==============================================================================
control:
  flag_efface%=0 :flag_prg%=1
  pref$=item_read$(C,nb%) :clear G
control0:
  ' partie recherche dim et variables globales

  if instr(trim$(a$),"PREFIXE>")> 0
      a$=trim$(a$) :flag_efface%=1
      prefix$= mid$( a$,instr( a$,"PREFIXE>")+8,1)
      if instr("²^°~&§|{}[]",prefix$)=0
        message "préfixe choisi interdit!  "+prefix$+chr$(13)+"seule les préfixes suivants sont possible:  ² ^ ° ~ & § | { } [ ]"+chr$(13)+"arrêt du programme pour le modifier!":terminate
      end_if
    a$=""
  end_if
  if left$(pref$,1)="|" then pref$=upper$( mid$( pref$,2,1)) + lower$( mid$( pref$,3,100))
  ligne$=trim$(a$)
  if left$(a$,1)<> " " then a$=" "+a$
 
  if instr( a$ , "FICHE>" ) > 0  and  instr( a$ , "FICHE><" ) =0
      b$=mid$( a$, instr(a$,"FICHE>")+6,100)
      local$=left$( b$,instr(b$,"<")-1)
      if left$(local$,1)="|"
        local$= upper$( mid$( local$,2,1)) + lower$( mid$( local$,3,100) )
      else
        local$="_"+local$:if local$="_" then local$=""
      end_if
      a$=""  :flag_efface%=1
      ligne$=""
  end_if
  if ligne$<>""
      repeat
      v%=instr(ligne$,chr$(34))
      if v%>0
            a1$=mid$(ligne$,v%+1,500)
            v1%=instr(a1$,chr$(34))
            if len(a1$)>v1%
              ligne$=left$(ligne$,v%-1)+mid$(a1$,v1%+1,300)
            else
              ligne$=left$(ligne$,v%-1):if right$(ligne$,1)=":" then ligne$=left$(ligne$,len(ligne$)-1):' c'est pas un label
            end_if
      end_if
      until v%=0 or scancode=27 :if scancode=27 then end

      ' on retire les rem, on sait que maintenant elles ne sont plus dans les chaines, vu que retirées.
      if instr(ligne$,"'")>0 then ligne$=left$(ligne$,instr(ligne$,"'")-1) :if right$(trim$(ligne$),1)=":" then ligne$=left$(trim$(ligne$),len(trim$(ligne$))-1)
      if instr(upper$(ligne$),"REM")>0 then ligne$=left$(ligne$,instr(upper$(ligne$),"REM")-1)

      ' reste à retirer les labels

      if len(ligne$)>1
        b$=left$(trim$(ligne$),len(trim$(ligne$))-1)
        if trim$(right$(ligne$,1))=":"
            if instr( b$,":")=0

            ' c'est un label ou alors erreur, mais ici c'est pas le problème  pas d'analyse!
            ligne$=""
            else
              for a%=len(ligne$)-1 to 1 step -1: if mid$(ligne$,a%,1)=":" then ligne$=left$(ligne$,a%-1):exit_for
              next a%
              ligne$=left$(ligne$,a%-1)
            end_if
        end_if
      end_if
      ' il reste les goto et les gosub
      if instr(upper$(ligne$),"GOSUB")>0 then ligne$=left$(ligne$ ,instr( upper$(ligne$),"GOSUB")-1)
      if instr(upper$(ligne$),"GOTO")>0 then ligne$=left$(ligne$ ,instr( upper$(ligne$),"GOTO")-1)

      ' reste les lignes label:

      if instr(upper$(ligne$),"LABEL ") >0
        v%=instr( upper$( ligne$),"LABEL"):b$=mid$( ligne$,v%+7,300):v1%=instr(ligne$,":")
        if v1%>0
            b$=mid$(b$,v1%+1,300)
            if v%>1 then ligne$=left$(ligne$,v%-1):else :ligne$=""
        else
            b$=""
            if v%>1
              ligne$=left$(ligne$,v%-1)
            else
              ligne$=""
            end_if
        end_if
        ligne$=ligne$+b$
      end_if

      ' reste dim
      if instr(upper$(ligne$),"DIM ") >0
        v%=instr( upper$( ligne$),"DIM"):b$=mid$( ligne$,v%+5,300):v1%=instr(ligne$,":")
        if v1%>0
            b$=mid$(b$,v1%+1,300)
            if v%>1 then ligne$=left$(ligne$,v%-1):else :ligne$=""
        else
            b$=""
            if v%>1
              ligne$=left$(ligne$,v%-1)
            else
              ligne$=""
            end_if
        end_if
        ligne$=b$
        if flag_prg%=0
            item_delete A,ligne%:item_insert A,ligne%,ligne$:a$=ligne$
        else
            item_delete B,lig_B%:item_insert B,lig_B%,ligne$:a$=ligne$:lig_B%=lig_B%+1
        end_if
      end_if
      ' -----pour éviter qu'un ON_CLIK ON_CHANGE ON_TIMER aui ont un label soient pris comme variable-----
      if instr(upper$(ligne$),"ON_")>0
        b$=mid$(ligne$,instr(upper$(ligne$),"ON_"),300):b$=mid$(b$,instr(b$,",")+1,300)
        for a%=1 to len(b$): if instr(separe$, mid$(b$,a%,1))>0 then exit_for
        next a%
        ligne$=left$( ligne$,instr(upper$(ligne$),"ON_")-1) + mid$(b$,a%,300)
      end_if
      ' --------------------DATA-------------------------------------------------
      if left$(upper$(ligne$),5)="DATA " then ligne$=""
      ' ----------RECHERCHE DES VARIABLES QUI SONT LE RESTE APRES AVOIR ENLEVER LES INSTRUCTIONS----------

      repeat
        for a%=1 to len(ligne$)
            b$=mid$(ligne$,a%,1) : v%=  instr(separe$ , b$)
            if v%>0
              b$=mid$(separe$,v%,1)
              v%=instr(ligne$,b$)
              c$=trim$(left$(ligne$,v%-1))
              if instr(prefix$+"#",left$(c$,1))=0
                  if numeric(trim$(c$))=0  :' on évite les nombres
                  ' apparemment ça marche mais je ne suis pas sur que l'espace soit logique pour tous les cas?
                    b%=instr(instruction$," "+upper$(c$)) :item_add H,upper$(c$) + "  b%="+str$(b%)
                    if b%=0
                        if c$<>"" and left$(c$,1)<>"|"
                          if count(E)>0
                              for b%=1 to count(E) : if c$=item_read$(E,b%) then exit_for
                              next b%
                              if b%>count(E) then item_add E,c$
                          else
                              item_add E,c$
                          end_if
                        end_if
                    end_if
                  end_if
              end_if
              exit_for
            end_if
        next a%
        if v%+1<len(ligne$) then ligne$=trim$(mid$(ligne$,v%+1,500)) :else :exit_repeat
      until v%=0 or scancode=27

' )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
      ' partie dépileur d'include et traitement des variables locales
      if instr(a$ , "FICHE_><")>0 then local$=""  :flag_efface%=1  :' préfixe suplémentaire annulé
      if instr(a$ , "FICHE_CLEAR")>0 then local$="":flag_efface%=1  :' préfixe suplémentaire annulé
      ' ------------------------------------------------------------------------------------
      if instr(a$,prefix$)>0
        flag_guil%=0
        for b%=len(a$) to 1 step -1
            if b%>1
              b$=mid$(a$,b%-1,1)
            else
              b$=""
            end_if

            if b% >1
              if mid$(a$,b%-1,2)=prefix$+prefix$
                  a$=left$(a$,b%-1)+ mid$(a$,b%+1,300):b%=b%-1:goto sort_next
              end_if
            end_if
            c$=mid$(a$,b%,1)
            if c$=prefix$ and instr(" :,(/*-+=<>"+chr$(34),b$) >0  :' séparateurs ouvrants

              b$=mid$(a$,b%,300)  :' message a$+chr$(13)+ b$
              for c%=1 to len(b$)
                  if instr(" :,)/*-+=<>"+chr$(34),mid$(b$,c%,1))>0 then exit_for
              next c%
              mot$= mid$(b$,2,c%-2)  :' on récupère l'ancienne variable sans prefix$
              b$=pref$+local$+"_" + mot$
              if count(E)>0
                  for c%=1 to count(E)
                    if b$=item_read$(E,c%) then exit_for
                  next c%
                  if c%> count(E) then item_add E,b$
              else
                  if flag_guil%=0 then item_add E,b$
              end_if
              a$=left$(a$,b%-1)+ b$ + mid$(a$,len(mot$)+b%+1,200)
            end_if
sort_next:
        next b%
      end_if
  end_if

return


à ceci il faut ajouter un fichier qui vient du fichier d'aide de Panoramic, et l'enregistrer.
[/color]
Ici il a le chemin: "C:\TESTE\AIDE_PANORAMIQUE\liste_des_fiches.txt", et est en ligne 66 de ce programme. Donc il faut adapter le chemin de ce fichier, avec celui où vous allez le placer.
(Excuse-moi JL35, il faudra modifier la ligne 66)

Donc il faut [b]faire un exécutable de ce fichier


Je mets les lignes ici, pour ne pas avoir à le télécharger.
Code:


#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_BACKGROUND
TO_FOREGROUND
TOP
TOP(N)
TRACK_BAR
TRIM$(S)
UNTIL
UPPER$(S)
VAL(S)
VERTICAL
WAIT
WHILE
WIDTH
WIDTH(N)
Les dernières INSTRUCTIONS ne sont pas présente, il faudra les rajouter dans la ligne 78, ou les mettre dans le fichier.

Je remets ici 4 programmes qui fonctionnent PAR ce programme. Le programme principal est le programme: teste.prg, les 3 autres sont des includes. Donc si vous voulez essayer, il faut modifier dans les lignes #INCLUDE, mettre le vrai chemin du programme

le programme de départ qui appela de loader plus haut:
Code:

' programme d'essai  Panoramic "C:\TESTE\M_au _P_TRACE\teste prg.bas"
  caption 0,"teste programme"
 
  clipboard_string_copy "C:\TESTE\M_au _P_TRACE\teste prg.bas"
  label fin
  EXECUTE "C:\TESTE\PROCEDURE\DIM_Global_Local\Dim_global_local.exe"
  wait 1500:goto fin
 end
 ' TOUTES LES LIGNES DU HAUT VONT ËTRE DÉTRUITES PAR LE CHARGEUR
 ' =====================================================================================================
 ' le programme une fois décodée, peut-être récupéré par C:\temp\Panoramic.bas
 ' =====================================================================================================
 label branche
 ' l'instruction suivante doit-être en majuscule, et seule sur la ligne. Elle donne un préfixe suplémentaire
 ' elle impose le nom du programme dans la variable Elle remplace >Un< qui était défini au départ.
  LOCAL>|teste<
 width 0,600 :left 0,600 :height 0,200:caption 0,"teste prg.bas"
 dim a% , a$ ,b%,b$
 memo 1 :on_click 1,branche
 item_add 1,"voyons voir SURFACE"

 ' pour l'instant chemin complet d'un include
 #include "C:\TESTE\PROCEDURE\surface.bas"
 message "retour de include surface" + chr$(13) + "la surface est:" + str$(surface%)

 ' les variables suivantes sont dynamiques, elles se déclarent toutes seules.
 for ²a%=1 to 10
  item_add 1,²a%
 next ²a%


 message "inclusion"
 #include "C:\TESTE\M_au _P_TRACE\inclusion.bas"
 ²k%=125.24

 ' l'instruction suivante anule le préfixe suplémentaire et peut aussi être en majuscule: fiche><
 FICHE_CLEAR
 ²k%=8
 ²l%=12*²k%  :item_add 1,"²l%*²k%=" +str$( ²l% * ²k% )

 end

branche:
message "click sur le memo"
return
fin:
terminate

celui-ci est le programme: inclusion.bas
Code:


 rem "ceci est un essai d'inclusion dans un autre programme"
 ' et ne sert à rien
²a$="inclusion"
FICHE>|salut<
' le préfixe définit est Salut à vérifier!
²b%=12874  : ²a$="est que local marche"
 FICHE_CLEAR
' normalement il ne reste que le préfixe numéro de l'appel include
²couleur%=12
 for ²couleur%=1 to ²couleur%:next ²couleur%
 message "inclusion réussi"
 
 ' appel d'un include en position 2
#include "C:\TESTE\suite_include.bas"

le programme suite_include.bas:
Code:

 ' essai de rajouter un nouvel include
 message "include sous_niveau"
 FICHE>niveaumoins<
  ²b$="include sous_niveau"
' la ligne dim c%,v$ devrait disparaitre
 dim c%,v$
le programme :
Code:

'  Panoramic C:\TESTE\PROCEDURE\surface.bas

  FICHE>|surface<
' préfice suplémentaire Surface
 ²long%=125:²larg%=100

 message "normalement je devrais avoir Surface comme préfixe"+chr$(13)+"²long%="+str$(²long%)+"  ²larg%="+ str$(²larg%)
 surface%=²long%  *  ²larg%

[size=18]
les fonctions:
LOCAL>préfixe< : impose un nom à la place du programme. celui-ci à une liste: Un Deux....
FICHE>préfixe< : définit un préfixe à la variable
FICHE>< ou FICHE_CLEAR , annule le préfixe.
Il est évidant qu'il faut mettre un nom à la place de préfixe, comme FICHE>teste<
Si le nom est précédé de "|" comme FICHE>"|teste<, la variable aura l'allure d'une variable "capitalisée" à la place d'une séparation par "_"

Chacune de ces commandes doivent être seules sur la ligne, et sont détruite lors de la compilation.


Je reprendrait plus tard pour l'éditeur PSPad Editor. Manque de temps


Dernière édition par cosmos70 le Ven 26 Nov 2010 - 17:04, édité 4 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 9:51

J'ai chargé ton programme et je l'ai fait marcher. J'ai galéré un peu, au début, à cause des chemins d'accès aux fichiers, mais maintenant, tout est en ordre. Ca marche très bien !

Je note que tu préfixes les variables également dans les lignes composées par " : " - très bien. Ce qui me dérange un peu, c'est que tu le fais aussi à l'intérieur des strings délimités par guillemets, mais ça peut aussi avoir son intérêt. Il faudra que j'approfondisse cela.

L'idée d'ajouter dans le programme un petit morceau de code qui appelle un utilitaire pour se faire transformer soi-même est astucieuse.

Tout ceci représente une première approche, opérationnelle, pour résoudre le problème de conflits dans le nommage des variables, en particulier avec des INCLUDE de morceaux de code indépendants.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 10:24

Merci,
Je le fais entre guillemets, car comment résoudre ce problème: message "²a%="+str$(²a%). ? Il faut une correspondance. Non?

Edit de nouveau.
Je ne sais pas, mais il me semble que le cas dans une chaîne, ne se présente que lorsqu'on veut visualiser les variables. Le caractère "²", personnellement je ne l'ai jusqu'à présent jamais utilisé. Si il parait nécessaire de pouvoir éviter de faire cette représentation, le mieux est d'inventer une nouvelle commande, qui dise au programme de ne rien faire.
Pour l'instant le programme est un laboratoire d'essai. J'ai bien l'intention de rajouter autre chose.

Il va falloir que je reprenne mon programme de débogage maintenant. Ça laissera le temps de réfléchir.
Revenir en haut Aller en bas
dragonno




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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 14:23

En tous cas, Bravo ya pas à dire, tu m'épate chaque fois avec tes programmes Cosmos !

EDIT :
Heu...ce sont pas tes programmes qui sont cosmos Wink

Revenir en haut Aller en bas
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 19:13

Apparemment, il n'y a pas de problème avec PSPad en se servant du programme de Nardo. Pas besoin de sauvegarder. J'ai tellement fait de transformation avec le Loader de départ, que je n'en suis pas sure.

En ce qui concerne la transformation des variables dans une chaîne. Je me casse la tête pour voir quoi faire.
Je pense avoir une idée, et elle est la suivante:
Si on met un ² devant un mot, il le prend pour une variable. On pourrait dire que si elle n'est pas dans la liste, ce n'est pas une variable, mais du texte. Mais maintenant, le faite qu'elle ne soit pas dans la liste, ne signifie rien. Je lis le programme de haut en bas, mais le programme, en fonctionnement fait des sauts dans les sub-routines, et au moment de la lecture, on ne le sait pas!. Qui peut donner une réponse qui tienne la route. Je ne vois qu'une commande donnant un ordre avant de traiter la chaine, et ici je commence à l'envers, pour respecter l'emplacement des variables, qui à chaque changement s'agrandi vers la droite. Si je commençais progressivement, il faudrait recommencer le teste depuis le début de la ligne pour retrouver à quel endroit le mot se trouve.

Qui dit quelque chose qui me fasse avancer?
Revenir en haut Aller en bas
Nardo26

Nardo26


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 19:27

Bonsoir à tous !

Pour l'instant, je suis largué... j'ai pas trop le temps en ce moment à consacrer à pano,
mais ton prog cosmos, m'intéresse au plus au point !!
Dès que j'ai l'occasion, je me pencherai sur la discussion et je ferai le test...
désolé de ne pas pouvoir t'aider pour l'instant... ;(

A+
Revenir en haut Aller en bas
http://nardo26.lescigales.org
dragonno




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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 19:54

Citation :
J'ai tellement fait de transformation avec le Loader de départ, que je n'en suis pas sure.
Cosmos, même sur toi tu as fait une transformation Wink
"sûre"

Revenir en haut Aller en bas
Klaus

Klaus


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyJeu 25 Nov 2010 - 22:26

Je pe,se qu'il faut faire comme avec des chênes de caractères et HTML ou d'autres langages. En principe, tout ce qui est entre guillemets doit être transmis tel quel, sauf quelques caractères qui ont une fonction spécifique. Si tu veux transmettre ces caractères tels quels (littéralement), il faut les préfixer par un caractère spécifique.

Ainsi, je te suggère la chose suivante:

Tu utilises le caractère "²" comme "signal". C'est un bon choix, bien que pas universel.
Première suggestion: definis une commande du type
PREFIXE>x< où x peut être n'importe quel caractère (par défaut, c'est ²)

Deuxième suggestion: si tu veux laisser le ² dans une chaîne de caractères tel quel, décide de le doubler. Exemple:
Code:

print "²a$="+²a$          sera traité comme tu le fais actuellement
print "²²a$="+²a$          imprimera ²a$=...
Donc, les séquences ²² seront traduits en ² sans autre transformation, alors qu'un ² seul déclenche la substitution.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 1:08

Ok, j'ai compris. Seulement il faut que je recommence.
J'ai bien apporté une correction, mais cela ne marche que si il n'y a qu'un double ² dans une chaîne. Je me suis servi de instr, mais j'ai oublié que je marchais à reculons, c'est à dire de la fin vers le début de la ligne, et instr, c'est l'inverse. Aussi, si il y en a plusieurs, je suis marron.
Je verrai cela surement demain, si pas de problème.
Et ok pour le préfixe. J'y avais pensé, mais je ne voyais pas quel caractère qui puisse le remplacer et être discret dans le code.
@+
Revenir en haut Aller en bas
dragonno




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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 1:23

Comme préfixe je te propose une liste pour voir :
"!"
">"
":"

il est rare que ces caractères débutent une instruction.

Revenir en haut Aller en bas
Klaus

Klaus


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 1:59

Avec une commande comme celle que je te proposais, on peut plus facilement contourner le problème des ² qu'on veut utiliser tels quels. Il suffit alors, temporairement, de passer à ¤ ou ^ ou n'importe quoi d'autre pou revenir ensuite à ². D'ailleurs, le ^ me semble on bon choix aussi...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 8:37

Bonjour

Déjà je ne me servirais pas de ">" et ":",, dans le programme ils sont les séparateurs de mot. Alors il y a problème. Il y a aussi ° qui peut servir. Ce que je voulais c'était avoir un préfixe simple qui soit facile à afficher.
J'avais choisi au départ & mais & est un caractère qui servir dans une chaîne, et une variable avec & est moins lisible &a% et ²a%, le 2ème cas est plus lisible pour une variable.
">" est un séparateur car sert dans les comparaisons.

Mais il n'y a pas de problème je vais y arriver. Il me faut un peu de temps "continu" et ne pas venir 5mn par 5mn, comme c’est généralement le cas.

Mais par curiosité, car ² est un caractère que j'ai jamais utilisé. A quoi sert ². Je sais bien qu'il y a carré, mais depuis que je programme, ça doit pas être tous les jours que vous utilisez ce caractère.
Revenir en haut Aller en bas
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 10:41

Je viens d'apporter la modification concernant l'affichage dans un texte avec deux "²²", comme possibilité mentionné par Klaus.
Il m'a fallu 5 mn au lieu des 2 heures d'hier avec un mauvais résultat.
Il me restera à faire la fonction permettant de modifier le préfixe.
Pour l'instant, je ne vois que ²^°£µ§&|~, avec une préférence pour les trois premiers
Revenir en haut Aller en bas
Klaus

Klaus


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 12:54

Eh bien, bravo ! Et pour les préfixes, je préfère aussi les 3 premiers. Mais puisqu'avec la nouvelle fonction, chacun peut choisir son préfixe à sa guise...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 14:40

Je viens de rajouter l'instruction PREFIXE><
Le préfixe dans le programme est le caractère générique qui se met devant la variable, et que le programme remplacera par un mot devant celle_ci.

Les préfixes que j'ai autorisés sont: ² ^ ° ~ & § | { } [ ]
Un autre préfixe arrête le programme. Inutile de continuer si le programme ne peut décoder les variables!
(j'espère être clair, vu que j'écris tout en étant à l'écoute de ma femme (ça m'arrive aussi! cyclops)

Edit de nouveau.
Il est important de préciser que si on change de préfixe en cours de route, la suite, et dans l'ordre de lecture des lignes, y compris si il y a des includes, c'est ce préfixe qui est valable. Donc si changement en cours de programme, bien savoir si lors du décodage, le programme lira l'un ou l'autre préfixe.
Revenir en haut Aller en bas
Klaus

Klaus


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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 15:00

Ca me paraît très bon comme ça. Il me parait évident que si l'on prend l'initiative de changer le préfixe par défaut, on ne peut pas s'attendre à ce que le préfixe reprenne sa valeur par défaut comme par magie. Il faut bien sûr en assurer la gestion, comme pour toute valeur par défaut que l'on prend l'initiative de changer.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 16:52

Je suis entrait de reprendre, car l'emplacement de la dernière fonction, n'est pas bonne. Elle n'est pas visitée par les Includes, et pour l'instant j'ai une erreur. Donc patience!
Revenir en haut Aller en bas
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 17:10

Terminé, j'ai modifié l'emplacement, et j'ai du apporter une petite modification à cause de cela.
Soit vous télécharger la dernière version,
soit vous retirez les lignes 84 à 101, et les remplacez par ligne 175, en dessous de [control0:], l'étiquette en ligne 175, après retrait des autre lignes.

Code:


  if instr(trim$(a$),"PREFIXE>")> 0
      a$=trim$(a$) :flag_efface%=1
      prefix$= mid$( a$,instr( a$,"PREFIXE>")+8,1)
      if instr("²^°~&§|{}[]",prefix$)=0
        message "préfixe choisi interdit!  "+prefix$+chr$(13)+"seule les préfixes suivants sont possible:  ² ^ ° ~ & § | { } [ ]"+chr$(13)+"arrêt du programme pour le modifier!":terminate
      end_if
    a$=""
  end_if

Je pense que maintenant, il ne devrait plus y avoir de problème.
Revenir en haut Aller en bas
dragonno




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

variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptyVen 26 Nov 2010 - 23:19

Citation :
vu que j'écris tout en étant à l'écoute de ma femme
Je crois que c'est le plus difficile pour un programmeur Wink

Chouette on va pouvoir se faire son préfixe Wink
Revenir en haut Aller en bas
Invité
Invité




variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique EmptySam 27 Nov 2010 - 13:06

Oui, pour le programmeur, enfin pour moi, c'est de pouvoir resté concentré sur ce qu'on fait. Et faire un programme, par petit morceau, laisser tomber, reprendre plus tard, c'est pas facile.

Mais, en matière de programmation dans le programme que j'ai mis pour ce poste, si j'y arrive, je pense faire une "mini-bombe".
Il y a longtemps, que je me dis, c'est quand-même dommage, que personne n'ait pensé, que pour faire ceci pour faire celà, à propos des chaines.! A chaque fois il faut faire une tonne de code, pour faire peu de choses. Et je me lance. Si ça marche, et il n'y a pas de raison, c'est le temps qu'il faut, parce que intellectuellement, il n'y a pas de problème, mais j'envisage de mettre des instructions parallèles. Vu que le programme intercepte celui qu'on est en train de créé, c'est peu-être le moment, d'essayer.

Qui sait? Peut-être que Jack sera séduit et pensera comme moi, que les instructions que je pense apporter, dans mon programme, serait une bonne intégration à Panoramic.

Les instructions que je pense mettre, n'ont pas de ralentissement dans le code. En faite, c'est de faire une commande pour une action, qui évite de faire des tas de lignes pour peu de choses, et c'est fréquent. Mais si c'était fait en Delphi, en assembleur, ou en C, non seulement le gain de temps serait gagnant-gagnant, comme dirait quelqu'un, mais une facilité de programmation sans équivalent pour ce type de travail.
@+
Revenir en haut Aller en bas
Contenu sponsorisé





variables locales - Variables locales et DIM dynamique Empty
MessageSujet: Re: Variables locales et DIM dynamique   variables locales - Variables locales et DIM dynamique Empty

Revenir en haut Aller en bas
 
Variables locales et DIM dynamique
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Création dynamique de variables
» bug SEVERE fnc+sub n°3: pb avec variables locales
» bug SEVERE fnc+sub n°4: pb n°2 avec variables locales
» sur les SUB: vérification avec les variables locales.
» Fonctions Chaine et variables locales

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: