Mon p'tit dernier : Template Manager

Programmation d'applications complexes
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Mon p'tit dernier : Template Manager

Message par Chris »

Comme son nom l'indique, Template Manager est un gestionnaire de Templates (Tous les petits bouts de code qu'on récupère à gauche et à droite en se disant :"Ca peut servir")

En général, on met ça dans des dossiers (dans le rep de PureBasic ou ailleurs), et c'est toujours au moment ou on en a besoin qu'on se demande:
"Mais ou j'ai bien pu foutre ce $@§µ£ de bout de code de #${&¤!!!"

Bref, Template Manager permet de créer une liste d'alias pointant chacun sur un des dossiers ou vous rangez vos codes.
En cliquant sur un alias, ça ouvre le dossier et vous voyez les fichiers qui sont à l'intérieur.
Si vous cliquez sur un fichier, le code s'affiche dans un EditorGadget et vous pouvez le coller dans le presse-papier (ou dans un onglet pour ceux qui utilisent jaPBe)


Les Fonctions:

[Tous les éditeurs]
- Création, modification, suppression d'extensions (Pour ne voir que les fichiers *.pb, par exemple).
- Création, modification, suppression d'alias.
- Copie d'un code complet ou d'une partie de code dans le presse-papier.
- Mini aide sur les gadgets survolés par la souris en bas de la fenêtre.
- Aide contextuelle en mettant la souris au dessus d'un gadget et en appuyant sur F1.

[jaPBe seulement]
- Copie d'un code complet ou d'une partie de code dans un nouvel onglet.
- Copie d'un code complet ou d'une partie de code à l'emplacement du curseur.
- Ouverture du fichier original dans un nouvel onglet.

A télécharger ici

Image
Avatar de l’utilisateur
gildev
Messages : 380
Inscription : mar. 19/juin/2007 10:28
Localisation : Picardie (France)

Re: Mon p'tit dernier : Template Manager

Message par gildev »

C'est bien pensé. Je vois que je ne suis pas le seul à avoir ce problème. :lol:
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Mon p'tit dernier : Template Manager

Message par jbernard13 »

Grand merci à toi Chris
Jbernard13
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: Mon p'tit dernier : Template Manager

Message par Mindphazer »

C'est assez pratique ;
j'ai cependant quelques remarques :
- si on fait CTRL-M alors que la liste des alias est vide ou qu'aucun alias n'est sélectionné (quelle idée, tu me diras !), le prog plante
- la suppression d'un alias (CTRL-S) provoque aussi un plantage
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Mon p'tit dernier : Template Manager

Message par Chris »

En principe, c'est réglé.

Merci pour le rapport de bug
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Mon p'tit dernier : Template Manager

Message par Patrick88 »

bien bien... petite remarque, peux tu ajouter le numéro de version sur ton site oueb, afin que l'on sache si on a le derniere version rien qu'en consultant le site

dis ! c'est possible, hein, dis ? :mrgreen:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Mon p'tit dernier : Template Manager

Message par Chris »

Je pourrais, mais il faudrait que je change le n° de version dans le code de la page à chaque fois, et ça me fatigue :mrgreen:
Je suis en train de réfléchir à un petit truc qui devrait régler ça.

Un petit programme qui va envoyer chaque archive que je fais sur mon site, et remplir automatiquement la page.

Un clic, j'ouvre le programme, un clic, je choisis l'archive, un clic j'envoie par ftp l'archive et la page mise à jour.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Mon p'tit dernier : Template Manager

Message par Ar-S »

Chris a écrit :Je pourrais, mais il faudrait que je change le n° de version dans le code de la page à chaque fois, et ça me fatigue :mrgreen:
Je suis en train de réfléchir à un petit truc qui devrait régler ça.

Un petit programme qui va envoyer chaque archive que je fais sur mon site, et remplir automatiquement la page.

Un clic, j'ouvre le programme, un clic, je choisis l'archive, un clic j'envoie par ftp l'archive et la page mise à jour.
ça c'est une idée toute à fait pas conne :mrgreen:
La gestion du up de l'achive et la modification de version en prime. Je prends :)
Image

J'ai pas besoin du template manager donc pas testé.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Mon p'tit dernier : Template Manager

Message par graph100 »

:D Je commençais à me dire que j'allais me faire un truc de ce goût là ! Mais puisque tu l'as fait avant moi, pourquoi m’embêter :lol:

Par contre, il y a une fonction qui serais à mon avis utile et très pratique : la recherche de fichier par mots clé.
Parce que perso, j'ai des plein de fichiers différents, plusieurs répertoires de sources de librairie, mais c'est vachement dur de retrouver une procédure spécifique dans un fichier.

Tu penses l'implémenter ou bien dois-je m'y pencher de mon coté ?
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Mon p'tit dernier : Template Manager

Message par Chris »

graph100 a écrit ::D Je commençais à me dire que j'allais me faire un truc de ce goût là ! Mais puisque tu l'as fait avant moi, pourquoi m’embêter :lol:

Par contre, il y a une fonction qui serais à mon avis utile et très pratique : la recherche de fichier par mots clé.
Parce que perso, j'ai des plein de fichiers différents, plusieurs répertoires de sources de librairie, mais c'est vachement dur de retrouver une procédure spécifique dans un fichier.

Tu penses l'implémenter ou bien dois-je m'y pencher de mon coté ?
J'y avais bien un peu pensé, mais je me suis dit que ça ne serait pas très utile.
Par contre, j'ai pas vraiment d'idée sur la façon de le faire.

Faire une recherche qui épluche tous les fichiers pour trouver un mot, c'est pas trop le problème.
Le truc, c'est de faire quelque chose qui ne te donne pas les résultats au bout de trois jours.

[Edit] Je viens de relire ton message, tu parles de "recherche de fichiers". C'est bien des noms de fichiers dont tu parles.
Parce que si c'est ça, c'est simple à faire. Il suffit de stocker tous les fichiers et leurs chemins dans une liste chainée, et de faire la recherche directement dans la liste. Ca sera beaucoup plus rapide que sur le disque.

Par contre, pour une recherche de mot-clés à l'intérieur des fichiers... :roll:
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Mon p'tit dernier : Template Manager

Message par graph100 »

non non !! une recherche dans les fichiers ;)
on peux voir à limiter les endroits de recherche pour aller plus vite, par exemple en ne recherchant que dans le nom des procédures

En fait, c'est peut être pas mal non plus de faire un index des procédures, et de montrer le fichier qui la contient quand tu cliques sur le nom.

Dans mon projet courant j'ai fait une fonction de recherche par mot clé. Il faut la modifier pour l'utiliser bien sur ;)

[edit] : j'ai changé le code pour mettre un exemple ça parle mieux


les sources de la recherche sont dans la liste ligne()
(ici ce serais les différents nom des procédures, ou bien chaque ligne du fichier en cours de recherche)
et j'affiche les résultats dans le gadget 3

copiez un texte dans l’éditeur, puis tapez un ou plusieurs mots clé dans la stringgadget en dessous

Code : Tout sélectionner

;{ structure et variables

Structure recherche
	nom.s
	point.l
	index_choix.l
EndStructure

Global NewList resultat.recherche()

Global NewList ligne.s()

;}


;{ procedure

Procedure Recherche(mot$)
	
	ClearList(resultat())
	
	nb = CountString(mot$, " ") + 1
	
	ForEach ligne()
		nb_point = 0
		
		nom$ = ligne()
		
		AddElement(resultat())
		resultat()\nom = nom$
		resultat()\index_choix = ListIndex(ligne()) ; sert pour retrouver les sources depuis resultat
		
		If nom$ = mot$
			nb_point = Len(mot$)
		EndIf
		
		For a = 1 To nb
			parti$ = LCase(StringField(mot$, a, " "))
			
			If FindString(LCase(nom$), parti$ + " ") Or FindString(LCase(nom$), " " + parti$)
				nb_point = nb_point + Len(parti$) * 2
			ElseIf FindString(LCase(nom$), parti$)
				nb_point = nb_point + Len(parti$)
			EndIf
			
		Next
		
		resultat()\point = nb_point
	Next
	
	SortStructuredList(resultat(), #PB_Sort_Descending, OffsetOf(recherche\point), #PB_Sort_Long)
	
	ClearGadgetItems(3)
	
	ForEach resultat()
		If resultat()\point > 0
			AddGadgetItem(3, -1, resultat()\nom)
		EndIf
		
		; 		Debug resultat()\nom + " : " +  Str(resultat()\point)
	Next
	
EndProcedure

;}

;{ fenetre

If OpenWindow(0, 0, 0, 800, 800, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	EditorGadget(0, 5, 5, 790, 500)
	
	StringGadget(1, 5, 510, 700, 20, "")
	ButtonGadget(2, 710, 510, 80, 20, "GO !")
	
	ListViewGadget(3, 5, 535, 790, 800 - 540)
	
EndIf

AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)

;}


;{ boucle principale

Repeat
	event = WaitWindowEvent()
	
	;{ evenement bouton ou [return]
	If (event = #PB_Event_Gadget And EventGadget() = 2) Or (event = #PB_Event_Menu And EventMenu() = 0)
		nb = CountGadgetItems(0)
		
		ClearList(ligne())
		
		For a = 0 To nb - 1
			AddElement(ligne())
			
			ligne() = GetGadgetItemText(0, a)
		Next
		
		Recherche(GetGadgetText(1))
	EndIf
	;}
	
Until event = #PB_Event_CloseWindow

;}

End
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Mon p'tit dernier : Template Manager

Message par Chris »

En fait, on pourrait faire un index de tout ce qui est un peu particulier.

Procédures
Macros
Structures
Tableaux
Listes chainées
etc...

Bref, tout ce qu'on peut nommer soit même, à l'exception des variables.
On sauvegarde tout ça dans un fichier, ce qui évite de refaire une recherche à chaque fois qu'on ouvre le bazar.

Je vais regarder ton code :wink:
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Mon p'tit dernier : Template Manager

Message par graph100 »

il y a le problème de l'édition des fichiers ! A mon avis il faudrait sauver la date de modification avec l'index de chaque fichier
et vérifier juste la date lors du chargement du template manager, et refaire l'index du fichier qui a changé :D

C'est faisable je pense, mais faut être bien organisé
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Répondre