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: Re: Mon interface Panoramic Sam 11 Oct 2014 - 22:36 | |
| Mais non ce n'est pas difficile, un peu de logique, et, surtout, beaucoup de loisirs... | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Mon interface Panoramic Lun 13 Oct 2014 - 16:54 | |
| merci de tes encouragements JL35 toute fois tu as mis le doigt sur le problème... LE TEMPS LIBRE | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Lun 13 Oct 2014 - 22:06 | |
| Et ça, on ne peut pas le partager... Alors n'hésite pas à mettre à contribution ceux qui en ont, aucune question n'est superflue quand on commence Pour en revenir au sujet initial de ce post, le gros morceau est le programme qui correspond au bouton 'Aide'. Ce programme extrait les informations d'aide sur les mots-clés incluses dans Panoramic_Editor, en tentant de les présenter de façon indépendante, peut-être plus accessible ponctuellement. Il y a plusieurs petites particularités, avec quelques fichiers annexes construits au fil du temps qui sont là pour faciliter les choses. A priori je ne le mets pas ici, sauf demande expresse, mais dans ce cas il y aura des aménagements individuels à faire, rien de bien sorcier, mais bon, ça risque de ne pas marcher avec ma version standard à moi. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 14:27 | |
| Finalement, j'ai bien simplifié mon programme d'aide, et il est facilement améliorable au goût de chacun. A l'aide de l'utilitaire Reshacker, le programme (une Sub) extrait de Panoramic Editor: 1) Un fichier liste brute des mots-clés 2) Un fichier texte global contenant la documentation pour tous les mots-clés. Cette opération est faite au lancement initial, avec création du répertoire contenant et des deux fichiers ci-dessus, avec archivage de la date du Panoramic_Editor utilisé. A chaque lancement ultérieur, le programme compare la date du Panoramic_Editor actuel avec la date archivée, et reconstitue entièrement les deux fichiers en cas d'éditeur plus récent. Il faut donc disposer de ResHacker, et renseigner les trois chemins en tête du programme: - Panoramic_Editor.exe - Répertoire des sources Panoramic - ResHacker.exe (ici par exemple: http://www.pendriveapps.com/resource-hacker-exe-editor/ ... avec plein d'autres petits programmes, à voir). J'ai gardé la possibilité d'ajouter pour chaque mot-clé un commentaire personnel (précisions, astuces...): bouton 'Ajouter': création initiale ou ajouts dans un commentaire existant. Ces commentaires éventuels sont archivés dans un fichier particulier à chaque mot-clé, du nom du mot-clé et de suffixe .txu. Il suffira donc, après mise au point, de faire un exécutable de ce programme, pour pouvoir l'appeler depuis n'importe où. - Code:
-
' ********** Création et consultation des fichiers d'aide par mot-clé ********** LABEL Afm, afm1, Perso DIM Edp$,Rhk$,Pan$,ra$, fl$, fa$, fp$, i%, a$, b$,q$,fct$(10) ' ============================ CHEMINS À PRÉCISER ============================== Edp$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' Éditeur Rhk$ = "C:\UTIL\ResHacker.exe ": ' *** ResHacker: extraction des mots-clés <**** Pan$ = "C:\PANORAMIC": ' Répertoire des sources Panoramic <******************** ' ============================================================================== ra$ = Pan$+"Manuel": ' Répertoire de la documentation Panoramic (créé) <======= fl$ = ra$+"ListeMC.txt": ' liste brute des mots-clés (créé) fa$ = ra$+"Aide.txt": ' doc des mots-clés (créé) DATA "","","DÉFINITION","FONCTION","SYNTAXE","USAGE","CAS D'ERREUR" DATA "EXEMPLES","EN RAPPORT" FOR i% = 1 TO 9: READ fct$(i%): NEXT i% q$ = CHR$(34)
WIDTH 0,800: HEIGHT 0,SCREEN_Y-50: BORDER_SMALL 0 LIST 1: WIDTH 1,200: HEIGHT 1,HEIGHT(0)-35: FONT_NAME 1,"Consolas" color 1,200,255,200: ON_CLICK 1,Afm: font_size 1,10 MEMO 2: LEFT 2,WIDTH(1): WIDTH 2,WIDTH(0)-WIDTH(1)-16: HEIGHT 2,HEIGHT(1) color 2,255,255,200: FONT_NAME 2,"Consolas": FONT_SIZE 2,10 BAR_VERTICAL 2 MEMO 3: HIDE 3 BUTTON 4: TOP 4,HEIGHT(0)-60: LEFT 4,WIDTH(0)-120: CAPTION 4,"Ajouter" ON_CLICK 4,Perso IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE fa$
EXECUTE_WAIT "CMD.exe /C DIR "+q$+Edp$+q$+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: i% = INSTR(a$,"/") i% = VAL(MID$(a$,i%+4,4)+MID$(a$,i%+1,2)+MID$(a$,i%-2,2)): ' date Editeur actuel b$ = "0" IF FILE_EXISTS(fa$) = 1 FILE_OPEN_READ 1,fa$: FILE_READLN 1,b$: FILE_CLOSE 1 b$ = LEFT$(b$,8): ' date de la deernière mise à jour (forme: aaaammjj) END_IF IF VAL(b$) < i% MotsCles(fl$,fa$): ' Création initiale, ou mise à jour de la doc END_IF FILE_LOAD 3,fl$ FOR i% = 1 TO COUNT(3): ITEM_ADD 1,ITEM_READ$(3,i%): NEXT i% SORT 1 a$ = "#INCLUDE "+q$+"F"+q$: GOSUB afm1 END ' ============================================================================== Afm: a$ = ITEM_INDEX$(1) afm1: FILE_OPEN_READ 1,fa$ FILE_READLN 1,b$: WHILE MID$(b$,4,50)<>a$: FILE_READLN 1,b$: END_WHILE CLEAR 2 ITEM_ADD 2,STRING$(20," ")+MID$(b$,4,50) FILE_READLN 1,b$ WHILE LEFT$(b$,3)<>"1_ " AND FILE_EOF(1)=0 IF MID$(b$,2,2) = "_ " i% = VAL(LEFT$(b$,1)): ITEM_ADD 2,"" IF i%>2 THEN ITEM_ADD 2,"==================== "+fct$(i%)+" ====================" b$ = MID$(b$,4,200) END_IF ITEM_ADD 2,b$ FILE_READLN 1,b$ END_WHILE FILE_CLOSE 1 fp$ = ra$+a$+".txu" IF FILE_EXISTS(fp$) = 1: ' fichier de commentaire perso pour ce mot-clé ITEM_ADD 2,"" ITEM_ADD 2,"*=*=*=*=*=*=*=*=*=*=*=* PERSO *=*=*=*=*=*=*=*=*=*=*=*" FILE_OPEN_READ 1,fp$ WHILE FILE_EOF(1) = 0 FILE_READLN 1,b$: ITEM_ADD 2,b$ END_WHILE FILE_CLOSE 1 END_IF RETURN ' ============================================================================== Perso: ' commentaires perso a$="Notepad.exe "+q$+fp$+q$ EXECUTE_WAIT "CMD.exe /C "+a$ RETURN ' ============================================================================== SUB MotsCles(Edp$,Rhk$,fl$,fa$) ' Liste des mots-clés extraite de Panoramic_Editor.exe (chemins à adapter). ' Paramètres: Edp$ = chemin de Panoramic_Editor ' Rhk$ = chemin de ResHacker (désassembleur des mots-clés) ' Résultat: fl$ (liste brute des mots-clés) ' fa$ (aide complète, par mot-clé) DIM_LOCAL rm$,Rpm$,fz$,a$,q$,k%,nmc% q$ = CHR$(34) rm$ = "C:\TEMP": ' Répertoire de travail <===== A PRÉCISER (Jean-Claude ?) ==== fz$ = rm$ + "ppp.res": ' fichier provisoire résultat de ResHacker Rpm$ = "-extract "+q$+Edp$+q$+", "+q$+fz$+q$+", RCData, KEYWORDS, 1036" EXECUTE_WAIT Rhk$+Rpm$: ' -> résultat dans fz$ FILE_OPEN_READ 8, fz$: FILE_OPEN_WRITE 9,fa$: FILE_OPEN_WRITE 6,fl$ EXECUTE_WAIT "CMD.exe /C DIR "+q$+Edp$+q$+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"/") a$ = MID$(a$,k%+4,4)+MID$(a$,k%+1,2)+MID$(a$,k%-2,2) FILE_WRITELN 9,a$+" * date de Panoramic_Editor" FILE_READLN 8,a$: nmc% = 0 WHILE FILE_EOF(8) = 0 FILE_READLN 8,a$ IF LEN(a$) = 1 AND NUMERIC(a$) = 1 WHILE a$<>"1": FILE_READLN 8,a$: END_WHILE: FILE_WRITELN 9,"": ' saut de ligne FILE_READLN 8,a$: FILE_WRITELN 9,"1_ "+a$: nmc%=nmc%+1: ' MOT-CLÉ COMPLET IF LEFT$(a$,1) = "(" IF INSTR(a$,"STEP") >0 a$ = "STEP" ELSE a$ = "TO" END_IF END_IF FILE_WRITELN 6,a$ WHILE a$<>"2": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"2_ "+a$: ' RÉSUMÉ WHILE a$<>"3": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"3_ "+a$: ' DÉFINITION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"4": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"4_ "+a$: ' FONCTION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"5": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"5_ "+a$: ' SYNTAXE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"6": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"6_ "+a$: ' USAGE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"7": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"7_ "+a$: ' CAS D'ERREUR FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"8": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"8_ "+a$: ' EXEMPLES FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"9": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"9_ "+a$: ' EN RAPPORT FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE END_IF END_WHILE FILE_CLOSE 8: FILE_CLOSE 9: FILE_CLOSE 6 FILE_DELETE fz$ END_SUB ' ============================================================================== | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 17:19 | |
| Je trouve ton fichier source très interessant et après chacun peu le personaliser. Personellement, par exemple, j'utiliserais l'éditeur de Klaus et il y a donc tout une partie de ton interface que je verrais plutôt intégrée directement dans l'éditeur (Nouveau, possibiliter de trier les fichier sources par date, par nom ou de faire une recherche). Les accès aux fichiers d'aide sont déjà intégrés mais le système d'ajout de commentaires persos qui viennent s'afficher indépendamment de l'extraction des mots clés est une très bonne idée permettant une maintenance aisée lors des montées de version. Pareil la consultation de la bibliothèque de sub, pour moi, ce sera plus dans l'éditeur. Après, il y a la consultation du forum, pour moi, ça peut être un programme complémentaire lancé depuis l'éditeur. Je n'adopterais donc pas cette interface même si je la trouve très bien faites car je pense que je retrouverais tout mes petits dans le nouvel éditeur. Par contre, il y a des tas de bonnes idées à piocher dans ton programme alors merci encore de l'avoir partagé. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 17:45 | |
| Ma foi, c'est fait dans cet esprit-là, le partage, à charge pour chacun d'en prendre ce qui l'intéresse, le code est suffisamment simple pour être adapté à tous les goûts et situations particulières. Là je regarde pour l'extraction de la doc de Panoramic Editor sans se servir de ResHacker, uniquement avec les moyens du bord... mais là c'est plus un jeu qu'autre chose. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 17:59 | |
| Salut à tous, Moi je préfère essayer avant, je ferais des commentaires après. J'ai un souci, çà marche pas. Ça bloque en ligne 26, "Impossible to create directorie" - Code:
-
IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE fa$ Regarde cette ligne 26 (je la trouve zarbi), tu testes l’existence d'un répertoire pour en fabriquer un autre ?. 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 Mer 15 Oct 2014 - 18:58 | |
| Hello JL35 J’ai adapté les 3 chemins qui mènent à Rome (à mes dossiers je veux dire !) ; après le Run , message d’erreur et …. Avec méthode, j’analyse le code pour voir ce qui ne va pas : Ligne 26 - Code:
-
IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE fa$ Jean Claude la trouve zarbi; je la trouve chelou, moi Je la corrige ainsi - Code:
-
IF DIR_EXISTS(fa$) = 0 THEN DIR_MAKE fa$ Ligne 37 - Code:
-
MotsCles(fl$,fa$): ' Création initiale, ou mise à jour de la doc L'appel de la SUB nécessite 4 paramètres et non 2 A remplacer par - Code:
-
MotsCles(Edp$,Rhk$,fl$,fa$) : ' Création initiale, ou mise à jour de la doc LIGNE 91 - Code:
-
Rpm$ = "-extract "+q$+Edp$+q$+", "+q$+fz$+q$+", RCData, KEYWORDS, 1036" Il manque un espace avant -extract … - Code:
-
Rpm$ = " -extract "+q$+Edp$+q$+", "+q$+fz$+q$+", RCData, KEYWORDS, 1036" Après ces corrections, j’exécute le programme :Tout semble bon. La fenêtre Resource Hacker s’ouvre avec les menus File Edit View Action HelpDevant une telle situation que dois-je faire ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 21:15 | |
| J'arrive ! (j'étais sur autre chose, enfin, du même genre) Jean-Claude et Papydall, il faut lire évidemment (ligne 26): - Code:
-
IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE ra$ bien ra$ (r comme répertoire) et non fa$ (f comme fichier) @papydall Il y a évidemment 4 paramètres comme tu as vu, pour la sub - Code:
-
SUB MotsCles(Edp$,Rhk$,fl$,fa$) Quant à l'espace manquant, non chez moi il ne manque pas parce qu'il figure dans la variable Rhk$, à la fin: - Code:
-
Rhk$ = "C:\UTIL\ResHacker.exe " Tu ne devrais pas avoir la fenêtre de ResHacker qui s'ouvre, ça doit être transparent comme exécution... Le seul affichage devrait être celui-ci, en fin d'exécution: Je remets le programme complet ici (mais il faudra refaire les chemins, désolé), vérifié, ça marche bien chez moi: - Code:
-
' ********** Création et consultation des fichiers d'aide par mot-clé ********** LABEL Afm, afm1, Perso DIM Edp$,Rhk$,Pan$,ra$, fl$, fa$, fp$, i%, a$, b$,q$,fct$(10) ' ============================ CHEMINS À PRÉCISER ============================== Edp$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' Éditeur Rhk$ = "C:\UTIL\ResHacker.exe ": ' *** ResHacker: extraction des mots-clés <**** Pan$ = "C:\PANORAMIC\": ' Répertoire des sources Panoramic <******************** ' ============================================================================== ra$ = Pan$+"Manuel": ' Répertoire de la documentation Panoramic (créé) <======= fl$ = ra$+"ListeMC.txt": ' liste brute des mots-clés (créé) fa$ = ra$+"Aide.txt": ' doc des mots-clés (créé) DATA "","","DÉFINITION","FONCTION","SYNTAXE","USAGE","CAS D'ERREUR" DATA "EXEMPLES","EN RAPPORT" FOR i% = 1 TO 9: READ fct$(i%): NEXT i% q$ = CHR$(34)
WIDTH 0,800: HEIGHT 0,SCREEN_Y-50: BORDER_SMALL 0 LIST 1: WIDTH 1,200: HEIGHT 1,HEIGHT(0)-35: FONT_NAME 1,"Consolas" color 1,200,255,200: ON_CLICK 1,Afm: font_size 1,10 MEMO 2: LEFT 2,WIDTH(1): WIDTH 2,WIDTH(0)-WIDTH(1)-16: HEIGHT 2,HEIGHT(1) color 2,255,255,200: FONT_NAME 2,"Consolas": FONT_SIZE 2,10 BAR_VERTICAL 2 MEMO 3: HIDE 3 BUTTON 4: TOP 4,HEIGHT(0)-60: LEFT 4,WIDTH(0)-120: CAPTION 4,"Ajouter" ON_CLICK 4,Perso IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE ra$
EXECUTE_WAIT "CMD.exe /C DIR "+q$+Edp$+q$+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: i% = INSTR(a$,"/") i% = VAL(MID$(a$,i%+4,4)+MID$(a$,i%+1,2)+MID$(a$,i%-2,2)): ' date Editeur actuel b$ = "0" IF FILE_EXISTS(fa$) = 1 FILE_OPEN_READ 1,fa$: FILE_READLN 1,b$: FILE_CLOSE 1 b$ = LEFT$(b$,8): ' date de la deernière mise à jour (forme: aaaammjj) END_IF IF VAL(b$) < i% MotsCles(Edp$,Rhk$,fl$,fa$): ' Création initiale, ou mise à jour de la doc END_IF FILE_LOAD 3,fl$ FOR i% = 1 TO COUNT(3): ITEM_ADD 1,ITEM_READ$(3,i%): NEXT i% SORT 1 a$ = "#INCLUDE "+q$+"F"+q$: GOSUB afm1 END ' ============================================================================== Afm: a$ = ITEM_INDEX$(1) afm1: FILE_OPEN_READ 1,fa$ FILE_READLN 1,b$: WHILE MID$(b$,4,50)<>a$: FILE_READLN 1,b$: END_WHILE CLEAR 2 ITEM_ADD 2,STRING$(20," ")+MID$(b$,4,50) FILE_READLN 1,b$ WHILE LEFT$(b$,3)<>"1_ " AND FILE_EOF(1)=0 IF MID$(b$,2,2) = "_ " i% = VAL(LEFT$(b$,1)): ITEM_ADD 2,"" IF i%>2 THEN ITEM_ADD 2,"==================== "+fct$(i%)+" ====================" b$ = MID$(b$,4,200) END_IF ITEM_ADD 2,b$ FILE_READLN 1,b$ END_WHILE FILE_CLOSE 1 fp$ = ra$+a$+".txu" IF FILE_EXISTS(fp$) = 1: ' fichier de commentaire perso pour ce mot-clé ITEM_ADD 2,"" ITEM_ADD 2,"*=*=*=*=*=*=*=*=*=*=*=* PERSO *=*=*=*=*=*=*=*=*=*=*=*" FILE_OPEN_READ 1,fp$ WHILE FILE_EOF(1) = 0 FILE_READLN 1,b$: ITEM_ADD 2,b$ END_WHILE FILE_CLOSE 1 END_IF RETURN ' ============================================================================== Perso: ' commentaires perso a$="Notepad.exe "+q$+fp$+q$ EXECUTE_WAIT "CMD.exe /C "+a$ RETURN ' ============================================================================== SUB MotsCles(Edp$,Rhk$,fl$,fa$) ' Liste des mots-clés extraite de Panoramic_Editor.exe (chemins à adapter). ' Paramètres: Edp$ = chemin de Panoramic_Editor ' Rhk$ = chemin de ResHacker (désassembleur des mots-clés) ' Résultat: fl$ (liste brute des mots-clés) ' fa$ (aide complète, par mot-clé) DIM_LOCAL rm$,Rpm$,fz$,a$,q$,k%,nmc% q$ = CHR$(34) rm$ = "C:\TEMP": ' Répertoire de travail <===== A PRÉCISER (Jean-Claude ?) ==== fz$ = rm$ + "ppp.res": ' fichier provisoire résultat de ResHacker Rpm$ = "-extract "+q$+Edp$+q$+", "+q$+fz$+q$+", RCData, KEYWORDS, 1036" EXECUTE_WAIT Rhk$+Rpm$: ' -> résultat dans fz$ FILE_OPEN_READ 8, fz$: FILE_OPEN_WRITE 9,fa$: FILE_OPEN_WRITE 6,fl$ EXECUTE_WAIT "CMD.exe /C DIR "+q$+Edp$+q$+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"/") a$ = MID$(a$,k%+4,4)+MID$(a$,k%+1,2)+MID$(a$,k%-2,2) FILE_WRITELN 9,a$+" * date de Panoramic_Editor" FILE_READLN 8,a$: nmc% = 0 WHILE FILE_EOF(8) = 0 FILE_READLN 8,a$ IF LEN(a$) = 1 AND NUMERIC(a$) = 1 WHILE a$<>"1": FILE_READLN 8,a$: END_WHILE: FILE_WRITELN 9,"": ' saut de ligne FILE_READLN 8,a$: FILE_WRITELN 9,"1_ "+a$: nmc%=nmc%+1: ' MOT-CLÉ COMPLET IF LEFT$(a$,1) = "(" IF INSTR(a$,"STEP") >0 a$ = "STEP" ELSE a$ = "TO" END_IF END_IF FILE_WRITELN 6,a$ WHILE a$<>"2": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"2_ "+a$: ' RÉSUMÉ WHILE a$<>"3": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"3_ "+a$: ' DÉFINITION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"4": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"4_ "+a$: ' FONCTION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"5": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"5_ "+a$: ' SYNTAXE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"6": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"6_ "+a$: ' USAGE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"7": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"7_ "+a$: ' CAS D'ERREUR FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"8": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"8_ "+a$: ' EXEMPLES FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"9": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"9_ "+a$: ' EN RAPPORT FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE END_IF END_WHILE FILE_CLOSE 8: FILE_CLOSE 9: FILE_CLOSE 6 FILE_DELETE fz$ END_SUB ' ==============================================================================
Dernière édition par JL35 le Mer 15 Oct 2014 - 21:47, édité 3 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Mer 15 Oct 2014 - 21:21 | |
| Et maintenant, une Sub qui fait exactement la même chose que ResHacker, mais en pur Panoramic: extraction de la doc des mots-clés depuis Panoramic_Editor. Avec un petit programme pour appeler la sub et voir le résultat. INCONVÉNIENT: c'est long (chez moi, 26 secondes), mais il est vrai qu'on ne le fait qu'une fois, et à chaque changement de l'Éditeur. C'est à voir, c'était surtout pour voir si je pouvais le faire. - Code:
-
DIM Edp$, fr$ ' Chemins à vérifier: Edp$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe" fr$ = "C:\TEMP\ppp.txt" print time$ Extract_MC(Edp$,fr$) print time$ execute "Notepad.exe " + fr$: ' pour voir... TERMINATE ' ============================================================================== SUB Extract_MC(Edp$,fr$) ' Extraction de la doc des mots-clés de Panoramic_Editor (chemin Edp$) ' Résultat brut dans le fichier texte fr$ DIM_LOCAL q$,ht1$,ht2$,p1%,p2%,lg%,nb%,rs%,i%,k%,va$,v%(2000) q$ = CHR$(34) ht1$ = "3C2F48544D4C3E0D0A00300D0A": ' <HTML>OD OA 00 30 0D 0A ht2$ = "0D0A460D0A460D0A46": ' fin CURSOR_HOURGLASS 0 FILEBIN_OPEN_READ 1,q$+Edp$+q$ p1% = 0: FILEBIN_HEXA_READ 1,2000,va$: k% = INSTR(va$,ht1$) WHILE k% = 0 p1%=FILEBIN_POS(1): ' print hex$(p1%) FILEBIN_HEXA_READ 1,2000,va$: k% = INSTR(va$,ht1$) END_WHILE p2%=p1%+2000 p1% = p1%+(k%-1)/2+10: ' début de zone doc mots-clés FILEBIN_HEXA_READ 1,2000,va$: k% = INSTR(va$,ht2$) WHILE k% = 0 p2%=FILEBIN_POS(1) FILEBIN_HEXA_READ 1,2000,va$: k% = INSTR(va$,ht2$) END_WHILE p2%=p2%+(k%-1)/2 lg% = p2%-p1%: ' longueur de la zone doc mots-clés nb% = INT(lg%/2000): rs% = lg%-nb%*2000 IF FILE_EXISTS(fr$)=1 THEN FILE_DELETE fr$ FILEBIN_OPEN_WRITE 2,fr$: FILEBIN_POSITION 1,p1% FOR i% = 1 TO nb% FILEBIN_BLOCK_READ 1,2000,v%(0): FILEBIN_BLOCK_WRITE 2,2000,v%(0) NEXT i% IF rs% > 0 THEN FILEBIN_BLOCK_READ 1,rs%,v%(0): FILEBIN_BLOCK_WRITE 2,rs%,v%(0) FILEBIN_CLOSE 1: FILEBIN_CLOSE 2 CURSOR_DEFAULT 0 END_SUB ' ============================================================================== Et au fait, merci à Jean-Claude et à papydall d'avoir essayé (et même essuyé les plâtres). Et tenez-moi au courant de la suite... @papydall, Il me semble avoir eu moi aussi à un moment l'apparition intempestive de la fenêtre de ResHacker, je ne sais plus où, mais il me semble également que j'avais résolu en écrivant EXECUTE_WAIT "CMD.exe /C ResHacker.exe.... " au lieu de EXECUTE_WAIT "ResHacker.exe ..." c'est assez bizarre, je n'ai pas encore très bien compris quand il faut faire comme ça ou pas... l'inconvénient du Cmd c'est qu'il fait apparaître une fenêtre noire momentanée... | |
| | | 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 Jeu 16 Oct 2014 - 1:11 | |
| Après avoir apporté les rectifications suivantes (abstraction faite de l’adaptation des chemins), ça MARCHE !!! Voici les modifs : Ligne 9 : ajouter \ - Code:
-
ra$ = Pan$+"Manuel\": ' Répertoire de la documentation Panoramic (créé) <======= Ligne 89 : ajouter \ - Code:
-
rm$ = "C:\TEMP\": ' Répertoire de travail <===== A PRÉCISER (Jean-Claude ?) ==== Ligne 92 - Code:
-
EXECUTE_WAIT Rhk$+Rpm$: ' -> résultat dans fz$ A modifier - Code:
-
EXECUTE_WAIT "CMD.exe /c "+Rhk$+Rpm$: ' -> résultat dans fz$ Remarque : le code en pur panoramic, ça marche aussi, mais le résultat est moins bon. En tout cas bravo! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Jeu 16 Oct 2014 - 14:25 | |
| Merci pour ces précisions pleines de bon sens papydall, au moins on voit que tu suis bien ! (pour les antislash à la fin des chemins j'ai changé mes habitudes, je les mets maintenant, ça distingue des noms de fichiers, mais c'est encore un peu touffu). Je ne trouve pas que ce soit moins bon avec le pur panoramic... ? pour moi c'est pareil (le résultat). Mais c'est vrai que c'est long... Je vais optimiser et faire une sub plus générale, mais ce sera toujours plus long que ResHacker. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Jeu 16 Oct 2014 - 17:53 | |
| Voilà où j'en suis de mes pérégrinations: Finalement, deux subs d'extraction de données d'un fichier binaire (ou évidemment d'un fichier ascii, qui est un binaire particulier, mais dans ce cas on ne tient pas compte des sauts de lignes). Ou plutôt 3 Subs: 1) Extraction de la doc des mots-clés de Panoramic_Editor (fichier texte brut), comme ci-dessus. J'ai gagné quelques secondes: 17 au lieu de 26 je crois qu'il est difficile de faire mieux avec les moyens employés. Deux subs plus générales: 2) Extraction d'une zone donnée d'un fichier dans un fichier résultat, zone commençant à une position donnée et de longueur donnée. 3) Extraction dans un fichier, à partir d'une position donnée, d'une zone commençant par une séquence donnée et se terminant par une séquence donnée (par exemple "<html>" et "</html>")On peut donc faire des extractions successives en faisant progresser le pointeur. Avec l'exemple d'extraction de la doc de Panoramic_Editor, qu'on peut ensuite mettre en forme avec le programme plus haut (la sub remplace l'appel à ResHacker): - Code:
-
DIM Edp$, fr$ ' Chemins à vérifier: Edp$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe" fr$ = "C:\TEMP\ppp.txt" print time$ Extract_MC(Edp$,fr$) print time$ END: ' ========================================================================= ' ============================================================================== SUB Extract_MC(Edp$,fr$) ' Extraction de la doc des mots-clés de Panoramic_Editor (chemin Edp$) ' Résultat brut dans le fichier texte fr$ ' (Inconvénient: temps d'exécution, environ 17 secondes) DIM_LOCAL sd$,sf$,a$,sz%,k%,k1% sd$ = "300D0A23494E434C554445" sf$ = "0D0A460D0A46" CURSOR_HOURGLASS 0 FILEBIN_OPEN_READ 8,Edp$: FILEBIN_OPEN_WRITE 9,fr$: sz% = FILEBIN_SIZE(8) p% = 0 FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) WHILE k% < 1 p% = p%+2000-LEN(sd$): FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) END_WHILE k1% = INSTR_POS(a$,sf$,k%) IF k1% > 0 a$ = MID$(a$,k%,k1%+LEN(sf$)-k%) FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$) ELSE a$ = RIGHT_POS$(a$,k%): k% = 0 WHILE k% < 1 FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ p% = p%+2000-LEN(sf$) FILEBIN_HEXA_READ 8,2000,a$: k%=INSTR(a$,sf$) END_WHILE a$ = LEFT$(a$,k%-1)+sf$ FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ END_IF FILEBIN_CLOSE 8: FILEBIN_CLOSE 9 CURSOR_DEFAULT 0 END_SUB ' ============================================================================== SUB Bin_Extract(f$,p%,lg%,fr$) ' Extraction depuis f$ de lg% octets à partir de la position p%, résultat dans fr$ DIM_LOCAL a$,nb%,rs%,i% nb% = INT(lg%/2000): rs% = lg%-nb%*2000 FILEBIN_OPEN_READ 8,f$: FILEBIN_OPEN_WRITE 9,fr$ FILEBIN_POSITION 8,p% IF nb% > 0 FOR i% = 1 TO nb% FILEBIN_HEXA_READ 8,2000,a$: FILEBIN_HEXA_WRITE 9,2000,a$ NEXT i% END_IF IF rs%>0 THEN FILEBIN_HEXA_READ 8,rs%,a$: FILEBIN_HEXA_WRITE 9,rs%,a$ FILEBIN_CLOSE 8: FILEBIN_CLOSE 9 END_SUB ' ============================================================================== SUB Seq_Extract(f$,p%,sd$,sf$,fr$) ' Extraction depuis f$, à partir de la position p%, d'une séquence commençant ' par sd$ et finissant par sf$. ' Résultat dans fr$ (séquences incluses) ' Au retour, dans le clipboard, 16 caractères: ' 8 caractères: position séquence de début trouvée ' 8 caractères: longueur de séquence, exemple: 0083865200001711 ' (=0000000000000000 si séquence début non trouvée) DIM_LOCAL a$, sz%, k%, k1%, cr$ ' conversion des séquences en hexadécimal: cr$ = "" FOR k% = 1 TO LEN(sd$): cr$=cr$+RIGHT$("0"+HEX$(ASC(MID$(sd$,k%,1))),2): NEXT k% sd$ = cr$: cr$ = "" cr$ = "" FOR k% = 1 TO LEN(sf$): cr$=cr$+RIGHT$("0"+HEX$(ASC(MID$(sf$,k%,1))),2): NEXT k% sf$ = cr$ CURSOR_HOURGLASS 0 FILEBIN_OPEN_READ 8,f$: FILEBIN_OPEN_WRITE 9,fr$: sz% = FILEBIN_SIZE(8) FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) WHILE k% < 1 IF FILEBIN_POS(8) >= sz% CLIPBOARD_STRING_COPY STRING$(16,"0"): ' séquence début non trouvée FILEBIN_CLOSE 8: FILEBIN_CLOSE 9: CURSOR_DEFAULT 0: EXIT_SUB END_IF p% = p%+2000-LEN(sd$): FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) END_WHILE cr$ = RIGHT$("0000000"+STR$(p%+(k%-1)/2),8): ' position de début k1% = INSTR_POS(a$,sf$,k%) IF k1% > 0 a$ = MID$(a$,k%,k1%+LEN(sf$)-k%) FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$) ELSE a$ = RIGHT_POS$(a$,k%): k% = 0 WHILE k% < 1 FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ p% = p%+2000-LEN(sf$) FILEBIN_HEXA_READ 8,2000,a$: k%=INSTR(a$,sf$) END_WHILE a$ = LEFT$(a$,k%-1)+sf$ FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ END_IF cr$ = cr$ + RIGHT$("0000000"+STR$(FILEBIN_SIZE(9)),8) FILEBIN_CLOSE 8: FILEBIN_CLOSE 9 CLIPBOARD_STRING_COPY cr$: ' emplacement et taille CURSOR_DEFAULT 0 END_SUB ' ============================================================================== | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| | | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 13:45 | |
| Je testerais ce week end certainement (surement dimanche). En tout cas bravo, quand on peut éviter d'utiliser des ressources externes c'est toujours plus simple. Surtout que là, c'est directement personnalisable et pas tellement plus long qu'avec ResHacker à priori tout confondu. Je ne sais pas si compilé, ça pourrait aller encore plus vite ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 14:38 | |
| Dis-donc Jean-Claude, le we ne commence pas le vendredi matin, même pour un retraité ! @Jicehel, C'est un choix, mais c'est vrai qu'à part d'être spécialement pressé, l'option tout Panoramic se défend, d'autant plus que cette opération (extraction de la doc) ne se fait qu'à chaque changement de version d'éditeur, donc pas très souvent. Je vais compiler un module, juste pour voir, mais je suis sceptique sur un gain de temps significatif. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 16:24 | |
| Eh bien, conformément à ce que j'attendais, la compilation ne change rien au temps d'exécution, ce qui est normal puisque c'est toujours interprété en exécutable, comme dans l'éditeur (je n'ai pas essayé avec le compilateur). Voici la dernière version: cette fois-ci la sub est indépendante et fait tout le travail: extraction du module doc depuis l'Éditeur, puis création des deux fichiers: liste des mots-clés, et doc générale avec une rubrique par mot-clé. Avec un petit module d'appel (création uniquement s'il y a eu changement d'éditeur) et d'utilisation des listes crées. (en cas de création ou mise à jour, il serait peut-être bon de prévoir quelque chose pour faire patienter pendant les quelque 17 ou 18 secondes de travail, genre progress_bar, ou autre sablier). - Code:
-
' ********** Création et consultation des fichiers d'aide par mot-clé ********** LABEL Afm, afm1, Perso DIM Edp$,Pan$,ra$, fl$, fa$, fp$, i%, a$, b$,q$,fct$(10) ' ============================ CHEMINS À PRÉCISER ============================== Edp$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' Éditeur Pan$ = "C:\PANORAMIC\": ' Répertoire des sources Panoramic <******************** ' ============================================================================== ra$ = Pan$+"Manuel\": ' Répertoire de la documentation Panoramic (créé) <======= fl$ = ra$+"ListeMC.txt": ' liste brute des mots-clés (créé) fa$ = ra$+"Aide.txt": ' doc des mots-clés (créé) DATA "","","DÉFINITION","FONCTION","SYNTAXE","USAGE","CAS D'ERREUR" DATA "EXEMPLES","EN RAPPORT" FOR i% = 1 TO 9: READ fct$(i%): NEXT i% q$ = CHR$(34)
WIDTH 0,800: HEIGHT 0,SCREEN_Y-50: BORDER_SMALL 0 LIST 1: WIDTH 1,200: HEIGHT 1,HEIGHT(0)-35: FONT_NAME 1,"Consolas" COLOR 1,200,255,200: ON_CLICK 1,Afm: font_size 1,10 MEMO 2: LEFT 2,WIDTH(1): WIDTH 2,WIDTH(0)-WIDTH(1)-16: HEIGHT 2,HEIGHT(1) COLOR 2,255,255,200: FONT_NAME 2,"Consolas": FONT_SIZE 2,10 BAR_VERTICAL 2 MEMO 3: HIDE 3 BUTTON 4: TOP 4,HEIGHT(0)-60: LEFT 4,WIDTH(0)-120: CAPTION 4,"Ajouter" ON_CLICK 4,Perso IF DIR_EXISTS(ra$) = 0 THEN DIR_MAKE ra$ EXECUTE_WAIT "CMD.exe /C DIR "+q$+Edp$+q$+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: i% = INSTR(a$,"/") i% = VAL(MID$(a$,i%+4,4)+MID$(a$,i%+1,2)+MID$(a$,i%-2,2)): ' date Editeur actuel b$ = "0" IF FILE_EXISTS(fa$) = 1 FILE_OPEN_READ 1,fa$: FILE_READLN 1,b$: FILE_CLOSE 1 b$ = LEFT$(b$,8): ' date de la dernière mise à jour (forme: aaaammjj) END_IF IF VAL(b$) < i% MotsClesPano(Edp$,fl$,fa$): ' Création initiale, ou mise à jour de la doc END_IF FILE_LOAD 3,fl$ FOR i% = 1 TO COUNT(3): ITEM_ADD 1,ITEM_READ$(3,i%): NEXT i% SORT 1 a$ = "#INCLUDE "+q$+"F"+q$: GOSUB afm1 END ' ============================================================================== Afm: a$ = ITEM_INDEX$(1) afm1: FILE_OPEN_READ 1,fa$ FILE_READLN 1,b$: WHILE MID$(b$,4,50)<>a$: FILE_READLN 1,b$: END_WHILE CLEAR 2 ITEM_ADD 2,STRING$(20," ")+MID$(b$,4,50) FILE_READLN 1,b$ WHILE LEFT$(b$,3)<>"1_ " AND FILE_EOF(1)=0 IF MID$(b$,2,2) = "_ " i% = VAL(LEFT$(b$,1)): ITEM_ADD 2,"" IF i%>2 THEN ITEM_ADD 2,"==================== "+fct$(i%)+" ====================" b$ = MID$(b$,4,200) END_IF ITEM_ADD 2,b$ FILE_READLN 1,b$ END_WHILE FILE_CLOSE 1 fp$ = ra$+a$+".txu" IF FILE_EXISTS(fp$) = 1: ' fichier de commentaire perso pour ce mot-clé ITEM_ADD 2,"" ITEM_ADD 2,"*=*=*=*=*=*=*=*=*=*=*=* PERSO *=*=*=*=*=*=*=*=*=*=*=*" FILE_OPEN_READ 1,fp$ WHILE FILE_EOF(1) = 0 FILE_READLN 1,b$: ITEM_ADD 2,b$ END_WHILE FILE_CLOSE 1 END_IF RETURN ' ============================================================================== Perso: ' commentaires perso a$="Notepad.exe "+q$+fp$+q$ EXECUTE_WAIT "CMD.exe /C "+a$ RETURN ' ============================================================================== SUB MotsClesPano(Edp$,fl$,fa$) ' Extraction depuis Edp$ (Panoramic_Editor.exe) de la documentation des mots-clés ' Panoramic. ' Résultats dans: ' - fl$: liste brute des mots-clés ' - fa$: documentation complète, par mot-clé DIM_LOCAL rm$,sd$,sf$,p%,fz$,a$,sz%,k%,k1%,nmc%,dl% rm$ = FILE_EXTRACT_PATH$(fl$): ' répertoire de travail provisoire fz$ = rm$+"ppp.txt": ' fichier provisoire de travail (créé puis supprimé) sd$ = "300D0A23494E434C554445": ' séquence début de recherche = 0<=#INCLUDE sf$ = "0D0A460D0A46": ' séquence fin de recherche = <=F<=F p% = 0: ' recherche à partir du début de l'Éditeur FILEBIN_OPEN_READ 8,Edp$: FILEBIN_OPEN_WRITE 9,fz$: sz% = FILEBIN_SIZE(8) FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) WHILE k% < 1 IF FILEBIN_POS(8) >= sz% CLIPBOARD_STRING_COPY STRING$(16,"0"): ' séquence début non trouvée FILEBIN_CLOSE 8: FILEBIN_CLOSE 9: EXIT_SUB END_IF p% = p%+2000-LEN(sd$): FILEBIN_POSITION 8,p% FILEBIN_HEXA_READ 8,2000,a$: k% = INSTR(a$,sd$) END_WHILE k1% = INSTR_POS(a$,sf$,k%) IF k1% > 0 a$ = MID$(a$,k%,k1%+LEN(sf$)-k%) FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$) ELSE a$ = RIGHT_POS$(a$,k%): k% = 0 WHILE k% < 1 FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ p% = p%+2000-LEN(sf$) FILEBIN_HEXA_READ 8,2000,a$: k%=INSTR(a$,sf$) END_WHILE a$ = LEFT$(a$,k%-1)+sf$ FILEBIN_HEXA_WRITE 9,LEN(a$)/2,a$ END_IF FILEBIN_CLOSE 8: FILEBIN_CLOSE 9 print time$+" fin extr" FILE_OPEN_READ 8, fz$: FILE_OPEN_WRITE 9,fa$: FILE_OPEN_WRITE 6,fl$ EXECUTE_WAIT "CMD.exe /C DIR "+CHR$(34)+Edp$+CHR$(34)+" /TC | clip" a$ = CLIPBOARD_STRING_PASTE$: k% = INSTR(a$,"/") a$ = MID$(a$,k%+4,4)+MID$(a$,k%+1,2)+MID$(a$,k%-2,2) FILE_WRITELN 9,a$+" * date de Panoramic_Editor": ' archivage de la date Éditeur FILE_READLN 8,a$: nmc% = 0 WHILE FILE_EOF(8) = 0 FILE_READLN 8,a$ IF LEN(a$) = 1 AND NUMERIC(a$) = 1 WHILE a$<>"1": FILE_READLN 8,a$: END_WHILE: FILE_WRITELN 9,"": ' saut de ligne FILE_READLN 8,a$: FILE_WRITELN 9,"1_ "+a$: nmc%=nmc%+1: ' MOT-CLÉ COMPLET IF LEFT$(a$,1) = "(" IF INSTR(a$,"STEP") > 0 a$ = "STEP" ELSE a$ = "TO" END_IF END_IF FILE_WRITELN 6,a$ WHILE a$<>"2": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"2_ "+a$: ' RÉSUMÉ WHILE a$<>"3": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"3_ "+a$: ' DÉFINITION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"4": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"4_ "+a$: ' FONCTION FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"5": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"5_ "+a$: ' SYNTAXE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"6": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"6_ "+a$: ' USAGE FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"7": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"7_ "+a$: ' CAS D'ERREUR FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"8": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"8_ "+a$: ' EXEMPLES FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE WHILE a$<>"9": FILE_READLN 8,a$: END_WHILE FILE_READLN 8,a$: FILE_WRITELN 9,"9_ "+a$: ' EN RAPPORT FILE_READLN 8,a$: WHILE LEN(a$)>1: FILE_WRITELN 9,a$: FILE_READLN 8,a$: END_WHILE END_IF END_WHILE FILE_CLOSE 8: FILE_CLOSE 9: FILE_CLOSE 6 FILE_DELETE fz$ dl%=1000: WHILE OBJECT_EXISTS(dl%)=1: dl%=dl%+1: END_WHILE DLIST dl%: FILE_LOAD dl%,fl$: SORT dl%: FILE_SAVE dl%,fl$: DELETE dl% END_SUB ' ============================================================================== ps J'ai essayé avec le compilateur, mais ça ne marche pas, il y a des commandes non reconnues, par exemple filebin_hexa_read...Edit 23h15 manquait des '\' à la fin des chemins lignes 6 et 8
Dernière édition par JL35 le Ven 17 Oct 2014 - 23:15, édité 1 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 17:10 | |
| Finalement j'ai un peu de temps avant l'arrivée de mes hôtes. Hé Bien, ça marche pas. Voici ce qui se passe. J'ai également fait l'essai sans les anti-slash, c'est idem ???A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 17:55 | |
| Manifestement, tu n'as pas la bonne valeur dans a$... (c'est à dire le clipboard_string_paste$), donc probablement le clipboard n'a pas été garni. Tu dois être sous xp (c'est vieux ça) si je ne m'abuse, et tu ne disposes peut-être pas de la fonction clip (qui n'est pas en standard sous xp) et le déroutage de l'execute_wait qui donne la date du fichier vers le clipboard ne doit pas se faire. Dans ce cas, deux solutions: - tu te procures le clip.exe qui résoudra le problème (facile à trouver, on en a déjà parlé, mais je ne sais plus trop où) - ou bien, au lieu du ' | clip' tu rediriges vers un fichier: ' > fichpro.tmp' et ensuite tu lis le fichier pour avoir le résultat, c'est un peu plus lourd. PS clip.exe à télécharger ici par exemple: http://www.generation-nt.com/fichiers/biblio/17_clip.zipDézipper, et copier clip.exe dans C:\%windir%\system32 (ou plus simplement C:\Windows\System32) - Citation :
Finalement j'ai un peu de temps avant l'arrivée de mes hôtes. Ce n'est pas toi l'hôte ? en principe on attend plutôt l'arrivée de ses invités...
Dernière édition par JL35 le Ven 17 Oct 2014 - 18:10, édité 1 fois | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:10 | |
| bonjour a tous. je voudrai bien participer aussi aux essais de ce code, mais je suis confronté a cette erreur en l ligne 31. je suis sous vista sp1 je crois. je pense que mes chemins sont bons et je ne sais quoi faire pour sortir de ce problème. - question :comment est ce que je peux vérifier que mes chemins soient bons ?. et qu'est-ce qui cloche dans cette ligne 31 | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:14 | |
| je constate que c'est la même ligne que jean-claude
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:16 | |
| bonjour RMont, j'ai bien l'impression que tu as le même problème que Jean-Claude, vois ma réponse ci-dessus. En effet, c'est sûr que clip.exe n'est pas en standard sous Vista, alors il faudra appliquer l'une des deux solutions que je donne, mais je préconise plutôt la deuxième, intégrer clip.exe, c'est bien plus souple que de dérouter le résultat dans un fichier.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:16 | |
| On s'est croisés... même punition, même motif !
Je vais être absent dans la soirée, donc pas de réponses avant plus tard ce soir... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:20 | |
| J'ai bien clip.exe dans mon PC (qui est sous Windows 8 ), il se trouve dans le répertoire C:\Windows\System32. Alors, on fait quoi Bon ben, il faut que j'y aille, ils arrivent ! A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mon interface Panoramic Ven 17 Oct 2014 - 18:26 | |
| Alors là j'y comprends plus rien, si tu as clip. essaie de mettre un MESSAGE a$ juste après le a$ = Clipboard_String_Paste$, pour voir ce qu'il y a dedans... En fait, le but est de récupérer la date du fichier Panoramic_Editor.exe, pour voir s'il est différent de la dernière date archivée, et dans ce cas de refaire l'opération d'extraction. Pour ça on fait appel à la fonction DIR de ms-dos, qui va donner la date de création (paramètre /TC), le problème est de récupérer le résultat du DIR, en principe ça marche tout seul... Normalement, le résultat est rendu sous la forme: et on récupère la date à gauche. Pour ça je cherche le 1er '/' (entre jour et mois) et je me base là-dessus, en principe il n'y en a pas d'autre avant. | |
| | | 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
| |
| |
| |