begin process at 2012 05 27 15:55:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > EDITEUR EN COULEURS POUR MACROSCRIPT

EDITEUR EN COULEURS POUR MACROSCRIPT


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Initié Date de création :11/11/2003 Date de mise à jour :12/11/2003 19:29:46 Vu / téléchargé :4 846 / 457

Auteur : garslouche

Ecrire un message privé
Site perso
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
MacEdit est un éditeur de textes en couleurs pour les fichiers MacroScript.
MacroScript est une autre source :
http://www.cppfrance.com/code.aspx?ID=17340
c'es t un langage de script qui permet d'automatiser des tâches dans Windows.


MacEdit utilise les CRichEditCtrl pour la coloration et permet plusieurs choses :
- colorer le texte en cours de frappe bien-sûr
- tester un script directement depuis l'éditeur
- la complétion automatique
- l'aide contextuelle
- et bien-sûr tous les trucs classiques d'un éditeur : ouvrir/enrgistrer/imprimer...


 Conclusion

MacEdit a encore des problèmes:
- impossible d'annuler
- la coloration a des problèmes quand on fait un copier/coller d'un texte en couleurs sur plusieurs lignes

J'essaierai de corriger ces bugs.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip CLABEL : UN CSTATIC AMÉLIORÉ
Source avec Zip [WIN32] LANGAGE DE SCRIPT POUR AUTOMATISER DES ACTIONS DANS ...
PROPRIÉTÉS D'UN FICHIER / D'UN DOSSIER FAÇON WINDOWS
MELANGER N'IMPORTE QUOI
Source avec Zip LES FONCTIONS DE MATH.H REPROGRAMMÉES

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de Chouchou182 le 11/11/2003 16:01:49

Salut

Impossible de démarrer le prog :

Aide::Aide()
{
// ...
FILE* pFichier = fopen(fichier,"r");
//...
while (! feof(pFichier) )     // Bug à cet endroit!
//...
}

C'est quand même utile de tester si l'ouverture du fichier a correctement fonctionnée... surtout que tu ne donnes pas le fichier fonctions.txt dans ton zip...

Remplacer par :

FILE* pFichier ;

if ( ( NULL == ( pFichier = fopen ( fichier, "r") ) ) && ( NULL == ( pFichier = fopen(fichier, "w+") )) ) return ;

En effet avec l'opérateur &&, si la première condition est fausse (ici si l'ouverture en lecture a fonctionnée), la seconde n'est pas évaluée.

A++

Chouchou

PS : C'est quand même très bon et l'interpréteur bien sympa!!

Commentaire de garslouche le 11/11/2003 16:17:40

Oui je sais...je viens de me rendre compte que j'ai posté une mauvaise version. Désolé pour le désagrément.

Je viens de mettre la nouvelle version mais j'ai l'impression que le serveur met un certain temps avant de mettre les sources effectivement à jour.

Commentaire de garslouche le 12/11/2003 18:55:12

Ca y est la bonne version est dispo!

Commentaire de Kirua le 12/11/2003 21:49:00

très bien tt ça ^^
toutes mes félicitations, plus le trophée pour couronner le tout ;-)
je te dis, les sauts conditonnels... je te dis que ça :-D
je te dis comment moi j'ai fait:
j'ai une classe (c vrmnt super long) qui lit le fichier et qui récupère chaque terme du code, l'évalue (type de l'élément: fonction, variable entière, variable text, mot clef, opérateur ...)
puis j'ai tt un tas de trucs autour pour pvr passer d'un élément du code à l'autre, en avant, en arrière, etc... comme ça je peut écrire un interpreteur à coté qui me gère toutes les commandes qui arrivent l'une après l'autre. ça marche bien :-)

Commentaire de garslouche le 12/11/2003 22:01:59

Merci :)

Ok, je vois ce que tu as fait.
J'y avais aussi pensé au début mais ça ne peut marcher que sur des scripts très courts. Sinon l'espace mémoire devient gigantesque.
Dans la version 0.1.0.1 je stockais toutes les lignes dans un tableau de CString pour ne pas avoir besoin de les lire à chaque fois mais même ça c'était trop lourd. Ceci-dit je m'y étais mal pris. Je le ferais peut-être dans MacroScript 2!

Entre autres choses, maintenant que les expressions mathématiques sont évaluées je pense que je vais pouvoir faire sauter quelques interdictions. En particulier l'obligation de passer des variables en paramètre devrait disparaitre. Je vais essayer aussi de ne plus avoir besoin de déclarer le type de variable mais que le script comprenne tout seul (un peu comme en VB). Et bien-sûr j'ajouterai des nouvelles fonctions (notament une sorte de boucle for parceque même si avec Macroscript 1.1 il y a des labels et des goto, c'est pas pratique à utiliser)

Commentaire de Kirua le 13/11/2003 17:09:35

hmm, pr l'espace mémoire, imaginons un code qui contienne 1024 lexems (éléments), ça te fait:

- un int (4 octets) pr le type d'objet
- un autre pr le type d'opérateur ou de mot clef
- une string de longueur qui devrait faire en moyenne 5 caractères (les opérateurs, 1 ou 2 et puis les mots clefs souvent courts, quant au reste, c'est pas franchement long: noms de variables, on fait tjs court, et de tte manière, y a bcp plus d'opérateurs ;-))

ça fait 13 * 1024 = 13 Ko de RAM, c'est pas exagéré je pense, :-) et 1024 lexems c déjà un beau code, pr un script. non, honnetement, je pense que c'est une bonne méthode, et chez moi c franchement rapide, promis

Commentaire de Kirua le 13/11/2003 17:46:04

oh, je devrais mettre des unsigned short int, c trop con !! je vias y penser :-D ça ferait plus que 9Ko pour 1024 lexems

Commentaire de garslouche le 13/11/2003 18:00:25

en fait c'est ps tout-à-fait le bon calcul pour le 3ème tiret :
tu peux considérer que chaque fonction a un code ce qui t'évite de stocker le nom des fonctions par ex
DELCARE -> 0
MESSAGE -> 1
...
En prenant un octet pour ce code ça te fait 256 fonctions possibles.(suffisant)

Pareil pour les opérateurs. Même si certains prennent 2 caractères on peut leur donner un code.

Là où ça se complique c'est pour les variables (là encore c'est inutile de stocker leur nom si on considère que l'on donne un code croissant àchaque nouvelle variable). Leur valeur ne peut être stockée autrement que telle qu'elle est inscrite dans le code.

C'est clair qu'il y a moyen de faire mieux ! Ceci-dit dans l'état actuel ça tourne largement assez vite!

Mais pour le principe ça serait interessant

Commentaire de Kirua le 13/11/2003 19:01:50

ben, je pense à plusieurs solutions: soit passer les fonctions comme propriétés de la classe Interpreteur auquel cas elles seraient appelées comme pseudos-méthodes mais pr le contexte ds lequel j'utilise ça, c pas bon, donc c'est une classe externe qui détermine quelle fonction globale lancée, et donc pr la facilité je ne fias pas de liste de fonctions ds l'analyseur syntaxique, puisque ts les terms pr lesquels je n'ai pas pu déterminer le type, dont forcément fontion. c tout ^^ après une batterie de if...

Commentaire de Funto66 le 14/11/2003 11:46:58

Juste pour en revenir à l'éditeur, il est bien buggué :(
Pour ce qui est de MacroScript, je pense que ce serait sympa aussi de rajouter une fonction dans le genre de l'InputBox de VB, qui demande une chaîne de caractères ou un nombre, selon le type de la variable passée en paramètre.

Commentaire de garslouche le 14/11/2003 12:26:12

ok pour l'inputbox.

Pour les bugs, tu peux préciser ?

Commentaire de Funto66 le 15/11/2003 10:38:33

Pour les bugs, je fais référence à la colorisation, qui n'est vraiment pas au point, genre j'écris "DECLARE", ça s'affiche en vert mais tout ce qui suit aussi :(.
Ou encore j'écris "dsfkj DECLARE" et tout est en noir, même DECLARE.
Par contre, ce qui est géniak, c'est l'autocomplétion avec la touche Echap ;)
Merci pour l'InputBox ;)

Commentaire de garslouche le 15/11/2003 11:37:09

quand tu ecris declare tout ce qui suit se met en vert ? Je viens d'essayer mais ça a l'air de marcher chez moi.
Tu peux me dire excatement ce que tu fais qd ça ne marche pas, stp ?

par contre quand tu écris "dsfkj DECLARE" c'est normal que tout soit en noir. C'est parceque MarcroScript interprete cette ligne comme la fonction 'dsfkj' avec pour paramètre 'DECLARE'. Donc si dsfkj était une fonction connue il la mettrait en vert mais de toutes façons les paramètres sont toujours en noir.

Pour l'InputBox ça sera surement dans MacroScript 2. Mais ça ne sera pas avant janvier à mon avis. (ceci-dit tu peux très facilement ajouter une fonction à MacroScript : regarde le ReadMe)

Commentaire de Funto66 le 15/11/2003 13:59:12

Je viens de retélécharger l'éditeur pour voir si j'avais bien la dernière version et ça se confirme.
Quand je tape : "DECLARE txt, texte" il commence par écrire en noir, puis dès que "DECLARE" est fini la "couleur actuelle" passe au vert, et tout est écrit en vert, à moins qu'on ne fasse un commentaire, auquel cas la couleur actuelle passe au gris, et tout est écrit en gris. Si j'écris "DECLARE txt, texte", puis que je l'efface, si je réécris n'importe quoi ça s'affiche en vert. Voilà, j'espère que j'ai été clair.

Aussi, y'a une autre solution : scintilla (http://www.scintilla.org), qui est un composant fait exprès pour l'édition de codes sources avec coloration syntaxique et tout et tout. wxWindows (http://www.wxwindows.org) est comme MFC mais portable et open source et possède un contrôle wxStyledTextCtrl qui est un wrapper autour de Scintilla, mais bon, à ce stade-là je pense pas que tu veuilles passer le tout sous wxWindows...

Commentaire de garslouche le 15/11/2003 14:06:17

que declare ne s'affiche en vert que quand il est écrit en entier c'est normal. C'est justement pour montrer que ce mot fait partie de son vocabulaire. Le commentaire passe tout en gris...normal aussi!
C'est commedans visual c++ : si tu tapes int main(...), le mot "int" passe au bleu seulement quand il est tapé en entier.

Quant au fait que tout passe en vert si tu efface la ligne "DELACRE txt,texte", là je n'y comprends rien : j'ai essayé dix façons différentes de le faire et chez moi ça marche toujours.
tu peux me dire de manière encore plus précise ce que tu fais parceque là vraiment je ne vois pas.

Merci


PS: il me semble que tu m'avais parlé de scintilla quand j'avais parlé de faire cet éditeur mais j'avais envie d'essyaer les CRichEdit

Commentaire de Funto66 le 15/11/2003 21:32:40

Ah ok pardon pour Scintilla.
"que declare ne s'affiche en vert que quand il est écrit en entier c'est normal. C'est justement pour montrer que ce mot fait partie de son vocabulaire. Le commentaire passe tout en gris...normal aussi!
C'est commedans visual c++ : si tu tapes int main(...), le mot "int" passe au bleu seulement quand il est tapé en entier." -> Ca je sais, seulement les noms de variables et tout ce qu'on écrit ensuite passe au vert également.

Franchement, je vois pas comment être plus précis, à moins que tu viennes essayer chez moi mais bon :p
A mon avis, si le comportement est différent chez toi et chez moi, y'a 3 raisons possibles :
1) soit on n'a pas le même exe, et tu as oublié de mettre à jour ta source
2) soit ça vient de MFC, qui possède 3 versions différentes de la même DLL qui peuvent se comporter de manière différente
3) soit ça vient carrément de Windows et de son contrôle RichEdit (j'ai Win98), mais ça m'étonnerait quand même...

Donc, essaye peut-être en linkant statiquement les MFC, le pb c'est que ça fera un gros exe :(

Commentaire de mIxtEr_ThE_BoSs le 09/05/2004 18:56:45

Y aurait-il moyen d'avoir le code source de ce langage que j'aimerai faire évoluer pour mon utilisation personelle en véritable plate-forme de programmation autonome?

Commentaire de Kirua le 09/05/2004 19:09:09

http://www.cppfrance.com/code.aspx?ID=17340

c'est écrit dans la présentation de ce code source!

Commentaire de Funto66 le 10/05/2004 18:18:13

mIxtEr_ThE_BoSs >> Si tu veux faire évoluer le langage fais-en profiter tous les CppFrançais ;)

Commentaire de garslouche le 11/05/2004 18:03:07

Je rappelle au passage qu'avec MacroScript 1, l'ajout de fonction est facile mais il est relativement difficile de les distribuer. En revanche avec MacroScript 2 chaque fonction est une DLL il est ainsi très simple de les distribuer.

PS : ça fait plaisir de voir que 6 mois après cette source "vit" encore :)

Commentaire de mIxtEr_ThE_BoSs le 11/05/2004 18:57:46

Kirua >> c'est précisé que c'est sous dll, donc compilé et j'ai pas de décompilateur actuellement

Funto66 >> je proposerais d'abord à garslouche l'évolution et il verra ce qu'il en feras s'i veut le distribuer ou pas mais je souhaite d'aord dans un premier temps m'en servir personelement

garslouche >> oui mais est-ce que tu pourrais m'envoyer un fichier Cpp mettant bout à bout tout le code ; c'est pour imprimer, la longueur du code ne me gêne pas. merci

Commentaire de Kirua le 11/05/2004 19:11:37

imprimerdu code? jamais fait ça ^^

les gars de Pretty Good Privacy (logicial gratuit de cryptage RSA) ont dû imprimer et scanner avec un OCR les 12 000 pages du code source de leur programme pour pvr le recompiler en europe, car la loi interdit de faire sortir des logiciel de cryptage de cette qualité des USA ^^

Commentaire de mIxtEr_ThE_BoSs le 11/05/2004 19:30:25

oui mais j'ai 2 ordinateurs chez moi, mais un seul relié au net. Mon lecteur de disquette est mort, je n'ai pas que ça à faire de mes cd, ma clé usb m'est pas reconnu par 98 se (ah la la la nostalgie...).
quand à l'anecdote, je plaint les pauvres gars qu'on dû se taper tout le travail....

Commentaire de Kirua le 11/05/2004 19:47:25

c t des bénévoles passionés, un beau travail tout de même! surtout qu'il y a eu plusieurs version lol. La dernière fois ils avaient un scanner avec un chargeur de 100 pages plutôt bien fichus, mais la première fois c t quasi un scanneur normal de privé O_o ils ont passé un temps fou là dessus.

Commentaire de mIxtEr_ThE_BoSs le 11/05/2004 20:22:37

je compati pour eux :-))))))))))
lol

Commentaire de mIxtEr_ThE_BoSs le 11/05/2004 20:29:13

Enfin moi je suis tout seul et j'imagine que le script pourrait être étalé sur une dizaine de pages, voire plus, vu le nombre de dll.....

Commentaire de garslouche le 12/05/2004 11:36:59

mIxtEr_ThE_BoSs je suis tout disposé à distribuer toute évolution de ce langage (tant qu'il n'y a rien de mal intentionné bien-sur). Et même si tu a besoin d'aide n'hésite pas.

Mais pour le code sur un seul fichier je ne vois pas le pb. Qu'est-ce qui t'empeche de faire la fusion toi-même ?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales