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.
Une idée comme cela! Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Une idée comme cela! Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Une idée comme cela! Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Une idée comme cela! Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Une idée comme cela! Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Une idée comme cela! Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Une idée comme cela! Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Une idée comme cela! Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Une idée comme cela! Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Une idée comme cela! Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Une idée comme cela! Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Une idée comme cela! Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Une idée comme cela! Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Une idée comme cela! Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Une idée comme cela! 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 :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Une idée comme cela!

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




Une idée comme cela! Empty
MessageSujet: Une idée comme cela!   Une idée comme cela! EmptyMer 31 Juil 2013 - 23:25

Tout en voulant rester sur la touche, il m'est venu une idée qui pourrait vous intéresser.

Je suis en train de faire un programme particulier avec mon nouveau éditeur, et à chaque fois que je veux rajouter des objets dans mon programme, je ne sais pas quel numéro mettre. Savoir si celui-ci est déjà pris ou non. Et il m'est venu une idée. Je suis en train de le mettre en pratique, mais en dehors de mon éditeur, qui est hors sujet ici, je vois que vous vous intéressez à NotePad++ je crois. Il vous faut, soit appeler directement un programme par le biais de Panoramic.exe, ou alors développer un programme qui fait la même chose, en se servant de la fonction chain.

Cette deuxième possibilité apporte des possibilités en permettant d'inclure des codes de contrôle du source, donc de mettre des raccourcis, comme je l'ai souvent fait pour moi-même.

Il s'agit ici de la numérotation des objets. Voici mon principe:
On met au départ une ligne de définition, soit en commentaire, soit dans une variable, ou même directement, puisque le code est relu avant d'être envoyé, donc on peut reprendre la ligne avant lancement:

voici: considérons qu'on a trois sujets important dans le programme, sisons:
montage , test , peinture (ce sont des exemples, mais il faut des noms pour comprendre).
Disons qu'on a une partie du source dont les objets concernent montage, une autre partie des objets: teste, et la dernière partie: peinture. On procède ainsi:
definition{montage=100} {teste} {peinture}. ou:
definition$ ="montage=100 ,teste , peinture", la méthode appartient à celui qui adopte le principe.

Ca veut dire quoi tout cela:
Cela veut dire que le premier objet pour montage commence à 100. Ensuite, lorsque tous les objets aurons étés répertoriés, s'ajoutera les objets teste, puis peinture. Voyons l'explication autrement:

montage} (correspondant à un objet n° 100
montage}1 : correspondant à 101
montage}2 ...
montage}3
teste} viendra à la suite, et ici: 104
teste}1 soit: 105
teste}2
teste}3
peinture}1 soit 108, etc...
ce qui revient à dire que l'on programme ainsi:
container montage} :parent montage} , 0.......etc
button montage}1:parent montage}1,montage}

( ça peut-être plus simple: a} , a}1, puis b}.....)
On ne s'occupe plus des numéros. Une fois que le programme est près à être envoyé, le loader, le chargeur, ou préprocesseur, peut importe le nom que vous lui donné, recherche dans le source les mots définis au départ, les mets en liste de la façon suivante:
Au départ, selon la definition, il les mets dans l'ordre dans un dlist:montage},teste}, peinture}. Il les insère à la bonne place, et pour retrouver le numéro, il suffit de savoir à quel hauteur il est dans la liste.
Une fois que la liste complète est faite, il reprend le source, et remplace les raccourcis par les vrais numéros.

Je vous laisse avec cette idée. Personnellement je suis en train de l'inclure dans mon éditeur, et ce n'est pas pour vous inciter à aller le voir, d'autant que j'ai pas encore pensé à la version 32 bits. Mais en plus j'ai inclu un truc comme ceci, et c'est très intéressant: si je ne me souviens plus très bien de quel objet il s'agit, il me suffit de rajouter au mot raccourcis, comme montage}10£. En marquant "£", j'ai un memo qui s'affiche avec toutes les lignes du gui, qui possède ce raccourcis. Le "£" est effacé de suite par Auto-It, et un double-clic sur le memo le ferme, j'ai l'information, et je continu.
Voyez avec NotePad++ ou un autre éditeur (PsPad par exemple), si cela vous intéresse. Dans ce cas, l'un de vous peut le développer.

Bonne nuit.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! EmptyMer 31 Juil 2013 - 23:44

Ton idée est intéressante, et à plus d'un titre. C'est une solution possible à l'éternel problème de la numérotation des objets, en particulier dans un contexte où l'on veut réutiliser des morceaux de code dans plusieurs programmes, en évitant les conflits de numéros des d'objets.

Je suis bluffé par la clarté de ton exposé, qui montre clairement l'intérêt d'une telle démarche. Reste la mise en oeuvre. Mais comme tu dis, avec un éditeur tiers comme Notepad++, c'est parfaitement jouable.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! EmptyJeu 1 Aoû 2013 - 6:56

A oui, tien! je n'avais pas pensé à cela:
Citation :
en particulier dans un contexte où l'on veut réutiliser des morceaux de code dans plusieurs programmes, en évitant les conflits de numéros des d'objets.

Dans ce cas, il vaut mieux ne pas mettre le numéro de départ dans la définition, et le faire avec une variable dédiée.

Il peut y avoir un code du genre:
definition:montage, teste,peinture (le mot definition je l'ai choisi par rapport à define, mais c'est un mot -clé qui peut-être utilisé. mais il y a certainement mieux)

Et
depart_objet% = 100
chaque source à insérée n'aurait pas de définition, mais utiliserait son propre mot-clé. Seul le programme qui inclu ces source aurait la définition.

source avec montage ici en exemple:
container montage} : left montage},100
memo montage}1 :parent montage}1,montage} :left montage}1,10 :' etc.....

Le fait de mettre par exemple "montage}", avec "}", premièrement évite d'avoir selon les éditeurs de ne pas mettre "{}" automatiquement, si on mettait "{". Deuxièmement, la séparation du mot, et du n°, permet une recherche plus rapide avec instr() sur le mot, et après on prend le numéro.

Une seule parenthèse: l'idée est ici d'insérer un mot représentant un numéro, à sa place dans la liste, mais c'est pas obligatoire. On peut simplement l'ajouter si il n'est pas présent. A partir du moment que le programme met le même numéro pour le même objet, ça ne changera rien pour le fonctionnement. Seule la lecture du code final est plus lisible, si les numéros se suive.

Sur ce, je repars au bois.

A aussi: cela est possible avec Panoramic_Editor. Il suffit de mettre en première ligne:
execute "le programme qui traite le code", Au départ si il voit dans le source cette première ligne, il la retire.
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! EmptyJeu 1 Aoû 2013 - 12:25

Bonjour a tous
je ne suis vraiment pas a votre niveau en programmation
cela dit j aplique deja la methode en manuel avec des plages de numerotation dedie
par exemple 1xx pour les objets 3D , 2xx pour le terrain etc
l avantage en manuel et de ne pas avoir a renumeroter tout a chaque rajout
si cela peut vous aider :-)
Revenir en haut Aller en bas
Invité
Invité




Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! EmptyVen 2 Aoû 2013 - 14:46

Bonjour.
Je viens d'adapter le principe pour mon éditeur.
Si ça vous intérresse, je ferais une adaptation pour d'autre éditeur.
Moi, je l'ai inclus dans mon programme, et non dans le loader, celui qui fait l'exécution. Il faut donc une adaptation.

Maintenant il faut que vous en trouvez l'utilité. Elle est évidente pour moi.

Le principe que j'ai adopté est le suivant:
L'instruction de définition des mots clés est le suivant:
#definition:montage=100,teste,peinture
ou bien celui-ci:
#definition:montage ,teste,peinture

J'ai commencé par "#" pour faire comprendre que cette instruction est seule sur la ligne, et est mise en remarque. Elle pourrait être n'importe où dans le programme, puisqu'il y a deux passes.
La variable que j'ai associé est definition%. Si est n'est pas inclu, elle démarre à 1. Comme c'est à partir d'un programme extérieur que l'assemblage est fait, pour une autre valeur, il est bien évident qu'il faut marquer la valeur du n° de l'objet de départ, car le loader, est un exécutable et on n'y touche pas.

Pour les commandes, 'ai choisi cette présentation: [montage] [montage1]. En exemple: memo [montage1]. left [montage1],10. Width [montage1],width([montage0])
Au fur à mesure qu'un nouveau mot de ce type est trouvé, il est ajouté à un dlist. A la fin il y a un tri du dlist, ce qui remet tout en place.

Les commentaires et les chaines entre guillemets sont écartées d'un mot ayant cette ressemblance.

Voila, voila voila voila! Ouf!

Tous les programmes qui s'incorporeraient à un seul programme avec comme seule méthode, cette numérotation, sans en chiffrer aucune, peuvent fonctionner. Il faut seulement que deux programmes incorporés, n'utilisent pas les mêmes mots avec les même chiffres.
Vous auriez une numérotation de 1 à x en continue.

Il y a aussi un avantage, c'est de pouvoir renommer toute une sére en une seule fois, sans avoir à s'inquiéter des paramètres qui ont un même numéro.
Revenir en haut Aller en bas
Invité
Invité




Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! EmptyVen 2 Aoû 2013 - 22:38

Correction sur 2/3 petits problèmes qui pouvaient se passer le: 3 août 2013
apporte une possibilité de lire une chaîne entre-guillemets pour pouvoir transformer les mots en numéros. Explication dans le post du bas. (4 août 2013

revu la méthode pour permettre la transformation des mots-clés dans une chaine



Bon j'ai repris le code pendant que j'étais encore dessus, et pouvoir passer à autre chose.
Je le mets ici, car il faut le reprendre pour qu'il devienne un LOADER, et là ça concerne ceux qui se servent de NotePad++ par exemple, ce qui n'est pas mon cas. De plus si il n'intéresse personne, il aura trouvé sa place. Cela est la liberté de chacun.

Il est monté comme teste avec un memo, un bouton sommaire, et une forme pour voir le contenu d'un list. Mais normalement le fonctionnement d'un loader est transparent, et le bouton, la form et le list, c'est du gadget. C'est pas leur place. Le list doit devenir un DLIST.

Maintenant c'est une façon de présenter la chose, mais l'idée peut-être reprise autrement. J'ai mon propre fonctionnement, mais des gens (mauvaise langue) me trouvent bizarre!Very Happy 

Code:


' **************************************************************************************************** '
' |   Programme a reprendre pour en faire un loader. il doit au départ reprendre le code sauvegardé    |
' |   ou bien par copie/coller. Il charge , ou met dans le memo 1 pour le traiter, ce que fait ce      |
' |   programme. Restera ensuite à le sauvegarder, pour pouvoir utiliser le code avec la fonction      |
' |   CHAIN par exemple, ou passage de paramètres, celui du nom du fichier, pour l'exécuter            |
' **************************************************************************************************** '

' **************************************************************************************************** '
' |   Si le choix de la reprise de code se fait par le presse papier, vous êtes obligé de vous servir  |
' |   MEMO,et bar_both, mais si vous récupérez par fichier, alors se servir d'un DLIST                 |
' **************************************************************************************************** '
width 0,700
rem "Pour la démonstration, le dlist a été remplacé par un LIST dans une autre form 3. Cela montre
rem "les mots qui sont retrouvés, et triés. Le bouton sert à lancer le teste, mais ni form 3, ou le
rem "bouton n'ont pas de raison d'être ici. Le fonctionnement final doit-être transparent, et le code
rem "s'exécuter sans problème. Mais il convient de l'adapter au navigateur à qui ce code est destiné.

label traitement

dim numero$, a$,a%,v% , ligne$ , ligne% , motObjet$, definition%, chaine% , chaine$(10)
dim check$(100), nb_coord%    ,u%

memo 1:full_space 1:font_size 1,12:font_bold 1 : bar_both 1  :font_name 1,"Consolas"
button 2 : on_click 2, traitement
form 3 :left 3,700 :' width 3,400:height 3,600
list 10 :parent 10,3 :width 10,60

rem " A votre bon coeur.

end

' ===============================================================================

traitement:
   clear 10
   motObjet$ = ""
   raccourci()
   sort 10
return

sub item_remplace(n%,ligne%,a$)
     item_delete n%,ligne%
     item_insert n%,ligne%,a$
end_sub
' ==============================================================================
sub raccourci()
     if count(1) > 0
          dim_local a$,a%,b$,b% ,c$ ,v%,c%,w%

          motObjet$ = " "
          for a% = 1 to count(1)

          u% =a%
               a$ = item_read$(1,a%)
               if instr(a$,"#definition:") > 0       :' "#definition:montage=100,teste,peinture"
                    separt(a$)
                    a$ = "rem " + a$
                    item_remplace(1,a%,a$)
               else
                    rem maintenant que les mots sont dans 10, il faut lire l'ensemble en recherchant "["
                    rem on marque les mots comme           [montage1]
                    if instr(a$,"[") > 0 then conversionPourNumero(a$)
             end_if
          next a%

          rem on a fait la première partie, celui de reconnaitre les mots de remplacement des n° d'objet
          rem Reste à relire tout le programme pour mettre à la place les bons numéros.
          if definition% = 0 then definition% = 1

          for a% = 1 to count(1)
               a$ = item_read$(1,a%)
               ' **********************************************



               IF instr(a$,"[") > 0
                    depouillement(a$)
                    a$ = ligne$
                    rem il faut maintenant lire a$, et voir si il y a un ou plusieurs mots à remplacer.
                    ' en remarque le contenu des guillemets est sauvegardé dans chaine$(x) et les mettre à la place de chr$(4) dans a$
                    ' là il faut relire la chaine pour mettre à la place les numéros
                    repeat
                         if instr(a$,chr$(5)) > 0
                              w%= instr(a$,chr$(5))
                              v% = instr(left$(a$,w%) ,"[")
                         else
                              v% = instr(a$,"[")
                         end_if
                         if v% >0
                              b$ = mid$(a$,v%,len(a$))
                              b$ = upper$(left$(b$,instr(b$,"]") ))

                              ' on regarde dans la liste la position de ce mot

                              for b% = 1 to count(10)
                                   if b$ = item_read$(10,b%)
                                        c% = b%+ definition% -1
                                        ' on recompose a$ avec le numéro à la place du mot
                                        a$ = left$(a$,v%-1) + str$(c%) + mid$(a$,v%+len(b$),len(a$))
                                        exit_for
                                   end_if
                              next b%
                         end_if
                    until v%=0

                    ' puis si il y a chr$(4), mettre à la place le contenu de la chaine sauvegardée.
                    if instr(a$,chr$(4)) > 0
                         chaine% = 1
                         repeat     :' dans le cas où plusieurs chaines dans la ligne
                              v% = instr(a$,chr$(4))
                              if v% > 0
                                   a$ = left$(a$,v%-1) + chr$(34) + chaine$(chaine%)+ chr$(34) +mid$(a$,v%+1, len(a$))
                                   chaine% = chaine% +1
                              end_if
                         until v% = 0
                    end_if

                    ' puis si il y a chr$(5), enlever chr$(5) placer juste devant pour limiter l'accès
                    v% = instr(a$,chr$(5))
                    if v% > 0 then a$ = left$(a$, v%-1) + mid$(a$,v% + 1, len(a$)) : ' on retire 1 caractère'
                    item_remplace(1,a%,a$)
               END_IF

               if instr(upper$(a$),"TRANSPOSE{") > 0
                   v% = instr(upper$(a$),"TRANSPOSE{")
                   a$ = left$(a$,v%-1)  + mid$(a$,v%+10,len(a$))
                   b$ = mid$(a$,v%,len(a$))
                   b$ = left$(b$,instr(b$,"}")-1 )+chr$(34)+"" : b% = len(b$)
                   a$ = left$(a$,v%-1)+chr$(34)+b$ +mid$(a$,v%+b%,len(a$))
                   ' message a$  + chr$(13) + b$ +chr$(13) + str$(b%)+chr$(13) + a$
                   item_remplace(1,a%,a$)
               end_if
      
               ' **********************************************
          next a%

     end_if
end_sub
' *********************************************
rem refaire le dépouillement de la ligne, en excluant les commentaires, et les chaines.
sub depouillement(c$)
     dim_local v%,w% , b$
     chaine% = 0
     if instr(c$,chr$(34)) > 0
        if instr(c$,chr$(34)+"{[") = 0  :' ajouté: { devant un mot code [menu], et être transformé dans certain cas.
           rem on retire l'intérieur des chaines, qu'on met en mémoire, pour ne pas modiifer ou rechercher dans le texte
           repeat
               v% = instr(c$,chr$(34))
               if v% > 0
                    b$ = mid$(c$,v%+1,len(c$))
                    c$ = left$(c$,v%-1)+chr$(4)
                    v%=instr(b$,chr$(34)) :' on retire le 2ème guillemet
                    if v% > 0
                         chaine% = chaine% +1   :     chaine$(chaine%) = left$(b$,v%-1)
                         c$ = c$ + mid$(b$,v%+1,len(b$))
                    end_if
                    ' ainsi il n'y a plus de perturbation avec une chaine
                    ' donc si on a memo [a1]: left [a1],10:print " [a2] l'endroit est agréable": ' commentaire
                    ' il reste:    memo [a1]: left [a1],10:print ?: ' commentaire le ? représentant chr$(4)
               end_if
           until v% = 0
        else
           v% = instr(c$,chr$(34)+"{[")
           c$ = left$(c$,v%)+mid$(c$,v%+2,len(c$))  : v%=0
        end_if
     end_if

     ' ====================================================================================================

     rem reste les commentaires. On sait maintenant qu'ils sont vrais si ils existent.

     v%=  instr(upper$(c$),"REM " )
     w%=  instr(upper$(c$),"' " )
     if v% = 0 or w% = 0
          v% = max(v%,w%)
     else
          v% = min(v%,w%) :' c'est le plus petit, si ce n'est pas 0
     end_if

     if v% > 0
          if v%=1
               c$ = " "+chr$(5)+c$
          else
               c$ = left$(c$,v%-1) + chr$(5) + mid$(c$,v%,len(c$))
          end_if
     end_if

     rem on a une commande sans commentaire, ni chaine
     a$ = c$  :' oui le problème est ici c'est un a$ local qu'on lit, cela doit venir de: depouillement(a$) mais ligne inutile, ligne$ reprend
     ligne$ = c$ :' controle avec les local et global'
end_sub
' *********************************************

' =============================================================================='
sub conversionPourNumero(a$)
     dim_local v%, w%,b$, numero$   , g% , ap%
     if instr(a$,"[") > 0
          depouillement(a$)
          b$ = ligne$

          if instr(b$,chr$(5)) > 0 then b$ = left$(b$, instr(b$,chr$(5))) :' pour éviter de tester dans les commentaires qui sont après chr$(5)

          repeat
             v% =  instr(b$,"[")
               rem il faut aller au séparateur avant
               if v% > 0
                    numero$ = mid$(b$,v%,len(b$)):numero$ = upper$(numero$)

                    rem on peut avoir:    > left [montage1]:width [montage1],([montage2] ) <              .
                    w% = instr(numero$,"]")
                    numero$ = left$(numero$,w%) : ' on aurait par exemple: "[montage1]"
                    ' donc on peut faire une recherche dans 1, si il existe, le rajouter pour non, et faire un tri
                    if instr(motObjet$," "+ numero$+" ") = 0 then item_add 10,numero$ : motObjet$ = motObjet$+numero$+" "
                    if w% > 0 then b$ = mid$(b$,w%+1,len(b$)) : else :exit_repeat
               end_if
          until v% = 0   or w% = 0
     end_if
end_sub

' =============================================================================='
sub separt(a$)
     rem           ensuite on s'en sert: [montage]   [montage1]     [montage2]     [teste]     [teste1     [peinture]     [peinture1]
     rem                                    100          101            102          103         104           105             106     .
     ' au départ on a :
     rem      montage=100
     rem      teste
     rem      peinture
     ' puis on ajoute les n° si ils ne sont pas présent. TRI ensuite

     if variable("definition%")= 0 then dim definition%
     dim_local a%,nb$,c%,c$ ,suite$,b$                                      :' "#definition:montage=100,teste, peinture"
     a$ = trim$(mid$(a$,instr(a$,"#definition:")+12,len(a$)))               :' "montage=100 ,teste, peinture"

     if instr(a$,"=") > 0    :rem on impose un N° de départ
          b$ =  "[" + upper$(trim$(left$(a$, instr(a$,"=")-1 ))) + "]"

          item_add 10,b$:motObjet$ = motObjet$+b$+" " :' "[montage]"
          nb$ = mid$(a$,instr(a$,"=") +1,len(a$) )
          suite$ = trim$(mid$(nb$,instr(nb$,",")+1,len(nb$)))               :' "teste , peinture "
          if instr(nb$,",") > 0
               nb$ = left$(nb$, instr(nb$,",")-1)                           :' "100"
          end_if
          definition% = val(nb$)                                       :'  100  numéro sauvegardé.
     else
        suite$ = a$
     end_if

   explode(",",suite$)
   for a% = 1 to Nb_coord% : item_add 10,"[" + trim$(upper$(check$(a%))) +"]" : next a%
end_sub

' =======================

sub EXPLODE(separ$,chaine$)
   ' check$( ) , Nb_coord%  en global
   dim_local explode%
   dim_local copie$ , v_explode%
   for explode%=1 to 10:check$(explode%)="":next explode%
   explode%=1:copie$=chaine$
   if right$(copie$,1)<> separ$ then copie$ = copie$  +separ$
   repeat
       v_explode%=instr(copie$, separ$ )
       if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1
   until v_explode%=0:Nb_coord%=explode%-1
END_SUB
[/spoiler]
C'est pas un programme, mais un bout de code, pour voir si il fonctionne. En appuyant sur le bouton, les mots de substitution, sont remplacés.

Si ce programme une fois remodelé est adopté, je pense qu'il convient de mettre la touche finale dans les sources à partagés.

Je lève les bras, pour pouvoir passer à autre chose. cheers cheers cheers cheers cheers

Dimanche 4 août:
Je me suis trouvé devant le fait suivant: en ayant mis les numéros en code comme [menu1] ..., j'ai rencontré le problème suivant:
soit un menu ou autre, de ce genre:
main_menu[menu]
sub_menu[menu1] : parent [menu1] , [menu] ....etc...
si je veux par programme activer ou autre une série d'objets avec cette notation de numéros, et faire:
explode("," , "[menu],[menu1],...")
tel que le code était, cela ne pouvait pas fonctionner, car toutes les chaines sont transparentes, et invisible à la 'décompactions' du numéro. Aussi, pour rendre la chose possible, j'ai adopté le principe suivant:
Une chaine entre-guillemets, et non dans une variable, là ça ne marche pas, doit commencer par "{[". pour que la transformation des mots deviennent des numéros.
A partir de là cela fonctionne après la modification apportée) Voir les lignes 132 à 152.

Ce que je dis est peut-être du vent, mais il faut bien en parler pour que si l'un d'entre-vous décide d'adapter le principe, pense à ce problème.

Revu la méthode. par exemple pour:
explode("," , "[a1],[a2],[a3]") : print "[a1],[a2]"
cela devient avec un mot clé: explode("," , transpose{[a1],[a2],[a3]}) : print "[a1],[a2]"
Les crochets remplacent les guillemets. Ainsi la chaine est traité, et on peut mettre autre chose après sur la ligne.
le résultat une fois traité: explode("," , "1,2,3") : print "[a1],[a2]", ce qui permet ensuite à partir de mots de remplacement, de faire par exemple:
for a% = 1 to 3 : inactive val(check$(a%)) : next a%. Un exemple pour pouvoir jouer avec les numéros d'objets selon cette méthode.

Vu que le source est complètement repris, on peut faire ses propre mots-clés, et modifier le programme à sa convenance.

Bon, je pense que je suis au bout de la démonstration. Il y a au moins un qui est intéressé (moi). J'utilise maintenant la méthode avec mon éditeur et avec succès, et c'est le principal pour moi.
Revenir en haut Aller en bas
Contenu sponsorisé





Une idée comme cela! Empty
MessageSujet: Re: Une idée comme cela!   Une idée comme cela! Empty

Revenir en haut Aller en bas
 
Une idée comme cela!
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Une commande petite comme ça, efficace comme ça!
» Texte sur une image
» Attention : arnaque F-Cat ? Où est la vérité ?
» Je commence une EDI pour la 3D
» Une idée avec CHAIN

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: