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 |
|
|
| Mon interface Panoramic | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Mon interface Panoramic Ven 10 Oct 2014 - 16:49 | |
| Pour me faciliter la vie, voici comment est organisée mon interface de programmation en Panoramic. Si ça peut donner des idées à certains (pour faire mieux, de préférence). D’abord les raccourcis sur le bureau: Chacun des raccourcis renvoie à un exécutable, écrit évidemment en Panoramic: 1) L’interface principale, qui propose plusieurs options 2) L’appel de Panoramic Editor avec le dernier source enregistré (le programme en cours de codage) 3) L’appel du compilateur Panoramic (... en attente d’utilisation) 4) La surveillance du Forum (et/ou connexion) 1) L’interface principale:Fenêtre supérieure: affichage de la liste des derniers sources enregistrés, en ordre chronologique inverse (on clique sur un élément pour lancer l’éditeur avec ce source). Puis un choix de fonctions, chacune appelant un exécutable particulier Bouton ÉditeurAffichage de la fenêtre suivante: - affichage de la liste des derniers sources (tri chronologique inverse, ou tri alphabétique, au choix), avec appel de l’Éditeur au clic. - Bouton de recherche, par exemple recherche d’une séquence particulière dans tous les sources. - Et boutons appelant des fonctions diverses (libellé explicite). Le bouton Aide: Affichage de la liste des mots-clés et du contenu à droite Pour chaque mot-clé, il est possible d’ajouter des commentaires personnels qui seront archivés et réaffichés à chaque appel de ce mot-clé: Bouton Sub’s de l’interface principale: - affichage du contenu de la bibliothèque des subs: liste de toutes les subs, par catégorie, dans la fenêtre supérieure défilante, et au clic sur une sub affichage de la sub elle-même dans la fenêtre inférieure, avec copie simultanée dans le clipboard, pour permettre une intégration facile dans le programme en cours de codage (coller). Le libellé des autres boutons de l’interface principale est suffisamment explicite. 2) Lancement de l’Éditeur avec le dernier source en date (sans commentaire) 3) Lancement du compilateur (en attente) 4) Surveillance du forumLancement d’un module qui télécharge automatiquement la page d’accueil du forum Panoramic et la compare à un état précédent, en affichant les changements. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 17:12 | |
| Bravo JL35, C'est un gros travail que tu nous présentes. J'aime bien le commentaires personnels que tu t'ais concoctés pour les mots-clés dans l'aide Panoramic. C'est l'idée que j'ai soumise sur le poste PLM N14. C'est peut-être la raison de ta publication. On voit que chez toi, c'est carré. Je devrais en prendre de la graine. Encore bravo ! A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 17:24 | |
| C’est beau tout ça, même très beau. Mais, comment puis-je (moi qui ne comprends jamais tout d’un seul coup !) me faciliter aussi la vie comme toi et profiter d’une aussi belle interface de programmation ?
En attendant, je retourne relire ton message.
Hé, merci et bravo JL trente cinq! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 18:17 | |
| @Jean-Claude Non, il n'y a pas de rapport de cause à effet, c'est simplement une idée qui m'est venue comme ça, pour partager. Et ce n'est pas un gros travail, ça s'est fait au fil du temps (des années ?).
@papydall Il est bien évident que si ça intéressait certains ici je fournirais tous les programmes correspondants avec plaisir (mais ça fait un peu de monde... en programmes). | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 18:24 | |
| - JL35 a écrit:
- Il est bien évident que si ça intéressait du monde je fournirais tous les programmes correspondants avec plaisir.
Alors prépare-toi à les fournir : les demandes ne vont pas tarder à arriver ! Edit - Citation :
- (mais ça fait un peu de monde... en programmes).
Il y a encore de la place sur mon disque dur à moins que .... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 20:11 | |
| Question disque dur, je ne suis pas inquiet pour mon PC. Je serais, tout de même curieux de voir de plus près ce travail de plusieurs années. M'en servir, je ne sais pas encore, mais nul doute que sur la quantité il y a forcément de bonnes choses à prendre. Et puis, je sais que tu n'es pas le premier venu en programmation, donc il a matière à apprendre. c'est à toi de voir. Bon, c'est vrai que les réactions, actuellement sur le forum, c'est un peu mou, mais ce serait l'occasion de réveiller la communauté. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 20:49 | |
| Puisque c'est comme ça, préparez-vous à souffrir ! mais il faut d'abord que je rassemble mes billes, c'est un peu dispersé... Je donnerai évidemment les sources, à charge pour vous de faire les exécutables. Il y a des fichiers annexes (mots-clés, etc.) il faut que je regarde comment ça se goupille. Je donnerai tout ici, pas la peine d'ouvrir un autre post. En y regardant de plus près: Chacun des raccourcis bureau ci-dessus correspond à un programme, respectivement: - Pano.exe: interface générale - Panoder.exe: appel du dernier source dans l'éditeur - Compile.exe: lancement du compilateur panoramic - Forum.exe: surveillance du forum 1) Pano.exe (Pano.bas) Fait appel à: - LanceEdi.exe - Aide.exe - DocPano.htm - Recsub.exe - Acrobat_KGF.exe - TrucAstu.exe - Clipb.exe 2) Panoder.bas tout petit, 20 lignes de code source 3) Compile.exe: appel direct du compilateur, pas de source 4) Forum.exe (Forum.bas, déjà publié ici https://panoramic.1fr1.net/t3697-surveillance-du-forum?highlight=surveillance+du+forum ) Donc finalement seul Pano.exe a un intérêt, mais vu le nombre de programmes annexes appelés, je me demande si ça vaut le coup d'encombrer le forum avec tout ça ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 21:18 | |
| Le plus facile, Panoder.bas: lancement de l'Éditeur avec le dernier source qui a été enregistré, donc en principe celui qui est en cours d'écriture/Mise au point. Comme pour tout le reste, je m'efforce de mettre les chemins en tête du module, et ils sont forcément à adapter pour chacun: - Code:
-
' Lancement de l'éditeur Panoramic avec le dernier source en date: Panoder.bas HIDE 0: MEMO 1 DIM rep$: rep$ = "C:\PANORAMIC": ' Répertoire des sources, à ajuster DIM exe$: exe$ = "C:\PROGRA~2\PANORA~1\PANORA~1.EXE": ' chemin de l'éditeur, idem Dir(rep$+"*.bas","/O:-D /B"): CLIPBOARD_PASTE 1 EXECUTE exe$+" "+ITEM_READ$(1,1): ' dernier source enregistré TERMINATE
SUB Dir(rep$, arg$) DIM_LOCAL prg_a$, s_cr$, b_at$ prg_a$ = "CMD.exe /c DIR " + rep$ + " " + arg$ + " | clip" s_cr$ = "C:\Vbscript.vbs": b_at$ = "C:\Bat.bat" FILE_OPEN_WRITE 9, b_at$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' Fichier .bat prg_a$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run " prg_a$ = prg_a$ + CHR$(34) + b_at$ + CHR$(34) + ",0,True" FILE_OPEN_WRITE 9, s_cr$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' script vbs EXECUTE_WAIT "WSCRIPT.exe " + s_cr$: ' Exécution du script FILE_DELETE b_at$: FILE_DELETE s_cr$ END_SUB | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 10 Oct 2014 - 21:28 | |
| Et le module principal: Pano.bas qui lance tous les autres modules. Là il faut regarder de près pour mettre à jour les chemins, en tête d'abord, puis dans le sous-programme Exec, qui contient les chemins des modules appelés (Select... End_Select): - Code:
-
' Pano.bas LABEL Exec, Exec1, Der, Dtver, Vers DIM i%, lb%, lbc%, dc%, ex$, ne$, ol$, f$, h$, v$, k%, j$, m$, a$, d$, c1, c2 DIM rep$, doc$, ms$(12), pb%, db%, b%, alv%, lst%, mm% DATA "January","February","March","April","May","June","July","August" DATA "September","October","November","December" FOR i% = 1 TO 12: READ ms$(i%): NEXT i% ex$ = "C:\Progra~2\Panora~1\PANORAMIC_EDITOR.exe" ol$ = "C:\Progra~2\Panora~1\PANORAMIC_EDITOR.old" ne$ = "C:\Progra~2\Panora~1\PANORAMIC_EDITOR.new" h$="http://panoramic-language.pagesperso-orange.fr/French/HELP_MAIN_FR_PART_01_REFERENCE.htm" rep$ = "C:\PANORAMIC\" doc$ = rep$ + "DocPano.htm" DLL_ON "C:\PANORAMIC\KLAUS\DLLs\KGF.dll": ' pour la sub ReadFile lb% = 180 lbc% = 120 dc% = lb%-lbc% WIDTH 0,lb%+26: FONT_BOLD 0: BORDER_SMALL 0: COLOR 0,255,0,0 pb% = 1 b%=pb%: BUTTON b%: TOP b%,5: LEFT b%,5: WIDTH b%,lb%: CAPTION b%,"Dernier source" lst% = 19 LIST lst%: TOP lst%,TOP(1)+25: LEFT lst%,10: WIDTH lst%,lb%-10: HEIGHT lst%,140 COLOR lst%,255,255,128: FONT_NAME lst%,"Consolas": FONT_COLOR lst%,0,0,164 ON_CLICK lst%,Der: ' sources les plus récents
b%=b%+1: BUTTON b%: TOP b%,HEIGHT(lst%)+35: LEFT b%,5: WIDTH b%,lbc%: CAPTION b%,"Éditeur" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5+dc%: WIDTH b%,lbc%: CAPTION b%,"Nouveau" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5: WIDTH b%,lbc%: CAPTION b%,"Aide (mots-clés)" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5+dc%: WIDTH b%,lbc%: CAPTION b%,"Manuel complet" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5: WIDTH b%,lbc%: CAPTION b%,"Sub's" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5+dc%: WIDTH b%,lbc%: CAPTION b%,"doc KGF.dll" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5: WIDTH b%,lbc%: CAPTION b%,"Trucs/Astuces" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5+dc%: WIDTH b%,lbc%: CAPTION b%,"Clipboard" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5: WIDTH b%,lbc%: CAPTION b%,"Forum" b%=b%+1: BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5+dc%: WIDTH b%,lbc%: CAPTION b%,"Compilateur" db% = b%
b%=b%+1 BUTTON b%: TOP b%,TOP(b%-1)+30: LEFT b%,5: WIDTH b%,90: HEIGHT b%,16 CAPTION b%,"Dates versions": ON_CLICK b%,Dtver b%=b%+1: alv% = b% ALPHA b%: TOP b%,TOP(db%)+50: LEFT b%,20: COLOR b%,255,255,128: HIDE b% c1 = 20: c2 = c1+1 BUTTON c1: TOP c1,TOP(b%)+20: LEFT c1,5: WIDTH c1,lb%: HIDE c1 BUTTON c2: TOP c2,TOP(c1)+30: LEFT c2,5: WIDTH c2,lb%: HIDE c2
FOR i% = pb% TO db%: ON_CLICK i%,Exec: NEXT i% FOR i% = c1 TO c2: ON_CLICK i%,Exec: NEXT i% HEIGHT 0,TOP(c2)+65
mm% = 30: MEMO mm%: HIDE mm%: WIDTH mm%,400 Dir(rep$+"*.bas","/O:-D"): CLIPBOARD_PASTE mm% CLIPBOARD_STRING_COPY "": ' nettoyage du clipboard FOR i% = 6 TO 80 m$ = MID$(ITEM_READ$(mm%,i%),37,50): ' module IF i% = 6 THEN CAPTION 1,"Dernier: "+m$ d$ = LEFT$(ITEM_READ$(mm%,i%),5): ' date IF LEN(m$)<19 THEN m$ = m$+STRING$(19-LEN(m$)," ") ITEM_ADD lst%,m$+d$ NEXT i% END ' ============================================================================== Exec: i% = NUMBER_CLICK: a$ = ITEM_READ$(19,1): a$ = RTRIM$(LEFT$(a$,LEN(a$)-5)) Exec1: SELECT i% CASE 1: EXECUTE ex$ + " " + rep$ + a$: ' dernier CASE 2: EXECUTE "C:\PANORAMIC\LanceEdi.exe": ' Editeur CASE 3: EXECUTE ex$ CASE 4: EXECUTE "C:\PANORAMIC\Aide.exe": ' aide CASE 5: IF FILE_EXISTS(doc$) = 0 PageWeb(h$,doc$): ' téléchargement du manuel de référence END_IF EXECUTE doc$ CASE 6: EXECUTE "C:\PANORAMIC\Recsub.exe": ' sub's CASE 7: EXECUTE "C:\PANORAMIC\Acrobat_KGF.exe" CASE 8: EXECUTE "C:\PANORAMIC\TrucAstu.exe": ' trucs/astuces CASE 9: EXECUTE "C:\PANORAMIC\Clipb.exe": ' clipboard CASE 10: EXECUTE "http://www.panoramic.1fr1.net/": ' forum CASE 11: EXECUTE "C:\PANORAMIC\COMPILATEUR\PANORAMIC_COMPILER_EDITOR.exe": ' Compilateur CASE 20: EXECUTE_WAIT "CMD.exe /C COPY "+ne$+" "+ex$ CASE 21: EXECUTE_WAIT "CMD.exe /C COPY "+ol$+" "+ex$ END_SELECT IF i% < c1 THEN WAIT 1500: TERMINATE IF i% = 20 OR i%=21 THEN WAIT 1500: TERMINATE f$ = ex$: GOSUB Vers: CAPTION 10," Version: "+v$+" " RETURN ' ============================================================================== Der: a$ = ITEM_INDEX$(19): a$ = RTRIM$(LEFT$(a$,LEN(a$)-5)) i% = 1: GOTO Exec1 ' ============================================================================== Dtver: SHOW alv%: CAPTION alv%," mom... ": DISPLAY f$ = ex$: GOSUB Vers: CAPTION alv%," Version actuelle: "+v$+" ": DISPLAY SHOW c1: SHOW c2 f$ = ne$: GOSUB Vers: CAPTION c1,"NEW: V "+v$+" -"+d$+"-": DISPLAY f$ = ol$: GOSUB Vers: CAPTION c2,"OLD: V "+v$+" -"+d$+"-": DISPLAY RETURN ' ============================================================================== Vers: ' version Panoramic Editor d$ = "" IF FILE_EXISTS(f$) = 0 THEN v$= "non trouvée !": RETURN ReadFile(f$) k% = INSTR(buf$,"PANORAMIC Release ") v$ = MID$(buf$, k%+18, 8) a$ = MID$(buf$, k%+28,30): k% = INSTR(a$, " ") m$ = LEFT$(a$,k%-1) FOR i% = 1 TO 12 IF LEFT$(a$,k%-1) = ms$(i%) THEN EXIT_FOR NEXT i% m$ = RIGHT$("0"+STR$(i%),2) a$ = MID$(a$,k%+1,100) k%=INSTR(a$,", "): j$=RIGHT$("0"+LEFT$(a$,k%-1),2): a$=MID$(a$,k%+2,4) d$ = j$+"/"+m$+"/"+a$ RETURN ' ============================================================================== SUB ReadFile(f$) ' Lecture d'un fichier entier dans une chaîne buf$ (appel de KGF.dll) IF VARIABLE("buf$") = 0 THEN DIM buf$ DIM_LOCAL rs% FILEBIN_OPEN_READ 9, f$: buf$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9 rs% = DLL_CALL2("ReadBinaryFileToString",ADR(f$),ADR(buf$)) END_SUB ' ============================================================================== SUB Dir(rep$, arg$) DIM_LOCAL prg_a$, s_cr$, b_at$ prg_a$ = "CMD.exe /c DIR " + rep$ + " " + arg$ + " | clip" s_cr$ = "C:\Vbscript.vbs": b_at$ = "C:\Bat.bat" FILE_OPEN_WRITE 9, b_at$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' Fichier .bat prg_a$ = "CreateObject(" + CHR$(34) + "Wscript.Shell" + CHR$(34) + ").Run " prg_a$ = prg_a$ + CHR$(34) + b_at$ + CHR$(34) + ",0,True" FILE_OPEN_WRITE 9, s_cr$: FILE_WRITELN 9, prg_a$: FILE_CLOSE 9: ' script vbs EXECUTE_WAIT "WSCRIPT.exe " + s_cr$: ' Exécution du script FILE_DELETE b_at$: FILE_DELETE s_cr$ END_SUB ' ============================================================================== SUB PageWeb(url$,frec$) ' capture d'une page web ou d'un fichier quelconque (image) donné(e) par son url DIM_LOCAL pwa$, fscr$, gui$: gui$ = CHR$(34) fscr$ = "C:\Temp\Scrdnl.vbs": ' script vbs (temporaire) DATA "Debscr" DATA "HTTPDownload "+gui$+URL$+gui$+", "+gui$+frec$+gui$ DATA "Sub HTTPDownload( URL, Path )" DATA "Dim i, objFile, objFSO, objHTTP, strFile, strMsg" DATA "Const ForReading = 1, ForWriting = 2, ForAppending = 8" DATA "Set objFSO = CreateObject( "+gui$+"Scripting.FileSystemObject"+gui$+" )" DATA "strFile = Path" DATA "Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )" DATA "Set objHTTP = CreateObject( "+gui$+"WinHttp.WinHttpRequest.5.1"+gui$+" )" DATA "objHTTP.Open "+gui$+"GET"+gui$+", URL, False" DATA "objHTTP.Send" DATA "For i = 1 To LenB( objHTTP.ResponseBody )" DATA " objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )" DATA "Next" DATA "objFile.Close( )" DATA "End Sub" DATA "Finscr" RESTORE: READ pwa$: WHILE pwa$ <> "Debscr": READ pwa$: END_WHILE FILE_OPEN_WRITE 9, fscr$ READ pwa$: WHILE pwa$ <> "Finscr": FILE_WRITELN 9, pwa$: READ pwa$: END_WHILE FILE_CLOSE 9 EXECUTE_WAIT "WSCRIPT.exe " + fscr$: ' exécution du script FILE_DELETE fscr$: ' nettoyage END_SUB ' ============================================================================== On verra pour la suite si vous n'êtes pas encore découragés... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 11:14 | |
| Salut à tous,
Bon j'ai récupéré "surveille_forum.exe". il a fallu que je change les chemins pour "Temp" car sous W8 c'est "C:\Windows\TEMP\....". Et ensuite, il a fallu que je relise le sujet, car çà ne marchait pas. J'ai fait les corrections et c'est OK. J'ai aussi modifier width et height de form 0 pour W8.
J'ai ajouté une petite amélioration pour éviter d'avoir un Panoramic.exe qui tourne même après la fermeture. Très simple: - ajouter un label fin - ajouter une ligne ON_CLOSE 0,fin - puis faire le sous-programme fin (avec terminate)
Il me reste à tester.
A+ | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 11:29 | |
| c'est très intéressant tout ça mais pas facile a mettre en œuvre d'après ce que je vois.
Je vais tenter de regarder ça... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 11:36 | |
| @pour_les W8 Voilà le code "surveille_forum.exe". pour Windows 8. - Code:
-
REM ============================================================================ REM Surveillance du forum Panoramic REM AUTEUR : JL35 rem Reformulé par : papydall REM ============================================================================ dim csp$(20),crm$(20) Init() Make_Script() GUI() end rem ============================================================================ SUB Init() LABEL clic , fin DIM url$,frec$,rect$,fref$,recf$,f$,a$,b$,i%,k%,m%,cat$,suj$,mes$,der$,aut$,gui$ DIM s$,ba$,cr$,k1%,ns%
DIM Titref$(20),Datref$(20),Titact$(20),Datact$(20),nref%,nact%,tr%,nl%,wf%,hf%,n% DIM lf%,tp%,srv%,df%,fscr$
url$ = "http://panoramic.1fr1.net/" frec$ = "C:\Windows\TEMP\Forum.htm" rect$ = "C:\Windows\TEMP\Forum.txt" fref$ = "C:\Windows\TEMP\Forum_ref.htm" recf$ = "C:\Windows\TEMP\Forum_ref.txt" ' C:\Windows\System32 fscr$ = "C:\Windows\Temp\Scrdnl.vbs": ' script vbs gui$ = CHR$(34) END_SUB REM ============================================================================ ' Script vbs de lecture de la page web url$ dans un fichier html (frec$) DATA "Debscr" DATA "HTTPDownload "+gui$+url$+gui$+", "+gui$+frec$+gui$ DATA "Sub HTTPDownload( URL, Path )" DATA "Dim i, objFile, objFSO, objHTTP, strFile, strMsg" DATA "Const ForReading = 1, ForWriting = 2, ForAppending = 8" DATA "Set objFSO = CreateObject( "+gui$+"Scripting.FileSystemObject"+gui$+" )" DATA "strFile = Path" DATA "Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )" DATA "Set objHTTP = CreateObject( "+gui$+"WinHttp.WinHttpRequest.5.1"+gui$+" )" DATA "objHTTP.Open "+gui$+"GET"+gui$+", URL, False" DATA "objHTTP.Send" DATA "For i = 1 To LenB( objHTTP.ResponseBody )" DATA " objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )" DATA "Next" DATA "objFile.Close( )" DATA "End Sub" DATA "Finscr" REM ============================================================================ SUB Make_Script() RESTORE: READ a$: WHILE a$ <> "Debscr": READ a$: END_WHILE FILE_OPEN_WRITE 9, fscr$ READ a$: WHILE a$ <> "Finscr": FILE_WRITELN 9, a$: READ a$: END_WHILE FILE_CLOSE 9 END_SUB REM ============================================================================ SUB GUI() WIDTH 0,650: HEIGHT 0,440: BORDER_SMALL 0: COLOR 0,190,255,255 font_name 0,"Arial": font_bold 0: font_color 0,0,0,255 CAPTION 0," SURVEILLANCE FORUM" : on_close 0,fin
MEMO 5: HIDE 5: WIDTH 5,400: HEIGHT 5,300: ' memo de manoeuvre ALPHA 11: TOP 11,5: LEFT 11,100: CAPTION 11," PRÉCÉDENT ": COLOR 11,255,255,0 ALPHA 12: TOP 12,5: LEFT 12,400: CAPTION 12," ACTUEL ": COLOR 12,255,255,0 BUTTON 15: TOP 15,0: LEFT 15,520: WIDTH 15,100: CAPTION 15,"Se connecter" ON_CLICK 15,clic : ' Connect ALPHA 100: TOP 100,HEIGHT(0)-70
CAPTION 100,"Lancer la surveillance périodique, délai: minutes" SPIN 101: TOP 101,TOP(100)-3: LEFT 101,225: WIDTH 101,40 MIN 101,1: MAX 101,100: POSITION 101,10 BUTTON 102: TOP 102,TOP(101): LEFT 102,LEFT(101)+90: WIDTH 102,140 CAPTION 102,"Lancer ou relancer" ON_CLICK 102,clic : ' Lancer BUTTON 104: TOP 104,TOP(102): LEFT 104,LEFT(102)+220: CAPTION 104,"Quitter" ON_CLICK 104,clic : ' Quitter
Surveil() srv% = 0 END_SUB REM ============================================================================ clic: select number_click case 15 : Connect() case 102 : Lancer() case 104 : Quitter() end_select RETURN REM ============================================================================ SUB Surveil() IF FILE_EXISTS(recf$) = 0 EXECUTE_WAIT "WSCRIPT.exe " + fscr$: ' capture de la page, -> frec$ (htm) IF FILE_EXISTS(fref$) = 1 THEN FILE_DELETE fref$ FILE_COPY frec$,fref$: ' fichier référence Html2Txt(fref$,recf$): ' conversion htm -> texte pur FILE_DELETE fref$ f$ = recf$: Transfert() m% = 2: nref% = nact%: IF srv% = 0 THEN Crelist() FOR i% = 60 TO 60+nact%: CLEAR i%: NEXT i% FILE_OPEN_WRITE 1,recf$ ITEM_ADD 20, " ********** "+DATE$+" à " +LEFT$(TIME$,5)+" **********" FILE_WRITELN 1, " ********** "+DATE$+" à " +LEFT$(TIME$,5)+" **********" FOR i% = 1 TO nact% ITEM_ADD 20+i%,Titact$(i%): FILE_WRITELN 1,Titact$(i%) ITEM_ADD 20+i%,Datact$(i%): FILE_WRITELN 1,Datact$(i%) NEXT i% FILE_CLOSE 1 MESSAGE "Référence créée !" ELSE FILE_OPEN_READ 1,recf$ FILE_READLN 1,b$: ' date/heure nref% = 0 WHILE FILE_EOF(1) = 0 FILE_READLN 1, a$ IF LEFT$(a$,1) = CHR$(187) nref% = nref%+1: Titref$(nref%) = a$ ELSE Datref$(nref%) = a$ END_IF END_WHILE FILE_CLOSE 1 m% = 1: IF srv% = 0 THEN Crelist() FOR i% = 20 TO 20+nref%: CLEAR i%: NEXT i% ITEM_ADD 20,b$: ' date/heure de la référence FOR i% = 1 TO nref% ITEM_ADD 20+i%,Titref$(i%): ITEM_ADD 20+i%,Datref$(i%) NEXT i% ' téléchargement de l'état actuel: EXECUTE_WAIT "WSCRIPT.exe " + fscr$: ' capture de la page actuelle -> frec$ Html2Txt(frec$,rect$): ' conversion htm -> texte pur FILE_DELETE frec$ f$ = rect$: Transfert() FILE_DELETE rect$ m% = 2: IF srv% = 0 THEN Crelist() FOR i% = 60 TO 60+nact%: CLEAR i%: NEXT i% FILE_OPEN_WRITE 1,recf$: ' devient la nouvelle référence ITEM_ADD 60, " ********** "+DATE$+" à " +LEFT$(TIME$,5)+" **********" FILE_WRITELN 1, " ********** "+DATE$+" à " +LEFT$(TIME$,5)+" **********" FOR i% = 1 TO nact% ITEM_ADD 60+i%,Titact$(i%): FILE_WRITELN 1,Titact$(i%) ITEM_ADD 60+i%,Datact$(i%): FILE_WRITELN 1,Datact$(i%) NEXT i% FILE_CLOSE 1 ' comparaison de l'état actuel avec le précédent Compare() END_IF END_SUB REM ============================================================================ ' nettoyage du fichier texte, transfert dans les tables SUB Transfert() FILE_OPEN_READ 1,f$ nact% = 0 WHILE FILE_EOF(1) = 0 FILE_READLN 1, a$: a$ = TRIM$(a$) IF a$ <> "" IF INSTR(a$,"Derniers sujets") > 0 FILE_READLN 1, a$: a$ = TRIM$(a$) WHILE INSTR(a$,"Navigation") = 0 k% = INSTR(a$,CHR$(187)) IF k% > 0: ' caractère >> a$ = MID$(a$,k%,LEN(a$)) nact% = nact%+1 Titact$(nact%) = a$ FILE_READLN 1,a$ Datact$(nact%) = a$ END_IF FILE_READLN 1,a$: WHILE TRIM$(a$)="": FILE_READLN 1,a$: END_WHILE END_WHILE END_IF END_IF END_WHILE FILE_CLOSE 1 END_SUB REM =========================================================================== SUB Crelist() wf% = 310: hf% = 35 IF m% = 1 nl% = 20: lf% = 0: n% = nref% ELSE nl% = 60: lf% = wf%: n% = nact% END_IF LIST nl%: TOP nl%, 20: LEFT nl%,lf%: WIDTH nl%,wf%: HEIGHT nl%,20 COLOR nl%,180,255,180: FONT_SIZE nl%,10: FONT_COLOR nl%,0,0,0 tp% = 40 FOR i% = 1 TO n% k% = nl%+i% LIST k%: TOP k%,tp%: LEFT k%,lf%: WIDTH k%,wf%: HEIGHT k%,hf% tp% = tp% + hf% NEXT i% i% = tp%+40: IF i%>HEIGHT(0) THEN HEIGHT 0,i%: ' ajuste fenêtre principale END_SUB REM ============================================================================ SUB Compare() df% = 0 FOR i% = 1 TO nact% a$ = Titact$(i%): b$ = Datact$(i%): tr% = 0 FOR k% = 1 TO nref% IF a$ = Titref$(k%) tr% = 1 IF b$ <> Datref$(k%): ' sujet existant, nouveau message COLOR 60+i%,255,255,0 df% = 1 END_IF END_IF NEXT k% IF tr% = 0: ' nouveau sujet COLOR 60+i%,255,255,0: ' en jaune df% = 1 END_IF NEXT i% END_SUB REM ============================================================================ SUB Connect() EXECUTE url$ pause 2000 TERMINATE END_SUB REM ============================================================================ SUB Lancer() ' Pendant la veille, le programme est minimisé. Pour le stopper, cliquer sur ' le caption en bas à gauche, puis 'Restaurer', puis 'Quitter' MINIMIZE 0 srv% = 1 WHILE srv% = 1 i% = 60000*POSITION(101): ' délai, en ms ' k% = i%/30000 ' FOR i% = 1 TO k% ' pause 30000 : ' maximum autorisé ' NEXT i% k% = i%/2000 FOR i% = 1 TO k% pause 2000 : ' 2s de pause NEXT i% CAPTION 0,"SURVEILLANCE : ACTIVE" Surveil() IF df% = 1 THEN NORMAL 0: srv% = 0: EXIT_WHILE CAPTION 0,"SURVEILLANCE : VEILLE" END_WHILE END_SUB REM ============================================================================ SUB Quitter() TERMINATE END_SUB fin: TERMINATE return REM ============================================================================ SUB Html2Txt(f$,ft$) ' conversion approximative fichier html f$ en fichier texte brut dans ft$ cr$ = CHR$(13)+CHR$(10): ' saut de ligne ' DATA "Carspe": ' caractères spéciaux, à remplacer (à compléter éventuellement) ' DATA " ","<",">","&","","»","F": ' caractère à remplacer ' DATA " ","<",">","&",CHR$(34),CHR$(13)+CHR$(10)+CHR$(187): ' caractère(s) de remplacement DATA "Carspe": ' caractères spéciaux, à remplacer (à compléter éventuellement) DATA " ","<",">","&",""","»","F": ' caractère à remplacer DATA " ","<",">","&",CHR$(34),CHR$(13)+CHR$(10)+CHR$(187): ' caractère(s) de remplacement
ns% = 0: RESTORE: READ a$: WHILE a$<>"Carspe": READ a$: END_WHILE: READ a$ WHILE a$<>"F" ns%=ns%+1 : csp$(ns%) = a$ READ a$ END_WHILE FOR k% = 1 TO ns%: READ a$: crm$(k%) = a$: NEXT k% ' lecture intégrale du fichier htm dans la variable a$ FILEBIN_OPEN_READ 9,f$: k% = FILEBIN_SIZE(9): FILEBIN_CLOSE 9 FILE_OPEN_READ 9,f$: FILE_READBUF 9,a$,k%: FILE_CLOSE 9 k% = INSTR(a$,"</head>"): IF k%=0 THEN message "Pas de balise </head>": EXIT_SUB a$ = MID$(a$,k%+7,LEN(a$)) ' suppression des balises <script...>...</script> et <style...>...</style> et de ' leur contenu k% = INSTR(a$,"<script") WHILE k%>0 k1% =INSTR(a$,"</script>"): a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+9,LEN(a$)) k% = INSTR(a$,"<script") END_WHILE k% = INSTR(a$,"<style") WHILE k%>0 k1% =INSTR(a$,"</style>"): a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+8,LEN(a$)) k% = INSTR(a$,"<style") END_WHILE ' remplacement des balises </tr> par des sauts de ligne k% = INSTR(a$,"</tr>") WHILE k%>0: a$=LEFT$(a$,k%-1)+cr$+MID$(a$,k%+5,LEN(a$)): k%=INSTR(a$,"</tr>"): END_WHILE ' suppression de toutes les balises (on garde les sauts de lignes, pour lisibilité) k% = INSTR(a$,"<") WHILE k% > 0 k1% = INSTR_POS(a$,">",k%): ba$ = MID$(a$,k%,k1%-k%+1): ' balise trouvée IF LEFT$(ba$,3) = "<br": ' saut de ligne a$ = LEFT$(a$,k%-1)+CHR$(13)+CHR$(10)+MID$(a$,k1%+1,LEN(a$)) ELSE a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+1,LEN(a$)): ' suppression END_IF k% = INSTR(a$,"<") END_WHILE ' remplacement des caractères spéciaux FOR k% = 1 TO ns% s$ = csp$(k%): k1% = INSTR(a$,s$) WHILE k1%>0 a$ = LEFT$(a$,k1%-1)+crm$(k%)+MID$(a$,k1%+LEN(s$),LEN(a$)) k1% = INSTR(a$,s$) END_WHILE NEXT k% ' suppression des rc/al redondants k% = INSTR(a$,CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)) WHILE k%>0 a$ = LEFT$(a$,k%-1)+MID$(a$,k%+2,LEN(a$)) k% = INSTR(a$,CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)) END_WHILE FILE_OPEN_WRITE 9,ft$: FILE_WRITELN 9,a$: FILE_CLOSE 9 END_SUB ' ============================================================================== A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 11:41 | |
| @Minibug,
Je crois que tu es sous W7, si c'est le cas, tu charges le code sur le lien indiqué par JL35 et tu fais une recherche de """ pour en supprimer un. il y a aussi 3 lignes à remplacer (fourni par Papydall). C'est en page 3 du sujet.
A+ | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 11:57 | |
| merci Jean Claude, je vais regarder... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 12:16 | |
| Salut Jean-Claude, Je suis sous W7, mais je ne vois pas bien pourquoi le répertoire TEMP sous W8 devrait être sous Windows et non pas directement sous C:\ ? ce n'est pas toi qui choisis ? même si Windows s'en est créé un sous C:\Windows, tu peux très bien t'en créer un à toi, perso, sous C: non ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 12:47 | |
| @JL35, Oui je pourrais en créer un, mais puisqu'il existe déjà autant l'utiliser.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 13:17 | |
| C'est ton droit le plus strict ! je craignais simplement que ce ne soit une obligation quelconque ce W8 (parmi d'autres), par exemple pour l'utilisateur de ne pas pouvoir créer un répertoire sous la racine, mais ça me paraissait gros quand même.
@Minibug, si tu as des questions... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 13:40 | |
| - Jean Claude a écrit:
- J'ai ajouté une petite amélioration pour éviter d'avoir un Panoramic.exe qui tourne même après la fermeture.
Très simple: - ajouter un label fin - ajouter une ligne ON_CLOSE 0,fin - puis faire le sous-programme fin (avec terminate)
Il me reste à tester. J’avoue que je ne comprends pas : Il y a bien le bouton Quitter pour TERMINATE le programme, non ? Alors ce ON_CLOSE 0,fin | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 14:12 | |
| @Papydall, Je retire une partie de ce que j'ai affirmé avant: - Jean Claude a écrit:
- J'ai ajouté une petite amélioration pour éviter d'avoir un Panoramic.exe qui tourne même après la fermeture.
Cela se produit uniquement qu'après voir créer l'exécutable. MAIS: Oui, il y a ce bouton "Quitter", mais quand le programme est réduit (en bas à gauche de l'écran), parce qu'on a cliquer sur le bouton "Lancer ou relancer" on ne peut pas directement le fermer (pour la simple et bonne raison que ce bouton n'est plus visible). L'ajout de ON_CLOSE le permet. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 14:26 | |
| @JL35, Toujours concernant "surveille_forum.bas" J'ai eu un message d'erreur sur un objet non créé. - Code:
-
ITEM_ADD 20, " ********** "+DATE$+" à " +LEFT$(TIME$,5)+" **********"
et effectivement, je ne vois pas la création de l'objet dans la sub GUI. Cela dit le programme fonctionne quand même ???? A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 17:06 | |
| Création dynamique: regarde la sub Crelist() qui crée un List 20 (ou 60) ... (j'étais au resto, on ne peut pas être partout )Pour fermer quand il est en réduit, c'est simple: tu cliques dessus, 'Restaurer', et là 'Quitter', c'est simple. Comme ça on ne ferme pas sans avoir regardé. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 20:39 | |
| - JL35 a écrit:
- Pour fermer quand il est en réduit, c'est simple: tu cliques dessus, 'Restaurer', et là 'Quitter', c'est simple.
Comme ça on ne ferme pas sans avoir regardé. Oui, mais çà c'est pour les JCPVQMO ("JeCliquePlusViteQueMonOmbre") Admets, quand même, que c'est plus logique que le programme s'arrête si on clique sur la croix rouge. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 21:19 | |
| Dans ce cas précis, je trouve que ça se discute... même pour d'autres que les Lucky Luke du clic. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 21:24 | |
| BOF ! | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Mon interface Panoramic Sam 11 Oct 2014 - 21:50 | |
| merci JL35 c'est là ou l on mesure le chemin qu il reste a parcourir! | |
| | | Contenu sponsorisé
| Sujet: Re: Mon interface Panoramic | |
| |
| | | | Mon interface Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |