FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Immortaliser les photos de famille
par Jean Claude Hier à 21:24

» Concours de Morpions
par jjn4 Hier à 16:34

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Utilitaire MakeHLP de Nardo26

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5531
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Utilitaire MakeHLP de Nardo26   Ven 3 Juil 2015 - 4: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 Styles

Bref, 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 ! Laughing

Salut Bernard!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Sam 4 Juil 2015 - 23: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. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Sam 4 Juil 2015 - 23:26

Ok,
C'est vrai que le STOP dans le test du FindInList est un peu "bourrin" Laughing (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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
papydall

avatar

Nombre de messages : 5531
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 0: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. king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 10: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$()...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 11: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".
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 12: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 ! cheers

Très belle réalisation, bravo Nardo et encore merci. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5531
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 14: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),"&quot") : Titre$ = StrReplace_return$


Bonne journée à tous.


Dernière édition par papydall le Dim 5 Juil 2015 - 20:59, édité 4 fois (Raison : La balise [code ] ... [/ code] a supprimé des caractères !!!!!)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 18:40

Pas mieux Papydall ! Laughing

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),"&quot") : Titre$ = StrReplace_return$

PS: J"ai mis à jour le fichier ZIP contenant les sources sur mon site...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
papydall

avatar

Nombre de messages : 5531
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 20:52

C’est ce que j’ai écris pourtant.
Supprimer des caractères \ et &quot 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Utilitaire MakeHLP de Nardo26   Dim 5 Juil 2015 - 21: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é... Neutral
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Contenu sponsorisé




MessageSujet: Re: Utilitaire MakeHLP de Nardo26   

Revenir en haut Aller en bas
 
Utilitaire MakeHLP de Nardo26
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» utilitaire USB
» Petite réflexion personnelle
» Installer plusieurs logiciels en une seule opération
» pas un panoramic mais utilitaires delphi.
» Utilitaire : Captureur d'écran

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: