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.
Scripts en formules dynamiques Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Scripts en formules dynamiques Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Scripts en formules dynamiques Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Scripts en formules dynamiques Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Scripts en formules dynamiques Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Scripts en formules dynamiques Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Scripts en formules dynamiques Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Scripts en formules dynamiques Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Scripts en formules dynamiques Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Scripts en formules dynamiques Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Scripts en formules dynamiques Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Scripts en formules dynamiques Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Scripts en formules dynamiques Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Scripts en formules dynamiques Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Scripts en formules dynamiques 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 à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 Scripts en formules dynamiques

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Scripts en formules dynamiques Empty
MessageSujet: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyLun 14 Mai 2012 - 12:12

On avait déjà la possibilité d'exécuter des scripts avec VBScript (outil gratuit de Microsoft), mais cet outil n'est pas installé partout, et ce n'est pas si facile que ça à utiliser.

Quelques fois, on aimerait juste exécuter une expression, mais dont on ne connaît pas la formule au moment où on écrit le programme. On aimerait bien pouvoir construire des formules dynamiquement, et pourquoi pas, de petits morceaux de code.

J'ai trouvé un petit module en Delphi qui fait exactement ça, et je l'ai rendu accessible par une DLL nommée Scripting.dll. Tout est disponible sur mon WebDav;
Site: http://www.mydrive.ch/
Identifiant: panoramic@klausgunther
Mot de passe: panoramic123
Dossier: Scripting

Vous y trouverez les fichiers suivants:

CalcDemo.exe - un programme de démonstration fait en Delphi par l'auteur du module. Ce programme contient aussi une documentation succinte mais précise des possibilités du programme.

panoramic_script.bas - programme fait par moi pour montrer ces mêmes possibilités en Panoramic

Scripting.dll - la fameuse DLL

Scripting.txt - la doc (en anglais) extraite de CalcDemo.exe

Informations générales:
Cette DLL permet d'évaluer une expres​sion(numérique, logique ou texte), ou d'excuter un script réalisé dans un langage simple qui est documenté dans Scripting.txt. Pour cela, on a des variables qu'on peut utiliser en entrée et qui peuvent recevoir des valeurs en sortie. Ces variables sont définies dans le MEMO de gauche sous la forme:
mavariable=valeur

Un champ EDIT permet de saisir une formule, telle que
(x-3*sin(y))+20
Le bouton "Exec. Expr." donne le résultat de la formule à droite, et affiche les variables modifiées dans le MEMO de droite.

Le MEMO du milieu permet de saisir un programme (script) et de l'exécuter avec le bouton "Exec. script". En guise de résultat, on a cette fois les variables modifiées dans le MEMO de droite, et la remarque "OK" dans le champ de résultat. Un programme simple pourrait être celui-ci:
Variables:
pi=0
Programme:
pi := 4*arctg(1);
END.

Dans tous les cas, une erreur est signalée dans le champ de résultat, sous forme d'un message explicite.

La DLL se pilote par 5 fonctions:

Initialisation OBLIGATOIRE du système, après dll_on:
res%=dll_call0("ScriptInit")

Arrêt du système (conseillé avantg dll_off):
res% = dll_call0("ScriptReset")

Retour de l'état du système:
res% = dll_call0("ScriptStatus") retourne 1 si ScriptInit a été exécuté, et 0 sinon

Evaluation d'une expression:
res% = dll_call4("ScriptExpression",adr(var$),adr(expression$),adr(varout$),adr(res$))
var$ est la liste des déclarations de variables, séparées per CR LF
expression$ est l'expression à évaluer
varout$ est une variable avsc suffisamment d'espaces pour recevoir les variables en sortie
res$ est une variable avec suffisamment d'espaces pour recevoir le résultat ou le message d'erreur.
Construisez ces variables par string$(255," ") avant l'appel de la fonction.

Exécution d'un programme:
res% = dll_call4("ScriptProgram",adr(var$),adr(script$),adr(varout$),adr(res$))
script$ est la liste des lignes du programme, séparées par des CR LF
les autres paramètres sont identiques à ceux de la routine précédente.

Ce qui est sympa avec la fonction "programme", c'est qu'on peut définir ses propres sous-programmes et les utiliser dans ce script, et tout ça dynamiquement.

Je mets tout ça à disposition tel quel. Je vais regarder plus en détail comment on peut étendre le langage pour la programmation des scripts, en lui ajoutant des commandes.


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

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyLun 14 Mai 2012 - 13:29

Hum, ça à l'air prometteur, je regarde ça ce soir...
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyMar 15 Mai 2012 - 16:54

Merci Klaus. Je viens de télécharger.

La possibilité de traiter des programmes de plusieurs lignes est très intéressante. J'avais déjà fait une DLL en FreeBasic pour les formules mathématiques, mais elle ne traite que des formules d'une ligne.

Rappel : outre le VBS, on peut aussi faire des scripts en C (mais il faut installer le compilateur) :

http://www.unilim.fr/pages_perso/jean.debord/panoramic/tccpano.zip
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


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

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyMar 15 Mai 2012 - 17:12

Oui, j'avais cité VBScript dans mon post initial.

L'avantage de la solution que je propose, c'est qu'en-dehors d'une DLL, il n'y a rien à ajouter, aucun utilitaire à installer. Et tout est interprété directement, sans compilateur. De façon interne, il y a bien une sorte de "compilation", mais dès qu'une expression partielle est analysée, elle est exécutée directement et son résultat utilisé à la place de l'expression, pour la suite de l'analyse.

Autre point fort: la possibilité d'utiliser des variables, même indicées (oui, on a droit à des tableaux de n dimensions !). Des variables texte peuvent contenir elles-mêmes des expressions qu'on peut exécuter avec eval(variable) ! On a droit à des procédures (comme les gosub en Panoramic), et on peut utiliser des données de type entier, flottant ou chaîne de caractères. C'est assez complet.

Je suis en train d'étudier la possibilité d'ajouter des commandes de gestion de fichiers texte...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyMer 16 Mai 2012 - 9:37

Pour information : le programme d'origine (daté de 2004) se trouve ici :

http://www.tsoft.szm.com/calcul.zip

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


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

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyMer 16 Mai 2012 - 21:34

Pour ma part, je l'ai trouvé sur SourceForge, mais c'est bien ce logiciel.

La différence, c'est que je suis parti de la version 2.4 du module de calcul, et le lien que tu cites, donne la version 3.3 - plus récente, donc plus intéressante. Je vais m'adapter et revoir ma copie.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyJeu 17 Mai 2012 - 17:43

Pour les amateurs de fonctions mathématiques, voici un exemple de script :

Code:

/* Calcul de exp(1) avec 12 décimales */
/* par le développement en série      */

x:=1; y:=0; k:=0; u:=1;
while u > 1.0E-12 do
{
  y:=y+u;
  k:=k+1;
  u:=u*x/k;
};
end.

A noter que :

- il ne doit pas y avoir d'espace entre le nom de la variable et l'opérateur d'affectation ( := )
- la syntaxe est un mélange de Pascal (pour les instructions) et de C (pour les commentaires et les accolades)
- il n'y a que la boucle WHILE, pas de FOR..NEXT

En tout cas, c'est un logiciel remarquable. On pourrait s'en servir p. ex. pour faire une calculatrice.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


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

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyJeu 17 Mai 2012 - 18:06

Un autre grand intérêt, ce sont les puissantes fonctions sur les chaînes de caractères. Y compris des substitutions de caractères, traitement des dates et heures, etc. Voilà qui complète utilement les fonctions natives de Panoramic !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyJeu 17 Mai 2012 - 18:34

Tu fais en ce moment des choses intéressantes.
Je prendrais un jour ou l'autre de regarder de très près ton travail. Tant qu'on peut télécharger, on peut faire l'urgence en premier. A moins qu'il soit nécessaire de faire des évaluations.
Revenir en haut Aller en bas
Klaus

Klaus


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

Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques EmptyJeu 17 Mai 2012 - 19:03

Il n'y a aucune urgence. Je propose des choses qui sont liées à ce que je fais pour moi, dans le contexte de mes programmes personnels. Si cela plaît, tant mieux. Et qui sait, cela servira peut-être à quelqu'un, plus tard... En tout cas, c'est mis à disposition, et il est peut-être bon de savoir que cela existe.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Scripts en formules dynamiques Empty
MessageSujet: Re: Scripts en formules dynamiques   Scripts en formules dynamiques Empty

Revenir en haut Aller en bas
 
Scripts en formules dynamiques
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calcul de PI à l'aide des formules de développement en série
» Exécution de scripts VBS
» Panoramic et les scripts vbs.
» Nouveauté: des scripts en Panoramic !
» Exécution de scripts VBS sous Panoramic

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: