EPB

Programmation d'applications complexes
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

EPB

Message par Backup »

EPB = Editeur Pure Basic , rien de bien original n'est ce pas ....

A telecharger ici :
http://michel.dobro.free.fr/download.php?view.25


pour le fun, je me fait un editeur pour le Pb
je continue ici le lièvre que j'ai soulevé dans le sujet a Droopy

mais avant , voici ou j'en suis a propos de EPB

quelques images valent mieux qu'un long discourt

Image
Image
Image
Image

pour l'instant :


EPB permet de scinder une ligne ou l'on veut grace a " _" (espace+"_") ....... en plus du scindage de Purebasic qui est arrivé apres .... ;)
ex :

Code : Tout sélectionner

OpenWindow(0,0,0,305,140, _
#PB_Window_SystemMenu| _
#PB_Window_ScreenCentered, _
"PureCOLOR Test file 3") _
And CreateGadgetList(WindowID(0))
un module de reconversion de ce genre de listing pour les éditeurs "normaux"
(menu Convert/deblocker(_) )

permet les Alias ex :
"msg" pour remplacer "a la claire fontaine" ... bon c'est un exemple hein

il a la complétion ,
(meme de vos procedures, et constantes)

une aide succincte pendant l'écriture d'une fonction purebasic

retient automatiquement tout les chemins que vous utilisez

supporte le Drag and Drop

vous permet d'utiliser vos outils fait en Purebasic ou autre
il suffit de déposer votre exe dans le dossier "outils " pour qu'il soit dispo dans le menu de EPB

ne laisse pas le compilateur en permanence en RAM (Pbcompiler dans les taches)

dispose d'un petit convertisseur d'ancien code en Version Purebasic 4.51 (a améliorer)

dispose d'un Dépuncher (pour supprimer les lignes genre:)

Code : Tout sélectionner

if a=34:toto=titi:endif
et les transformes en :

Code : Tout sélectionner

if a=34
    toto=titi
endif

accepte les
;{ et ;} pour les folders
les ;- pour les signets
et meme
;{- toto pour folder+signet

menu popup permet les blocks/deblock de commentaires


Full_coloring
voir image en haut

permet d'activer ou désactiver les librairies utilisateurs par menu dans EPB
voir image en haut


Rappel : des commandes EPB :

$declare
Mettez vos procedures en fin de listing
en debut de listing écrivez : $declare
Vos procedures seront automatiquement declarées par EPB

$include
Sur la ligne en cours , écrivez : $include
Epb vous demandera quels fichier(s) inclure
Le chemin d'inclusion (Absolu) et le nom des fichiers seront insérés dans le listing
par Epb

$r_include
Sur la ligne en cours , écrivez : $r_include
Epb vous demandera quels fichier(s) inclure
Le chemin d'inclusion (relatif) et le nom des fichiers seront insérés dans le listing
par Epb



$catchimage
Sur la ligne en cours, (au début du listing) écrivez : $catchimage
Epb vous demandera quel fichiers image inclures
Epb écrira les inclusions,et la datasection , ou la complétera, si elle existe déjà

$catchsound
Sur la ligne en cours, (au début du listing) écrivez : $catchsound
Epb vous demandera quel fichiers Sons inclures
Epb ecrira les inclusions,et la datasection , ou la completera, si elle existe deja


$catchsprite
Sur la ligne en cours, (au début du listing) écrivez : $catchsprite
Epb vous demandera quel fichiers image_sprite inclures
Epb ecrira les inclusions,et la datasection , ou la complètera, si elle existe deja

$load :) (le Code in Code)
vous tapez cette commande un openfilerequester s'ouvre pour vous demander quel fichier *.pb *.pbi ou meme txt
le contenu de ce fichier sera inclue a l'emplacement de la commande $load !!
ça permet de pouvoir avoir des bouts de code par fichier et de les inclure physiquement dans le code en cours d'édition
par exemple si vous voulez mettre les lignes de code d'un " include "
vous sélectionnez les lignes concernant l'include
vous tapez $load , et vous chargez l'include en question

celui-ci sera ecrit dans le code en cours

exemple : avant d'avoir ecris $load :

Code : Tout sélectionner


procedure hasard(max)
    x=random(max)
    ProcedureReturn x
endprocedure



debug hasard(255)

; 
; EPb 
apres avoir ecris $load et choisi le fichier "test_appel_dll.pb"

Code : Tout sélectionner


procedure hasard(max)
    x=random(max)
    ProcedureReturn x
endprocedure

;**************** start code in code : test_appel_dll.pb *************
CallDebugger
If OpenLibrary(0, "dll_test_x86.dll")
    CallFunction(0, "MaFonction")
    CloseLibrary(0)
EndIf
; 
; EPb 

;************************* end code in code *************


debug hasard(255)

; 
; EPb 


$path
qui permet d’insérer a l'endroit de cette commande un chemin vers un fichier

si dans un code que vous récupérez vous avez ce genre de ligne de code :

Code : Tout sélectionner

LoadSprite(#brush, "2.png",#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
le fait de taper $path ici :
LoadSprite(#brush, $path,#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)
un openfile requester s'ouvrira , vous n'aurez qu'a pointer le fichier qui doit etre dans cette commande
pour obtenir par exemple ceci :

Code : Tout sélectionner

LoadSprite(#brush,"E:\ExemplePerso\blendman\2.png",#PB_Sprite_AlphaBlending|#PB_Sprite_Texture)



tout ceci est rappelé dans un nouveau menu "Aide EPB"

ps: la commande _block et _endblock qui sert a mettre en forme une portion de code
continue de s'ecrire "_block" et pas "$block" < verrai ça plus tard




Multilingue
il suffit de mettre un fichier de langue.prefs dans le dossier "Langues"
voir dedans pour comprendre :)

Pilotage possible de l'editeur via un petit prg exemple :

d'abord on initialise la communication avec EPB

Code : Tout sélectionner


; attention , ne pas utiliser la procedure ci dessous (envoie_epb() ) a partir de EPB  , cela ne marchera pas !!! 


;{- ****Creation du canal de communication avec EPB ********************************
;- structure memoire partagé
Structure Partage
	declencheur.b
	valeur1.i
	message$ {5000}
EndStructure
Global *ram.Partage


Declare envoie_epb(text.s,type)

Procedure envoie_epb(text.s,type)
	; ************************ code de debut d'utilisation du ram_disque **************************
	MemoirePartagee=CreatefileMapping_($FFFFFFFF,#Null, #PAGE_READWRITE, 0, SizeOf(Partage),"EPB_RAM")
	*ram=MapViewOfFile_(MemoirePartagee, #FILE_MAP_WRITE, 0, 0, 0)
	; ***************************************************************************************
	*ram\declencheur.b=1
	*ram\valeur1.i=type
	*ram\message$=text.s
	; ************************ code de fin d'utilisation du ram_disque **************************
	UnmapViewOfFile_(*ram);
	CloseHandle_(MemoirePartagee)
	; ***************************************************************************************
	Delay(200)
EndProcedure

Enumeration  ; message reçut par EPB
	#epb_pos_curs ;pose au curseur
	#epb_rempl ;remplace ligne en cour
	#epb_insert ;insert une ligne
	#epb_saut_to_ligne ; saut a la ligne
	#epb_pos_curs_x ;position x du curseur
	#epb_selection ; creer une selection
	#epb_rempl_select ;remplace la selection
	#epb_line_to_clipboard ; la ligne en cours  vers le clipboard
	#epb_select_to_clipboard ;selection vers le Clipboard
	#epb_onglet_to_clipboard  ; contenu de l'onglet vers Clipboard
	#epb_load_file ;fichier dans nouvel onglet
	#epb_active_onglet ;active un onglet	
	#epb_return_onglet ; retourne le numero de l'onglet actif
EndEnumeration
;} *******************************************************************************************



ensuite pour l'utilisation c'est simple :
chaque utilisation de la procedure
;envoie_epb(chaine$,#action) ; permet de demander a EPB de faire une action
voici tout ce qu'on peut faire faire a EPB :

Code : Tout sélectionner



; Utilisation : 
; *********************Message de communication *************************************
; cette procedure vous permettra d'envoyer des commandes a EPB
; utile si vous développez un utilitaire, qui aurai besoin de poser un résultat dans EPB

; ****************** exemples d'utilisation **************************************
; envoie_epb("un Petit Message",#epb_pos_curs) ; pose au curseur
; ; *******************************************************************

; ; *******************************************************************
;envoie_epb("Remplace",#epb_rempl) ; Remplace la ligne en cours (par rapport au curseur)
; ; *******************************************************************

; ; *******************************************************************
;envoie_epb("un Petit Message",#epb_insert) ; insert une ligne (par rapport au curseur)
; ; *******************************************************************

; ; *******************************************************************
;Debug GetCurrentDirectory()
;envoie_epb("20",#epb_saut_to_ligne) ; saute a la ligne 20
; ; *******************************************************************

; ; *******************************************************************
;envoie_epb("10",#epb_pos_curs_x) ; positionne le curseur apres le 10eme caratere
; ; *******************************************************************

; ; *******************************************************************
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractère sur une longueur de 10 caractère de la ligne en cours
; *******************************************************************

; ; *******************************************************************
; exemple de selection et remplacement :
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
;envoie_epb("message qui remplace",#epb_rempl_select) ; et remplace par le message
; ; *******************************************************************

; ; *******************************************************************
; récupération de la ligne en cours par le clipboard()
;envoie_epb("",#epb_line_to_clipboard) ; Récupère la ligne en cours, et la met dans le clipboard
; 
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************

; ; *******************************************************************
; récupération de la ligne en cours par le clipboard()
;envoie_epb("5,10",#epb_selection) ; sélectionne apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
;
;envoie_epb("",#epb_select_to_clipboard) ; Récupère la selection en cours, et la met dans le clipboard
 ;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************

; ; *******************************************************************
; récupération de l'onglet en cours par le clipboard()
;envoie_epb("8",#epb_onglet_to_clipboard ) ; Récupère le contenu de l'onglet  numero 8 (a partir de zero) , et le met dans le clipboard
 ;
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************

; ; *******************************************************************
; récupération de la selection en cours par le clipboard()
;envoie_epb("",#epb_select_to_clipboard ) ; Récupère la selection en cours, et la met dans le clipboard
; 
;Debug GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************************


; ; *******************************************************************
;file$=OpenFileRequester("load pb",Home$,"*.pb",0)
;envoie_epb(file$ ,#epb_load_file) ; creer un onglet, et charger un fichier *.pb
; ; *******************************************************

; ; *******************************************************
; activation de l'onglet X
;envoie_epb("1" ,#epb_active_onglet) ; active l'onglet 1
; ; *******************************************************


; ; *******************************************************
; renvoie le numero de l'onglet (donc de l'editeur ) actuellement Actif
 ;envoie_epb("" ,#epb_return_onglet ) ; numero de l'onglet actif ?
  ;
;Debug  "actuellement l'onglet actif est le numero :"+GetClipboardText() ; affiche le contenue du clipboard
; ; *******************************************************


; ******** pour Falsam ********************************************
; ; lance EPB et fait une selection dedans ... puis a partir de ton editeur (pas epb ) lance ce code
; ; 1- exemple de recuperation d'une selection dans l'editeur Actif (l'onglet actif ) 
; ; 2- puis modification de cette recuperation 
; ; 3- puis remplacement de cette recuperation dans l'editeur actif .. 
; 
; ;1  recup la selection :
; ClearClipboard() ; vide le clipboard
; envoie_epb("",#epb_select_to_clipboard ) ; Récupère la selection en cours de EPB , et la met dans le clipboard
; 
; text$=GetClipboardText() ; le contenu de la selection est maintenant dans Text$
; ;2 modifie la recuperation
; text$="ceci a été modifié : "+text$
; ;3 on va remplacer la selection  dans EPB
; envoie_epb(text$,#epb_rempl_select) 
; ; voila :)
; *****************************************************************

bref ça prends forme :)
Dernière modification par Backup le sam. 12/oct./2013 12:45, modifié 24 fois.
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Re: EPB

Message par Ouaf-Ouaf »

Bonsoir,

Arg. Du comics !

Anecdotes :

-Le géniteur du comic sans ms porte le nom de Vincent Konnare. ( C'est assez approprié. )
-La police fut créée pour un programme ayant dessein de cibler les enfants. ( C'est très pervers. )
-Il n'a disposé que d'une nuit pour perpétrer son crime. ( C'est assez flagrant. )


[Ceci est dit sur un ton de blague pas méchante]
C'est certes tout à fait non-constructif et inutile, mais vraiment, cette police m'apparait comme une profonde offense au bon goût. :) [/Cedsutdbpm]


J'ai déjà essayé Japbe, mais jamais vraiment accroché. J'imagine que sa notoriété est due à des aspect dont je n'ai pas besoin.
Je ne comprends pas en quoi l'éditeur intégré ne suffit pas :|


Bonne continuation.. (toutefois) :lol:
659_Minifly
Messages : 31
Inscription : ven. 20/nov./2009 18:10
Localisation : Valenciennes 59

Re: EPB

Message par 659_Minifly »

Je suis allé sur Video et je trouve cela + que très bien.
"Enfin quelqu'un qui ose"
Bravo
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Re: EPB

Message par Ouaf-Ouaf »

659_Minifly a écrit :Je suis allé sur Video et je trouve cela + que très bien.
"Enfin quelqu'un qui ose"
Bravo
Attends, ne pars pas sans avoir vu le fond défilant du site perso ! Cet homme ose tout ! Il a bien raison.
"Repousser toujours plus loin les limites de l'illisible" tel est son crédo.


[Je rigole]+[J'arrete]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

@Ouaf-Ouaf
j'adore la fonte comic sans Ms :)
ce doit etre une preuve que je suis resté jeune d'esprit ;)
toutefois ta remarque me fera ajouter le choix de la fonte, que j'avais zapé ...merci donc :)


pour ma part j'avais sauté sur Japbe pour une seule raison
il proposait par l'emploi des touches Control+Tab , la mise en forme du code

chose que l'editeur officiel n'est.? (en tout cas n'etait pas) capable ..
je prefere avoir un code qui se met en forme rapidement et Automatiquement
comme ça :


For i=1 To 255
     For i=1 To 255
         For i=1 To 255
             For i=1 To 255
                 For i=1 To 255
                     If a=55
                        toto=1
                         ; exemple bidon mais explicite
                     EndIf
                 Next i
             Next i
         Next i
     Next i
Next i
    


plutot qu'un code ou il faut inserer manuellement les tabulations

d'autre part Japbe propose des outils bien sympathique comme par exemple
pouvoir faire une librairie en utilisant Tailbite,
la lib va etre faite a partir de Japbe,et automatiquement installées
le compilateur sera relancé , et les fonctions de ta nouvelle lib
seront utilisable tout de suite !

bref , plein de petits details

pour EPB j'essaierai de garder ces possibilités
(il fait deja la mise en forme du code par Control+Tab ;) )


l'avantage d'etre dans le moteur d'un editeur, permet ensuite de creer des "facilités"
mais j'en reparlerai plus tard... :)

[Reedit]
Ouaf-Ouaf a écrit :
659_Minifly a écrit :Je suis allé sur Video et je trouve cela + que très bien.
"Enfin quelqu'un qui ose"
Bravo
Attends, ne pars pas sans avoir vu le fond défilant du site perso ! Cet homme ose tout ! Il a bien raison.
"Repousser toujours plus loin les limites de l'illisible" tel est son crédo.


[Je rigole]+[J'arrete]
vous parlez de quel Video ?
et de quel Site ?
Dernière modification par Backup le sam. 17/déc./2011 16:00, modifié 1 fois.
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Re: EPB

Message par Ouaf-Ouaf »

Dobro a écrit :@Ouaf-Ouaf
j'adore la fonte comic sans Ms :)
ce doit etre une preuve que je suis resté jeune d'esprit ;)
toutefois ta remarque me fera ajouter le choix de la fonte, que j'avais zapé ...merci donc :)

..

pour ma part j'avais sauté sur Japbe pour une seule raison
il proposait par l'emploi des touches Control+Tab , la mise en forme du code
Le choix de la fonte serait effectivement pas mal =p Je te cache pas que le Comics a beaucoup de détracteurs.

Arf, si je comptais le nombre de fois où j'ai pesté contre les retour à la ligne qui déforme ma laborieuse indentation ..


Bonne soirée.



[edit]
Je parlais du fond défilant de ton site perso ;)
[/edit]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

Ouaf-Ouaf a écrit : [edit]
Je parlais du fond défilant de ton site perso ;)
[/edit]

arf , on est tous le con de quelqu'un ...

et puis les gouts et les couleurs ....

j'aime le Vert , qui me rappel les monitors des années honeywell Bull
et j'aime les références cinématographique...

tu es la premiere personne a t'en plaindre ...
alors soit tu as un probleme de vision , soit les autres sont de gros hypocrites :lol:

ps : 200 messages ... ça se fete :)
659_Minifly
Messages : 31
Inscription : ven. 20/nov./2009 18:10
Localisation : Valenciennes 59

Re: EPB

Message par 659_Minifly »

@Dobro
Ton site j'y suis allé il y a bien longtemps. Il n'y a rien a redire "les gouts et les couleurs".
Nom je parlais de youtube. Des détracteurs et des jaloux il y en aura toujours. Juste l'indifférence.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

659_Minifly a écrit :@Dobro
Ton site j'y suis allé il y a bien longtemps. Il n'y a rien a redire "les gouts et les couleurs".
Nom je parlais de youtube. Des détracteurs et des jaloux il y en aura toujours. Juste l'indifférence.
ha ok ! :) j'en ai d'autres faut que je prenne le temps de les envoyer :)

c'est ma frangine de Paris qui m'a demandé de lui faire un disque "hommage a ferrat"
les videos sont a écouter au casque de pref ..
a moins d'avoir l'ordi branché sur une bonne chaine hi fi
malheureusement , j'ai pas mal de perte apres conversion par youtube...
mais au casque , ça tiens la route niveau son ... :)
Merci :)

ps: je ne suis pas chanteur ... juste guitariste... là c'etait une exception
659_Minifly
Messages : 31
Inscription : ven. 20/nov./2009 18:10
Localisation : Valenciennes 59

Re: EPB

Message par 659_Minifly »

J'espère pouvoir tester ce nouvel EPB.
Au revoir
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: EPB

Message par Cool Dji »

Salut Dobro,

EPB, je suis preneur.
Si t'as besoin de testeur, je suis ok
Only PureBasic makes it possible
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

ok Merci :)

j'ai encore un peu de boulot, ... mais je ne veux pas sauter les etapes :)
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Re: EPB

Message par Ouaf-Ouaf »

Dobro a écrit :
Ouaf-Ouaf a écrit : [edit]
Je parlais du fond défilant de ton site perso ;)
[/edit]

arf , on est tous le con de quelqu'un ...

et puis les gouts et les couleurs ....

j'aime le Vert , qui me rappel les monitors des années honeywell Bull
et j'aime les références cinématographique...

tu es la premiere personne a t'en plaindre ...
alors soit tu as un probleme de vision , soit les autres sont de gros hypocrites :lol:

ps : 200 messages ... ça se fete :)

Tiens, je mettrai d'ailleurs bien en relation le début et la fin de ton post.
Je suis "fier" de ma date d'inscription, mais si j'ose me relire 6 ans (ou même moins) en arrière, je me retrouve auto-con-de-moi-même. lol.

Concernant les goûts et les couleurs, c'est bien le terrain le moins raisonnable pour s’écharper sérieusement... Toutefois, si il le fallait vraiment, j'axerai plus ma critique sur des notions de confort visuel et de lisibilité ! héhé

En même temps hein... tout ça colle très bien avec l'époque à laquelle tu fais référence .. Maaaais... Plus discret (moins saturé), un peu moins nerveux et avec de gros pixels, ça l'frait (selon moi) bien plus ^^


Enfin bref, je m'en vais fêter mon 201ème post dans mon lit... Pour éviter de dévier le sujet plus en avant et me retrouver auto con de moi même dans 6 jours. lol
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: EPB

Message par MLD »

Salut Dobro

Bon travail comme dab :lol:
OK pour un test, et avis. Quand tu veux. :lol:

Michel

PS Pour infos mon antivirus BitDefender 2011 refuse l'ouverture de ton site :?:
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: EPB

Message par Fred »

Le compilateur reste en ram avec JaPBE et l'IDE officiel, car c'est plus rapide pour lancer une compilation (il est scriptable à partir de la console en mode /STANDBY): pas besoin de recharger les libs, les residents etc. entre chaque compilation. Pour ce qui est de bouffer de la memoire entre chaque compilation, c'est pas un probleme vu que tu en auras de toute facon besoin de cette memoire quand tu vas compiler... ;)
Verrouillé