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.
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Pour Klaus et Jack: création de fonctions inexistantes. Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Pour Klaus et Jack: création de fonctions inexistantes. 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
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Pour Klaus et Jack: création de fonctions inexistantes.

Aller en bas 
2 participants
AuteurMessage
pan59

pan59


Nombre de messages : 367
Age : 67
Localisation : Wattignies
Date d'inscription : 16/10/2011

Pour Klaus et Jack: création de fonctions inexistantes. Empty
MessageSujet: Pour Klaus et Jack: création de fonctions inexistantes.   Pour Klaus et Jack: création de fonctions inexistantes. EmptyJeu 5 Déc 2013 - 10:56

Bonjour.

Voici le code d'un petit programme sans prétention, permettant d'ajouter de nouvelles fonctions à Panoramic.

Ce code est facile à appréhender.

Qu'en pensez-vous ?

Merci de vos remarques éventuelles.

Code:
dim a$, b$, variable_retour$, fonction$, liste_argument$, resultat$, temporaire$, t$
dim argument$(10)
dim parametre
dim kk%, res%, true%, yy%

true%=1

label traiter_fonction

edit 100
left 100,-200
on_change 100,traiter_fonction

' Placer les arguments chaînes entre '' et non entre "".

text 100,"b$=TrimLeft$('-----Bonjour','-')"
message b$

text 100,"yy%=Instring('Bonjour','j',3)"
message str$(yy%)

text 100,"b$=Flip$('Bonjour')"
message b$

parametre=450
text 100,"yy%=Wrap(parametre)"
message str$(yy%)

end

traiter_fonction:

   t$=text$(100)
   if len(t$)>0
      t$=left$(t$,len(t$)-1)

      yy%=instr(t$,"=")
      variable_retour$=left$(t$,yy%-1)
      t$=mid$(t$,yy%+1,len(t$))

      yy%=instr(t$,"(")
      fonction$=left$(t$,yy%-1)
      liste_argument$=mid$(t$,yy%+1,len(t$))
  
      lire_arguments()
  
      traiter_fonction()
  
      enregistrer_resultat()
   end_if
  
return

sub lire_arguments()

    kk%=0
    while true%=1
        kk%=kk%+1
        yy%=instr(liste_argument$,",")
        if yy%=0
           argument$(kk%)=liste_argument$
              else
           argument$(kk%)=left$(liste_argument$,yy%-1)
        end_if
        
        if left$(argument$(kk%),1)="'" then argument$(kk%)=mid$(argument$(kk%),2,len(argument$(kk%))-2)

        ' Le parametre est la variable 'parametre'.
        if argument$(kk%)="parametre" then argument$(kk%)=str$(parametre)

        if yy%=0 then exit_while

        liste_argument$=mid$(liste_argument$,yy%+1,len(liste_argument$))
    end_while

end_sub

sub traiter_fonction()

    if fonction$="TrimLeft$"
       resultat$=argument$(1)

       while true%=1
             if left$(resultat$,1)<>argument$(2) then exit_while
             resultat$=mid$(resultat$,2,len(resultat$))
       end_while
    end_if

    if fonction$="Instring"
       res%=val(argument$(3))-1+instr(mid$(argument$(1),val(argument$(3)),len(argument$(1))),argument$(2))
       if res%<val(argument$(3)) then res%=0
    end_if
    
    if fonction$="Flip$"
       resultat$=""
       for kk%=len(argument$(1)) to 1 step -1
           resultat$=resultat$+mid$(argument$(1),kk%,1)
       next kk%
    end_if

    if fonction$="Wrap" then res%=wrap_value(val(argument$(1)))
    
end_sub

sub enregistrer_resultat()

    if variable_retour$="a$" then a$=resultat$
    if variable_retour$="b$" then b$=resultat$
    
    if variable_retour$="yy%" then yy%=res%
    
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Pour Klaus et Jack: création de fonctions inexistantes. Empty
MessageSujet: Re: Pour Klaus et Jack: création de fonctions inexistantes.   Pour Klaus et Jack: création de fonctions inexistantes. EmptyJeu 5 Déc 2013 - 11:42

C'est une technique intéressante. Tu utlises l'évènement ON_CHANGE pour provoquer l'exécution de ce que l'on peut appeler un interpréteur, dont la structure est fournie par toi et dans lequel chacun peut accrocher l'implémentation de ses propres fonctions. Ces implémentations sont réalisées en Panoramic.

C'est une autre façon de faire ce qu'on peut faire avec les procédures. Plus souple sur certains aspects, mais également plus contraignant sur d'autres. En tout cas, une technique intéressante qu'il convient de garder dans la panoplie des solutions possibles !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
 
Pour Klaus et Jack: création de fonctions inexistantes.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Création de fonctions inexistantes en Panoramic.
» Aide pour la création d'un wrapper pour le langage Linotte.
» Fonctions d'envoyer de touches à un objet interne ou externe
» 2 syntaxes pour la création d'objet
» une boucle pour la création d' objets système

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: