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 |
|
|
| Utilitaire MakeHLP de Nardo26 | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Utilitaire MakeHLP de Nardo26 Ven 3 Juil 2015 - 3:22 | |
| Nardo26 a développé un utilitaire MakeHLP qui permettait de transformer la documentation de Panoramic en format HTML plus agréable à consulter. Cet utilitaire n’est plus sur le site de Nardo et je ne l’ai pas trop cherché sur le Forum. J’en ai une version de cet utilitaire que j’ai remise à jour à ma manière. Le programme nécessite l’utilitaire ResHaker.exe ainsi que les fichiers style.css et index.txt, tous deux doivent se trouver dans le dossier StylesBref, vous trouvez sur mon webdav le dossier Pano_help.zip qui contient ce qu’il faut. Enregistrez Pano_help où vous voulez et exécuter le programme Pano_Help_HTML.bas. La marche à suivre se trouve dans les REM. Dorénavant, pour les nouvelles versions de PANORAMIC EDITOR, il suffira de modifier la ligne 23 en indiquant la nouvelle version et d’exécuter le programme à nouveau. NB : N'oubliez pas de remercier Nardo26 , l'auteur de l'utilitaire ! Salut Bernard! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Sam 4 Juil 2015 - 22:08 | |
| Hello Papydall ! Comme j'ai légèrement modifié l'arborescence de mon site, le fichier zip pointait sur un lien mort... C'est corrigé. (dans le menu "utilitaires") Merci ! PS: je vais jeter un coup d'oeil à ta version. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Sam 4 Juil 2015 - 22:26 | |
| Ok, C'est vrai que le STOP dans le test du FindInList est un peu "bourrin" (ligne 547 dans ton code) Par contre, au lieu d'ignorer le pb j'aurais affiché quand même le message et au lieu de faire un goto sur la fin de boucle, un else regroupant le code en dessous (jusqu'au next) aurait été plus "clean"... Je vais tenir compte de tes dernières modifs (Ajout du submenu "quitter") si tu le permet. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Sam 4 Juil 2015 - 23:21 | |
| - Nardo26 a écrit:
- Je vais tenir compte de tes dernières modifs (Ajout du submenu "quitter") si tu le permet.
Mais c’est TON code. Tu peux en faire ce que bon te semble. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 9:13 | |
| Ça merdouille encore et je n'ai pas encore trouvé de raisons et de solutions... cf. RTRIM$(), VAL(), TAN(), etc... en gros, tout ce qu'il y a après RIGHT_POS$()... | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 10:10 | |
| Ça y est ! il manquait un TRIM$() lors de la réalisation de la liste des mots clés. Dans le fichier généré par reshacker, il y avait espace qui trainait après le nom de la fct RIGHT_POS$() - Code:
-
rem ============================================================================ ' Pano_Help_HTML.bas ' Génération de l'aide Panoramic en pages html ' Auteur : Nardo26 ' Remis à jour par PAPYDALL rem ============================================================================ rem Exécuter le programme rem Choisir "Générer" rem Choisir "Aide Panoramic" rem Et laisser le programme faire son boulot rem Si tout ira bien, le programme créera le dossier "fichiers" avec toutes rem les pages HTML. rem Il créera aussi le fichier "index.html" qui pilotera toutes les pages. rem Votre navigateur affichera l aide Panoramic et vous pouvez apprécier rem l agréable réprésentation de l aide. rem ============================================================================ Run() end rem ============================================================================ SUB Run() LABEL GO, CfgResHacker, Quit DIM PATH$ : PATH$ = DIR_CURRENT$+"" DIM EXEC_PANO$: EXEC_PANO$ = "C:\Langages\Panoramic\Ide\PANORAMIC_EDITOR.exe" DIM EXEC_RSC$ : EXEC_RSC$ = PATH$+"ResHacker.exe" DIM DIRNAME$ : DIRNAME$="fichiers"
DIM c$,d$ : c$ = CHR$(10) : d$ = CHR$(34) DIM STATUS_INFO : STATUS_INFO = 39
DIM Langue$ : Langue$ = "F" DIM DEBUG : DEBUG = 0
WIDTH 0,400:HEIGHT 0,200 : CAPTION 0,"Pano_Help_HTML" TOP 0,(SCREEN_Y-HEIGHT(0))/2 : LEFT 0,(SCREEN_X-WIDTH(0))/2 APPLICATION_TITLE CAPTION$(0) GUI() END_SUB rem ============================================================================
SUB GUI() MAIN_MENU 30 SUB_MENU 31:PARENT 31,30 SUB_MENU 32:PARENT 32,31 SUB_MENU 33:PARENT 33,31:INACTIVE 33 SUB_MENU 34:PARENT 34,30 SUB_MENU 35:PARENT 35,34:CAPTION 35,"ResHacker" SUB_MENU 36:PARENT 36,34 SUB_MENU 37:PARENT 37,36 SUB_MENU 38:PARENT 38,36 sub_menu 29 : parent 29,30 : caption 29,"Quitter" ConfigMenu(Langue$) ALPHA STATUS_INFO:TOP STATUS_INFO,HEIGHT(0)-80 : LEFT STATUS_INFO,20
IF FILE_EXISTS(EXEC_RSC$)=0 THEN MsgInfo("Info : ResHacker non disponible") : INACTIVE 32 on_click 29,quit ON_CLICK 32,GO ON_CLICK 35,CfgResHacker ON_CLICK 37,GO : ON_CLICK 38,GO END_SUB
' ============================================================================== CfgResHacker: CAPTION STATUS_INFO,"Sélection de l'exécutable ResHacker" OPEN_DIALOG 20 : FILTER 20, "Editeur de ressource|*.exe" EXEC_RSC$= FILE_NAME$(20):DELETE 20 IF EXEC_RSC$="_" THEN EXEC_RSC$="ResHacker.exe" IF FILE_EXISTS(EXEC_RSC$)=0 MsgInfo("Info : ResHacker non disponible") ELSE MsgInfo(""):ACTIVE 32 END_IF DIR_CHANGE PATH$ RETURN
' ------------------------------------------------------------------------------ ' Supprime les accents dans une chaine de caractères ' Exemple : "chaîne de caractères" -> "chaine de caracteres" ' ------------------------------------------------------------------------------ SUB StripAccents(a$) IF Variable("StripAccents_return$")=0 THEN DIM StripAccents_return$ DIM_LOCAL StripAccents_i,StripAccents_j DIM strAccent$(2):strAccent$(0)="èéêî":strAccent$(1)="eeei" StripAccents_return$="" FOR StripAccents_i=1 TO LEN(a$) StripAccents_j = INSTR(strAccent$(0),MID$(a$,StripAccents_i,1)) IF StripAccents_j=0 StripAccents_return$ = StripAccents_return$+MID$(a$,StripAccents_i,1) ELSE StripAccents_return$ = StripAccents_return$+MID$(strAccent$(1),StripAccents_j,1) END_IF NEXT StripAccents_i FREE strAccent$ END_SUB
' ------------------------------------------------------------------------------ ' Remplace une chaine par une autre ' param1: chaine à modifier ' param2: chaine à remplacer ' param3: chaine de remplacement ' ------------------------------------------------------------------------------ SUB StrReplace(a$,b$,c$) IF VARIABLE("StrReplace_return$")=0 THEN DIM StrReplace_return$ WHILE INSTR(a$,b$)<>0 StrSplit(a$,b$) a$=StrSplit_return$(0)+c$+StrSplit_return$(1) END_WHILE StrReplace_return$ = a$ END_SUB
' ------------------------------------------------------------------------------ ' Décompose une chaine de caractère à partir d'un caractère de séparation ' ------------------------------------------------------------------------------ SUB StrSplit(a$,separateur$) IF VARIABLE("StrSplit_return$")=0 THEN DIM StrSplit_return$(2) StrSplit_return$(0)=LEFT$(a$,INSTR(a$,separateur$)-1) StrSplit_return$(1)=RIGHT$(a$,LEN(a$)-LEN(StrSplit_return$(0))-1) END_SUB
' ------------------------------------------------------------------------------ ' Supprime tous les fichiers du répertoire A$ portant l'extension B$ ' ------------------------------------------------------------------------------ SUB DelAllFile(A$,B$) DIM_LOCAL t$,origin$ origin$ = DIR_CURRENT$ : B$ = UPPER$(B$) DIR_CHANGE A$ t$ = FILE_FIND_FIRST$ WHILE t$ <> "_" IF UPPER$(RIGHT$(t$,3)) = B$ THEN FILE_DELETE t$ t$ = FILE_FIND_NEXT$ END_WHILE FILE_FIND_CLOSE DIR_CHANGE origin$ END_SUB
' ------------------------------------------------------------------------------ ' Ajoute à tous les fichiers html du répertoire A$ la chaine de caractère B$ ' ------------------------------------------------------------------------------ SUB HTML_AllAppend(A$,B$) DIM_LOCAL origin$:origin$ = DIR_CURRENT$ DIM_LOCAL t$ DIR_CHANGE A$ t$ = FILE_FIND_FIRST$ WHILE t$<>"_" IF UPPER$(RIGHT$(t$,3)) = "HTM" FILE_OPEN_APPEND 1,t$ FILE_WRITELN 1,B$ FILE_CLOSE 1 END_IF t$ = FILE_FIND_NEXT$ END_WHILE FILE_FIND_CLOSE DIR_CHANGE origin$ END_SUB
' ------------------------------------------------------------------------------ ' Formatage d'une chaine de caractère : ' - 1ere lettre en MAJUSCULE les suivantes en minuscules ' - Supression des accents. ' ------------------------------------------------------------------------------ SUB UPlower(a$) IF VARIABLE("UPlower_return$")=1 THEN FREE UPlower_return$ DIM UPlower_return$ a$=LOWER$(TRIM$(a$)) a$=UPPER$(LEFT$(a$,1))+RIGHT$(a$,LEN(a$)-1) StripAccents(a$):a$=StripAccents_return$ UPlower_return$ = a$ END_SUB
' ------------------------------------------------------------------------------ ' Divers : Remplace "NOM-FONCTION(N)" par "NOM_FONCTION()" ' ------------------------------------------------------------------------------ SUB DelParam(a$) IF VARIABLE("DelParam_return$")=0 THEN DIM DelParam_return$ IF INSTR(a$,"(")<>0 THEN a$=LEFT$(a$,INSTR(a$,"("))+")" WHILE INSTR(a$,"-")<>0 DelParam_return$=LEFT$(a$,INSTR(a$,"-")-1)+"_" a$=DelParam_return$+RIGHT$(a$,LEN(a$)-LEN(DelParam_return$)) END_WHILE DelParam_return$ = a$ END_SUB
' ------------------------------------------------------------------------------ ' Divers : Recherche du mot-clé a$ dans une liste ' ------------------------------------------------------------------------------ SUB FindInList(List%,a$) DIM_LOCAL FindInList_i,FindInList_str$ a$=trim$(a$) IF INSTR(a$,"|")<> 0 THEN a$=LEFT$(a$,INSTR(a$,"|")-1)
IF VARIABLE("FindInList_return")=0 THEN DIM FindInList_return FindInList_return=0 FOR FindInList_i=1 TO COUNT(List%) FindInList_str$=trim$(ITEM_READ$(List%,FindInList_i)) FindInList_str$=LEFT$(FindInList_str$,INSTR(FindInList_str$,"|")-1) IF FindInList_str$=a$ THEN FindInList_return=FindInList_i:EXIT_FOR NEXT FindInList_i END_SUB
' ------------------------------------------------------------------------------ ' La procedure qui a l'air de merdouiller ' ------------------------------------------------------------------------------
SUB HTML_SetBlock(balise$) DIM_LOCAL t$ if VARIABLE("HTML_SetBlock_return$")=0 then DIM HTML_SetBlock_return$ if balise$="li" THEN tmp_str$=tmp_str$+"<ul>"+c$ if balise$="" THEN tmp_str$=tmp_str$+"<div class='code'><pre>"+c$ FILE_READLN 1,t$ WHILE LEN(t$)>1 if balise$<>"" tmp_str$= tmp_str$+"<"+balise$+">"+t$+"</"+balise$+">"+c$ else tmp_str$= tmp_str$+t$+c$ end_if FILE_READLN 1,t$ END_WHILE IF balise$="li" THEN tmp_str$=tmp_str$+"</ul>"+c$ if balise$="" THEN tmp_str$=tmp_str$+"</pre></div>"+c$ FinBloc=1: HTML_SetBlock_return$ = t$ END_SUB
' ****************************************************************************** ' ****************************************************************************** ' PROCEDURE PRINCIPALE DE TRAITEMENT ' ****************************************************************************** ' ****************************************************************************** GO: SELECT NUMBER_CLICK CASE 37 CfgLangue(NUMBER_CLICK) CASE 38 CfgLangue(NUMBER_CLICK) CASE 32 IF FILE_EXISTS(EXEC_RSC$)=0 if message_error_ok("ResHacker non disponible !")=1 THEN RETURN END_IF IF FILE_EXISTS(EXEC_PANO$) = 0 if Langue$="F" EXEC_PANO$="Sélection de l'éditeur PANORAMIC" ELSE EXEC_PANO$="Select PANORAMIC editor " END_IF MsgInfo(EXEC_PANO$) OPEN_DIALOG 20 : FILTER 20, "Editeur Panoramic|PANORAMIC_EDITOR*.exe" EXEC_PANO$= FILE_NAME$(20):DELETE 20 DIR_CHANGE PATH$ IF EXEC_PANO$="_" THEN RETURN END_IF EXECUTE_WAIT "cmd.exe /c " +EXEC_RSC$+" -extract " +EXEC_PANO$+", pano_editor.txt , RCData, KEYWORDS, 1036" MakeHTML("pano_editor.txt") EXECUTE "index.htm" END_SELECT RETURN
' ------------------------------------------------------------------------------ ' ' ------------------------------------------------------------------------------ SUB MakeHTML(Projet$) DIM_LOCAL i,j, Lst_Rubrique$ DIM_LOCAL tmp_file$,t$ DIM_LOCAL Fct$,Type$,Parametre$,groupe$,titre$
IF VARIABLE("SECTION")=0 DIM SECTION:SECTION=40 DIM tmp_str$,FinBloc END_IF
' Init des listes de travail IF OBJECT_EXISTS(SECTION) = 0 DIM NB_SECTION:NB_SECTION = 10 DIM TMP_SECTION : TMP_SECTION = SECTION+NB_SECTION+1 DIM LST_KEYWORD : LST_KEYWORD = TMP_SECTION+1 DIM LST_INDEX1 : LST_INDEX1 = LST_KEYWORD + 1 DIM LST_INDEX2 : LST_INDEX2 = LST_INDEX1 + 1 FOR i=SECTION TO LST_INDEX2: DLIST i : NEXT i ELSE FOR i=SECTION TO LST_INDEX2: CLEAR i:NEXT i END_IF ' ============================================================================ ' Supression des anciens fichiers html et tmp ' ============================================================================ IF DIRNAME$<>"" IF DIR_EXISTS(DIRNAME$)=0 DIR_MAKE DIRNAME$ ELSE DelAllFile(DIRNAME$,"HTM") : ' on supprime tous les fichiers html DelAllFile(DIRNAME$,"TMP") : ' on supprime tous les fichiers tmp END_IF DIRNAME$=DIRNAME$+"/" END_IF
DelAllFile(DIR_CURRENT$,"HTM") : ' on supprime tous les fichiers html DelAllFile(DIR_CURRENT$,"TMP") : ' on supprime tous les fichiers tmp
IF FILE_EXISTS("error.log")=1 THEN FILE_DELETE "error.log"
' ============================================================================ ' Création des blocs index ' ============================================================================ MsgInfo("Création des fichiers d'index") FILE_LOAD LST_INDEX1,PATH$+"styles\index.txt" ITEM_ADD LST_INDEX1," <link href="+d$+"styles/style.css"+d$+" rel="+d$+"stylesheet"+d$+" >" ITEM_ADD LST_INDEX1,"</head>"+c$+"<body>"+c$+" <div id='index'>"+c$+" <ul>"
IF DIRNAME$<>"" FILE_LOAD LST_INDEX2,"styles\index.txt" ITEM_ADD LST_INDEX2," <link href="+d$+"../styles/style.css"+d$+" rel="+d$+"stylesheet"+d$+" >" ITEM_ADD LST_INDEX2,"</head>"+c$+"<body>"+c$+" <div id='index'>"+c$+" <ul>" END_IF
FILE_OPEN_WRITE 3,"error.log" FILE_OPEN_READ 1,Projet$ REPEAT FILE_READLN 1,t$ IF t$="0" FILE_READLN 1,t$:t$=TRIM$(t$):ITEM_ADD LST_KEYWORD,t$ IF Langue$="F" MsgInfo("Recherche des index : "+STR$(COUNT(LST_KEYWORD))+" détectés") ELSE MsgInfo("Search index : "+STR$(COUNT(LST_KEYWORD))+" found") END_IF END_IF IF (t$="3" AND Langue$="F") OR (t$="D" AND Langue$="A") FILE_READLN 1,Type$ : Groupe$=Type$ FILE_READLN 1,Parametre$ IF LEN(Parametre$)<>1 THEN FILE_READLN 1,Groupe$ IF LEN(Groupe$)=1 THEN Groupe$=Type$ Groupe$=MID$(Groupe$,INSTR(Groupe$,":")+2,200) UPlower(Groupe$) : Groupe$ = UPlower_return$ t$=ITEM_READ$(LST_KEYWORD,COUNT(LST_KEYWORD)) ITEM_DELETE LST_KEYWORD,COUNT(LST_KEYWORD) ITEM_ADD LST_KEYWORD,t$+"|"+Groupe$+"|"+Titre$ END_IF IF (t$="a" AND Langue$="F") OR (t$="C" AND Langue$="A") FILE_READLN 1,Titre$ : ' info-bulle dans la liste des mot-clés ' On remplace les guillemets présents dans l'info-bulle par un code compatible html StrReplace(Titre$,chr$(34),""") : Titre$=StrReplace_return$ END_IF UNTIL t$="F" FILE_CLOSE 1
' ---------------------------------------------------------------------------- ' On trie avant de générer la liste des commandes ' ---------------------------------------------------------------------------- if Langue$="F" t$="Création de la liste des mot-clés" ELSE t$="Create list of keyword" END_IF MsgInfo(t$) SORT LST_KEYWORD FOR i=1 TO COUNT(LST_KEYWORD) StrSplit(ITEM_READ$(LST_KEYWORD,i),"|") : Fct$=StrSplit_return$(0) : t$=StrSplit_return$(1) StrSplit(t$,"|") : Groupe$=StrSplit_return$(0) : Titre$=StrSplit_return$(1) ITEM_DELETE LST_KEYWORD,i ITEM_ADD LST_KEYWORD,Fct$+"|"+Groupe$ SORT LST_KEYWORD ' index root t$ = DIRNAME$+Groupe$:StrReplace(t$," ","%20") : t$= StrReplace_return$ ' StrReplace(t$,"","/"):t$=StrReplace_return$ ITEM_ADD LST_INDEX1," <li><a href='"+t$+".htm#"+Fct$+"' title="+chr$(34)+Titre$+chr$(34)+">"+Fct$+"</a></li>" ' index pages
IF OBJECT_EXISTS(LST_INDEX2)=1 t$ = Groupe$ : StrReplace(t$," ","%20") : t$ = StrReplace_return$ ' StrReplace(t$,"","/"):t$=StrReplace_return$ ITEM_ADD LST_INDEX2," <li><a href='"+t$+".htm#"+Fct$+"' title="+chr$(34)+Titre$+chr$(34)+">"+Fct$+"</a></li>" END_IF NEXT i ITEM_ADD LST_INDEX1," </ul>"+c$+" </div><!-- fin d'index -->" FILE_SAVE LST_INDEX1,"index.tmp" CLEAR LST_INDEX1 IF OBJECT_EXISTS(LST_INDEX2)=1 ITEM_ADD LST_INDEX2," </ul>"+c$+" </div><!-- fin d'index -->" FILE_SAVE LST_INDEX2,DIRNAME$+"index.tmp" END_IF CLEAR LST_INDEX2
' ============================================================================ ' Analyse des différents blocs pour chaque commande ' ============================================================================ FILE_OPEN_READ 1,Projet$ FinBloc=0 REPEAT IF FinBloc=0 THEN FILE_READLN 1,t$ FinBloc=0
' ------------------------------------------------------------------------------ ' Section 0 : Nouveau mot-clé ' ------------------------------------------------------------------------------ IF t$="0" FILE_READLN 1,t$ ITEM_ADD SECTION,TRIM$(t$) if Langue$="F": t$= "Analyse en cours : ":ELSE:t$= "Analysis : ":END_IF MsgInfo(t$+STR$(INT(COUNT(SECTION)*1000/COUNT(LST_KEYWORD))/10)+"% ") END_IF
' ------------------------------------------------------------------------------ ' Section 1 : Description - syntaxe ' ------------------------------------------------------------------------------ IF t$="1" FILE_READLN 1,t$ t$="<span class='sous_titre'>"+t$+"</span>" ITEM_ADD SECTION+1,STR$(COUNT(SECTION))+"|"+t$ END_IF ' ------------------------------------------------------------------------------ ' Section 3 : Type / paramètre / Groupe ' ------------------------------------------------------------------------------ IF (t$="3" AND Langue$="F") OR (t$="D" AND Langue$="A") FILE_READLN 1,type$ : FILE_READLN 1,parametre$ : FILE_READLN 1,groupe$ ' Cas particulier : Certaines fonctions ne sont pas catégorisées, on utilise le type dans ce cas IF LEN(groupe$)=1 THEN t$=groupe$: groupe$ = type$:FinBloc=1 groupe$=MID$(groupe$,INSTR(groupe$,":")+2,200) UPlower(groupe$) : groupe$ = UPlower_return$ ITEM_ADD SECTION+3,STR$(COUNT(SECTION))+"|"+" <ul>"+c$+" <li>"+type$+"</li>"+c$+" <li>"+parametre$+"</li>"+c$+" <li>Groupe:"+groupe$+"</li>"+c$+" </ul>" ' mise à jour du groupe pour le mot de passe t$=ITEM_READ$(SECTION,COUNT(SECTION))+"|"+groupe$ IF INSTR(Lst_Rubrique$,groupe$)=0 THEN Lst_Rubrique$=Lst_Rubrique$+"|"+groupe$ ITEM_DELETE SECTION,COUNT(SECTION) ITEM_ADD SECTION,t$ END_IF ' ------------------------------------------------------------------------------ ' Section 4 : Action ' ------------------------------------------------------------------------------ IF (t$="4" AND Langue$="F") OR (t$="E" AND Langue$="A") tmp_str$="<h2>Action</h2>"+c$ HTML_SetBlock("p") : t$ = HTML_SetBlock_return$ ITEM_ADD SECTION+4,STR$(COUNT(SECTION))+"|"+tmp_str$ END_IF ' ------------------------------------------------------------------------------ ' Section 5 : Syntaxe ' ------------------------------------------------------------------------------ IF (t$="5" AND Langue$="F") OR (t$="G" AND Langue$="A") if Langue$="F":t$="Syntaxe":ELSE:t$="Syntax":END_IF tmp_str$="<h2>"+t$+"</h2>"+c$ FILE_READLN 1,t$ : tmp_str$=tmp_str$+"<p class='syntax'> "+t$+"</p>"+c$ HTML_SetBlock("li") : t$ = HTML_SetBlock_return$ ITEM_ADD SECTION+5,STR$(COUNT(SECTION))+"|"+tmp_str$ END_IF
' ------------------------------------------------------------------------------ ' Section 6: Utilisation ' ------------------------------------------------------------------------------ IF (t$="6" AND Langue$="F") OR (t$="H" AND Langue$="A") IF Langue$="F":t$="Utilisation":ELSE:t$="Use":END_IF tmp_str$="<h2>"+t$+"</h2>"+c$ HTML_SetBlock("p") : t$=HTML_SetBlock_return$ ITEM_ADD SECTION+6,STR$(COUNT(SECTION))+"|"+tmp_str$ END_IF ' ------------------------------------------------------------------------------ ' Section 7 : Erreur ' ------------------------------------------------------------------------------ IF (t$="7" AND Langue$="F")OR(t$="I" AND Langue$="A") if Langue$="F":t$="Erreur":ELSE:t$="Error":END_IF tmp_str$="<h2>"+t$+"</h2>"+c$ HTML_SetBlock("li") : t$=HTML_SetBlock_return$ ITEM_ADD SECTION+7,STR$(COUNT(SECTION))+"|"+tmp_str$+c$ END_IF
' ------------------------------------------------------------------------------ ' Section 8 : Exemple ' ------------------------------------------------------------------------------ IF (t$="8" AND Langue$="F")OR(t$="J" AND Langue$="A") IF Langue$="F":t$="Exemple":ELSE:t$="Example":END_IF tmp_str$="<h2>"+t$+"</h2>"+c$ HTML_SetBlock("") : t$=HTML_SetBlock_return$ ITEM_ADD SECTION+8,STR$(COUNT(SECTION))+"|"+tmp_str$ END_IF ' ------------------------------------------------------------------------------ ' Section 9 : Liste des mots-clé associés ' ------------------------------------------------------------------------------ if t$="9" IF Langue$="F":t$="En rapport":ELSE:t$="See also":END_IF tmp_str$="<h2>"+t$+"</h2>"+c$ tmp_str$ = tmp_str$+"<ul>"+c$ FILE_READLN 1,t$:t$=TRIM$(t$) WHILE t$<>"0" AND t$<>"F" IF t$ <> "-" DelParam(t$) : t$=DelParam_return$ : ' Mise en forme de la commande FindInList(LST_KEYWORD,t$) :' recherche dans la liste ' Si la commande est connue IF FindInList_return<>0 StrSplit(ITEM_READ$(LST_KEYWORD,FindInList_return),"|") tmp_str$=tmp_str$+" <li><a href='"+StrSplit_return$(1)+".htm#"+StrSplit_return$(0)+"'>"+StrSplit_return$(0)+"</a></li>"+c$ ELSE ' Sinon on rajoute des parenthèses avant de lancer une nouvelle recherche t$ = t$+"()" : FindInList(LST_KEYWORD,t$) ' Si trouvé : on crée le lien vers la commande IF FindInList_return<>0 StrSplit(ITEM_READ$(LST_KEYWORD,FindInList_return),"|") tmp_str$=tmp_str$+" <li><a href='"+StrSplit_return$(1)+".htm#"+StrSplit_return$(0)+"'>"+StrSplit_return$(0)+"</a></li>"+c$ ELSE ' Sinon cette commande est inconnue, donc pas de lien on met juste un texte t$=LEFT$(t$,LEN(t$)-2) ' et on rajoute l'erreur dans le fichier log FILE_WRITELN 3,"Référence inconnue '"+t$+"' pour la commande "+ITEM_READ$(SECTION,COUNT(SECTION)) tmp_str$ = tmp_str$+" <li>"+t$+"</li>"+c$ END_IF END_IF ELSE tmp_str$ = tmp_str$+" <li>"+t$+"</li>"+c$ END_IF FILE_READLN 1,t$ END_WHILE tmp_str$ = tmp_str$+"</ul>" ITEM_ADD SECTION+9,STR$(COUNT(SECTION))+"|"+tmp_str$ FinBloc=1 END_IF UNTIL FILE_EOF(1)=1 FILE_CLOSE 1
' ============================================================================ ' Création des differentes pages html (par rubrique) ' ============================================================================
' --- Création de l'index principal avec affichage des catégories IF Langue$="F": t$="Ecriture des index":ELSE:t$="Write index...":END_IF MsgInfo(t$) FILE_OPEN_APPEND 1,"index.tmp" FILE_WRITELN 1," <div id="+d$+"rubrique"+d$+">" FILE_WRITELN 1," <h1>Categories :</h1>" While INSTR(Lst_Rubrique$,"|")<>0 StrSplit(Lst_Rubrique$,"|") Lst_Rubrique$=StrSplit_return$(1) IF TRIM$(StrSplit_return$(0))<>"" FILE_WRITELN 1," <a href="+d$+DIRNAME$+StrSplit_return$(0)+".htm"+d$+">"+StrSplit_return$(0)+"</a>" END_IF END_WHILE FILE_WRITELN 1," <a href="+d$+DIRNAME$+Lst_Rubrique$+".htm"+d$+">"+Lst_Rubrique$+"</a>" FILE_CLOSE 1 IF FILE_EXISTS("index.htm")=1 THEN FILE_DELETE "index.htm"
' --- Création des différentes categories FOR i = 1 TO COUNT(SECTION) IF Langue$="F":t$="Création des fichiers html : ":ELSE:t$="Make html files : ":END_IF MsgInfo(t$+STR$(INT(i*100/COUNT(SECTION)))+"%") ' On cherche le mot-clé en cours dans la liste LST_KEYWORD ' afin de connaitre son "groupe" t$ = ITEM_READ$(SECTION,i): FindInList(LST_KEYWORD,t$) IF FindInList_return = 0 MESSAGE t$+" not found ->"+ITEM_READ$(LST_KEYWORD,1) ELSE t$ = ITEM_READ$(LST_KEYWORD,FindInList_return) StrSplit(t$,"|") : tmp_file$ = StrSplit_return$(1)+".htm" IF OBJECT_EXISTS(LST_INDEX2) = 1 THEN tmp_file$ = DIRNAME$ + tmp_file$ IF FILE_EXISTS(tmp_file$) = 0 FILE_COPY DIRNAME$+"index.tmp",tmp_file$ FILE_OPEN_APPEND 1,tmp_file$ IF OBJECT_EXISTS(LST_INDEX2) = 1 FILE_WRITELN 1,"<a title="+d$+"Retour index"+d$+" href="+d$+"../index.htm"+d$+" class="+d$+"goIndex"+d$+"></a>" ELSE FILE_WRITELN 1,"<a title="+d$+"Retour index"+d$+" href="+d$+"index.htm"+d$+" class="+d$+"goIndex"+d$+"></a>" END_IF FILE_WRITELN 1,"<div id='contenu'>" ELSE FILE_OPEN_APPEND 1,tmp_file$ END_IF ' debut bloc instruction FILE_WRITELN 1,c$+c$+"<div id='"+StrSplit_return$(0)+"' class='description'>" FILE_WRITELN 1,"<h1>"+StrSplit_return$(0)+"</h1>" ' Parcours des sections FOR j = 1 TO NB_SECTION - 1 ' Si la section n'est pas vide IF COUNT(SECTION + j) > 0 REPEAT t$ = ITEM_READ$(SECTION + j,1) StrSplit(t$,"|") If VAL(StrSplit_return$(0)) = i ITEM_DELETE SECTION + j, 1 FILE_WRITELN 1,StrSplit_return$(1) END_IF UNTIL COUNT(SECTION+j)=0 OR VAL(StrSplit_return$(0))<>i END_IF NEXT j FILE_WRITELN 1,"</div>" FILE_CLOSE 1 END_IF NEXT i
FILE_RENAME "index.tmp","index.htm"
' on cloture tous les fichiers html IF OBJECT_EXISTS(LST_INDEX2)=1 HTML_AllAppend(DIRNAME$," </div>"+c$+"</body>"+c$+"</html>") FILE_DELETE DIRNAME$+"index.tmp" END_IF HTML_AllAppend(DIR_CURRENT$," </div>"+c$+"</body>"+c$+"</html>") IF Langue$="F":t$="Création des fichiers html : terminé !.":ELSE:t$="Make HTML files: ok!":END_IF MsgInfo(t$) FILE_CLOSE 3
FILEBIN_OPEN_READ 1,"error.log" IF FILEBIN_SIZE(1)=0 FILEBIN_CLOSE 1 : FILE_DELETE "error.log" ELSE FILEBIN_CLOSE 1 END_IF DelAllFile(DIR_CURRENT$,"INI") : ' on supprime tous les fichiers .ini END_SUB
' ------------------------------------------------------------------------------ ' Affiche un message en bas de la fenetre principale ' ------------------------------------------------------------------------------ SUB MsgInfo(msg$) CAPTION STATUS_INFO,msg$ END_SUB
' ------------------------------------------------------------------------------ ' Sélection de la langue ' ------------------------------------------------------------------------------ SUB CfgLangue(N) DIM_LOCAL i:i=37 Langue$ = RIGHT$(CAPTION$(N),LEN(CAPTION$(N))-2) ' CAPTION NUMBER_CLICK,">"+Langue$ ' IF N=37 THEN i = 38 ' CAPTION i," "+RIGHT$(CAPTION$(i),LEN(CAPTION$(i))-2) MsgInfo("Langue sélectionnée :"+Langue$) Langue$=LEFT$(Langue$,1) IF Langue$="E" THEN Langue$="A" ConfigMenu(Langue$) END_SUB
' ------------------------------------------------------------------------------ ' Définition du menu en fonction de la langue ' ------------------------------------------------------------------------------ SUB ConfigMenu(L$) If L$="F" CAPTION 31,"Générer": CAPTION 32,"Aide Panoramic" : CAPTION 33,"A partir d'un fichier" CAPTION 34,"Config":CAPTION 36,"Langue" CAPTION 37,">Français" :CAPTION 38," Anglais" ELSE CAPTION 31,"Make": CAPTION 32,"Panoramic's Help" : CAPTION 33,"From a file" CAPTION 34,"Config":CAPTION 36,"Langue" CAPTION 37," French" :CAPTION 38,">English" END_IF END_SUB ' ------------------------------------------------------------------------------ quit: terminate rem ============================================================================
Pour ceux qui ont la flemme, les fichiers html générés se trouvent sur mon Webdav dans le répertoire "Aide_html". | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 11:26 | |
| Merci Nardo pour ce super outil et merci aussi a Papydall de nous l'avoir rappelé ! Je viens de l'installer, c'est un peu long, mais ça vaut le coût ! Super ! Très belle réalisation, bravo Nardo et encore merci. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 13:33 | |
| Salut Nardo Une fois de plus, le Forum a joué l’un de ses mauvais tours : il a bouffé certains caractères ! Il semble qu’il est insatiable. Ligne 22 - Code:
-
DIM PATH$ : PATH$ = DIR_CURRENT$+""
A remplacer par DIM PATH$ : PATH$ = dir_current$ + "\" Ou mieux - Code:
-
DIM PATH$ : PATH$ = dir_current$ + chr$(92)
Ligne 342 - Code:
-
StrReplace(Titre$,chr$(34),""") : Titre$=StrReplace_return$
A remplacer par StrReplace(Titre$,chr$(34),""") : Titre$ = StrReplace_return$ Bonne journée à tous.
Dernière édition par papydall le Dim 5 Juil 2015 - 19:59, édité 4 fois (Raison : La balise [code ] ... [/ code] a supprimé des caractères !!!!!) | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 17:40 | |
| Pas mieux Papydall ! En fait c'est : Ligne 22 : DIM PATH$ : PATH$ = DIR_CURRENT$+""par : DIM PATH$ : PATH$ = DIR_CURRENT$+"\"Ligne 342: StrReplace(Titre$,chr$(34),""") : Titre$ = StrReplace_return$par : StrReplace(Titre$,chr$(34),""") : Titre$ = StrReplace_return$PS: J"ai mis à jour le fichier ZIP contenant les sources sur mon site... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 19:52 | |
| C’est ce que j’ai écris pourtant. Supprimer des caractères \ et " dans un code ça ne doit en aucun cas être le rôle des balises code !!!!!
NB : en postant mon message, j’ai bien vérifié que c’est bon. En rechargeant la page, je vois que le caractère \ a été bouffé !!!!! C'est inquiétant pour un code. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Utilitaire MakeHLP de Nardo26 Dim 5 Juil 2015 - 20:11 | |
| C'est vrai que pour ce genre de caractères, il faudrait utiliser les CHR$() dans nos codes... Mais en faisant cela, on perd un peu en lisibilité... | |
| | | Contenu sponsorisé
| Sujet: Re: Utilitaire MakeHLP de Nardo26 | |
| |
| | | | Utilitaire MakeHLP de Nardo26 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |