Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Mise à jour TCCPANO | |
| | Auteur | Message |
---|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Mise à jour TCCPANO Jeu 6 Fév 2014 - 9:58 | |
| La bibliothèque TCCPANO fournit des procédures (SUBs) permettant de compiler et de lancer des scripts écrits en langage C. La compilation est faite par le compilateur TCC ( www.bellard.org\tcc) qu'il faut donc installer. Avantages : - tout se passe en mémoire vive ; rien n'est écrit sur le disque, et aucune fenêtre intempestive ne vient s'ouvrir - le script écrit ses résultats dans une variable chaîne de caractères. Pas besoin de passer par le presse-papiers - le script peut être généré dynamiquement par le programme PANORAMIC - le script peut utiliser des DLLs qui autrement ne seraient pas accessibles par PANORAMIC Inconvénients : - tous ceux du langage C Le programme exemple est un éditeur minimaliste pour le langage C, permettant d'apprendre ce langage sans quitter PANORAMIC ! A télécharger sur : http://sourceforge.net/projects/panolib/files/tccpano_fr.zipLisez bien la documentation ! Un article pour le magazine sera soumis ultérieurement. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mise à jour TCCPANO Jeu 6 Fév 2014 - 12:57 | |
| Salut jean_debord J’ai téléchargé tccpano_fr.zip J’ai suivi à la lettre ce qui est écrit en tccpano.pdf. J’ai chargé test_tccpano.bas et je l’ai exécuté. Tout semble fonctionner jusqu’au click sur Compiler le programme === > (52) Not correct string expression : Line : 117
La ligne 117 n’est autre que le label Exec | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mise à jour TCCPANO Jeu 6 Fév 2014 - 17:09 | |
| Problème résolu. C’était une question de Path dans la variable d’environnement. En ajoutant la variable TCCDIR, ça marche comme indiqué dans la doc. Merci jean_debord. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Mise à jour TCCPANO Jeu 6 Fév 2014 - 19:25 | |
| Bravo (Je ne fais pas beaucoup de commentaire car mon nouveau poste au boulot me prend beaucoup de temps, mais bon ce que vous faites et super) | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Mise à jour TCCPANO Mer 12 Fév 2014 - 10:42 | |
| Merci pour les tests, Papydall ! Effectivement, j'avais oublié de signaler qu'il faut ajouter le chemin de TCC dans le PATH. Ce sera fait dans la prochaine mise à jour. En attendant, voici un autre petit programme de démonstration : - Code:
-
' ------------------------------------------------------------------------ ' Script TCCPANO : Ajout d'une fonction de formatage d'un nombre réel ' ------------------------------------------------------------------------
' Initialisation de la bibliothèque #include "tcc_init.inc"
' Variables globales
dim fmt$ : ' Chaîne de format : nb total de signes et nb de décimales, ex. " 12 5" dim C_code$ : ' Code du programme C dim result$ : ' Resultat du programme C dim guil$ : ' Guillemet = chr$(34)
' Creer et compiler le code C
guil$ = chr$(34)
C_code$ = "#include <stdio.h>" C_code$ = C_code$ + "int main(char p_in[], char p_out[])" C_code$ = C_code$ + "{" C_code$ = C_code$ + " double x; int ntot, ndec; char fmt[20];" C_code$ = C_code$ + " sscanf(p_in, " + guil$ + "%lf %d %d" + guil$ + ", &x, &ntot, &ndec);" C_code$ = C_code$ + " sprintf(fmt, " + guil$ + "%%%d.%df" + guil$ + ", ntot, ndec);" C_code$ = C_code$ + " sprintf(p_out, fmt, x);" C_code$ = C_code$ + " return 0;" C_code$ = C_code$ + "}"
TCC_Compile(C_code$, "")
if TCC_Code% < 0 then print "Erreur de compilation : ", TCC_Code% : end
' Une fois le code C compilé, on peut l'utiliser autant de fois qu'on veut
fmt$ = " 12 5" : ' La chaîne doit commencer par un espace result$ = string$(12, " ") : ' Dimensionner au nombre total de signes
TCC_Exec(str$(4 * atn(1)) + fmt$, result$) : print "pi = ", result$ TCC_Exec(str$(exp(1)) + fmt$, result$) : print "e = ", result$ TCC_Exec(str$(sqr(2)) + fmt$, result$) : print "sqrt(2) = ", result$ TCC_Exec(str$(sqr(3)) + fmt$, result$) : print "sqrt(3) = ", result$
end
' ------------------------------------------------------------------- ' Procédures de TCCPANO ' -------------------------------------------------------------------
#include "tcc_subs.inc"
| |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Mise à jour TCCPANO Jeu 13 Fév 2014 - 9:30 | |
| Nouvelle version du programme précédent. Avec des SUBs et des variables locales, c'est plus facile à utiliser. - Code:
-
' ------------------------------------------------------------------------ ' Script TCCPANO : Ajout d'une fonction de formatage d'un nombre réel ' ------------------------------------------------------------------------
' Initialisation de la bibliothèque
#include "tcc_init.inc"
' Variables globales
dim C_code$ : ' Code du programme C dim result$ : ' Resultat du programme C
' Creer et compiler le code C
Create_C_code() TCC_Compile(C_code$, "") if TCC_Code% < 0 then print "Erreur de compilation : ", TCC_Code% : end
' Une fois le code C compilé, on peut l'utiliser autant de fois qu'on veut
Format(4 * atn(1), 12, 5) : print "pi = ", result$ Format(exp(1), 12, 5) : print "e = ", result$ Format(sqr(2), 12, 5) : print "sqrt(2) = ", result$ Format(sqr(3), 12, 5) : print "sqrt(3) = ", result$
end
' ------------------------------------------------------------------- ' Procédures du programme ' -------------------------------------------------------------------
sub Create_C_code()
dim_local guil$ : guil$ = chr$(34)
C_code$ = "#include <stdio.h> " C_code$ = C_code$ + "int main(char p_in[], char p_out[])" C_code$ = C_code$ + "{" C_code$ = C_code$ + " double x; int ntot, ndec; char fmt[20];" C_code$ = C_code$ + " sscanf(p_in, " + guil$ + "%lf %d %d" + guil$ + ", &x, &ntot, &ndec);" C_code$ = C_code$ + " sprintf(fmt, " + guil$ + "%%%d.%df" + guil$ + ", ntot, ndec);" C_code$ = C_code$ + " sprintf(p_out, fmt, x);" C_code$ = C_code$ + " return 0;" C_code$ = C_code$ + "}" end_sub
sub Format(x, ntot%, ndec%) ' Formate un nombre réel sur un total de ntot% signes dont ndec% décimales
dim_local InputStr$ InputStr$ = str$(x) + " " + str$(ntot%) + " " + str$(ndec%) result$ = string$(ntot%, " ") TCC_Exec(InputStr$, result$) end_sub
' ------------------------------------------------------------------- ' Procédures de TCCPANO ' -------------------------------------------------------------------
#include "tcc_subs.inc"
| |
| | | Contenu sponsorisé
| Sujet: Re: Mise à jour TCCPANO | |
| |
| | | | Mise à jour TCCPANO | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |