JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Mise à jour des Subs Jeu 29 Juil 2021 - 21:16 | |
| Au fil des ans et des programmes, j'ai amassé un certain nombre de SUBs, écrites par moi ou récoltées ici, éventuellement, que j'ai regroupées dans un seul fichier, SUB_Bib.bas. Elles sont classées par catégories, et c'est bien pratique à utiliser, ne pas avoir à réinventer l'eau chaude sans arrêt (avec un petit programme de prélèvement d'après le nom, mais ça c'est autre chose). Le problème c'est qu'il commence à y en avoir pas mal (plus de 700, et taille du fichier plus de 1M !). Il m'arrive assez souvent d'avoir à mettre à jour une sub donnée, ce n'est pas facile à l'éditeur, il faut vraiment aller à la pêche. J'ai fait un petit exécutable de mise à jour automatique, avec un raccourci sur le bureau, la sub à jour est préalablement copiée manuellement dans le presse-papier, et le programme la recopie à son emplacement dans le fichier. Il faut adapter le chemin du fichier des SUBs (chez moi c'est dans C:\PANORAMIC\, avec les sources .bas): - Code:
-
' SUB_Maj.bas ' remplacer une sub de la bibliothèque par celle qui se trouve dans le clipboard LABEL Lclip,Maj,Quit,Voir DIM fs$,sb$,i%,i1%,i2%,k%,sx%,a$ fs$ = "C:\PANORAMIC\SUB_Bib.bas"
BORDER_SMALL 0 FONT_BOLD 0: COLOR 0,180,255,255: WIDTH 0,280: HEIGHT 0,170 CAPTION 0,fs$ MEMO 8: WIDTH 8,1000: HIDE 8 MEMO 9: WIDTH 9,1000: HIDE 9 DLIST 40: DLIST 41
ALPHA 10: CAPTION 10,"SUB à remplacer (clipboard):" EDIT 11: TOP 11,TOP(10)+15: WIDTH 11,250 ALPHA 14: TOP 14,TOP(11)+22: CAPTION 14,"SUB trouvée lignes:" EDIT 15: TOP 15,TOP(14)+15: WIDTH 15,WIDTH(11) BUTTON 16: TOP 16,TOP(15)+25: LEFT 16,0: WIDTH 16,80: HEIGHT 16,45 CAPTION 16,"Voir Sub_Bib": ON_CLICK 16,Voir BUTTON 20: TOP 20,TOP(15)+25: LEFT 20,90: CAPTION 20,"Mise à jour" ON_CLICK 20,Maj BUTTON 21: TOP 21,TOP(20): LEFT 21,LEFT(20)+90: CAPTION 21,"Quitter" ON_CLICK 21,Quit ALPHA 22: TOP 22,TOP(21)+30: LEFT 22,LEFT(20): COLOR 22,255,255,0 FORM 50: TOP 50,0: LEFT 50,0: WIDTH 50,800: HEIGHT 50,SCREEN_Y-50: HIDE 50 LIST 51: PARENT 51,50: FULL_SPACE 51: FONT_NAME 51,"Bitstream Vera Sans Mono" FONT_SIZE 51,10 Lclip: CLIPBOARD_PASTE 8: ' nouvelle sub à jour sb$ = ITEM_READ$(8,1): i% = INSTR(sb$,"SUB "): k% = INSTR(sb$,"(") IF i%<1 OR k%<1 ' copier la sub dans le clipboard, puis cliquer 'OK' a$ = " Pas de sub dans le clipboard !" a$=a$+CHR$(10)+CHR$(10)+"Voulez-vous copier une sub, puis continuer (Oui/Non) ?" i% = MESSAGE_CONFIRMATION_YES_NO(a$) IF i% = 1 THEN CLEAR 8: GOTO Lclip GOTO Quit ELSE sb$ = LEFT$(sb$,k%): TEXT 11,sb$: ' nom de la sub FILE_LOAD 9,fs$: ' fichier des subs FOR i% = 1 TO COUNT(9) IF UPPER$(LEFT$(ITEM_READ$(9,i%),LEN(sb$))) = UPPER$(sb$) THEN EXIT_FOR NEXT i% IF i% >= COUNT(9) THEN MESSAGE "SUB "+sb$+" non trouvée !": TERMINATE i1% = i% FOR i2% = i1% TO COUNT(9) IF UPPER$(ITEM_READ$(9,i2%)) = "END_SUB" THEN EXIT_FOR NEXT i2% TEXT 15, str$(i1%)+" à "+str$(i2%) END_IF END ' ============================================================================== Maj: IF sb$ = "" THEN RETURN COLOR 22,255,0,0: PAUSE 50 CLEAR 40: CLEAR 41 FOR i% = 1 TO i1%-1: ITEM_ADD 40,ITEM_READ$(9,i%): NEXT i%: ' partie avant IF i2%<COUNT(9) FOR i% = i2%+1 TO COUNT(9): ITEM_ADD 41,ITEM_READ$(9,i%): NEXT i%: ' partie après END_IF CLEAR 9 FOR i% = 1 TO COUNT(40): ITEM_ADD 9,ITEM_READ$(40,i%): NEXT i% FOR i% = 1 TO COUNT(8): ITEM_ADD 9,ITEM_READ$(8,i%): NEXT i% IF COUNT(41) > 0 FOR i% = 1 TO COUNT(41): ITEM_ADD 9,ITEM_READ$(41,i%): NEXT i% END_IF FILE_SAVE 9,fs$ COLOR 22,255,255,0 CAPTION 22," Mise à jour effectuée ! " RETURN ' ============================================================================== Quit: TERMINATE ' ============================================================================== Voir: EXECUTE_WAIT "Notepad.exe|" + fs$ RETURN ' ============================================================================== | |
|