Mai 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 | 31 | | | Calendrier |
|
| | Besoin d'éclaircissement sur #include | |
| | Auteur | Message |
---|
yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Besoin d'éclaircissement sur #include Sam 2 Aoû 2014 - 18:38 | |
| Bonjour à tous,
J'ai toujours préféré compartimenter mes programmes et je voudrais pouvoir avoir autant de fichiers que de fonctions importantes. Voici mon interrogation :
Dans mon fichier principal, il y a mon programme
#include "test.bas" test()
Dans le fichier test.bas il y a :
sub test() print "test réussi" end_sub
Rien de bien compliqué, mais il m'envoie aux fraises "(150) Not correct SUB name. Line : 1"
Puis je m'entêter ou c'est peine perdue ?
Merci d'avance et bravo Jack !! | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Besoin d'éclaircissement sur #include Sam 2 Aoû 2014 - 19:54 | |
| Je pense que ce n'est pas grand chose. Tu peux déjà mettre ton include après ton appel ton programme peux avoir une fin, ce qui donne: - Code:
-
test() end
#include "test.bas" En fait tu définit la sub avant ton programme principal et il n'aime pas forcément ... Le principe c'est d'écrire le programme qui appelle les sous programme, de mettre un end pour terminer la partie "programme principal" puis d'écrire ses sub. D'autre part aux premiers lancement, il faut bien enregistrer son programme principal pour définir le chemin où se trouve le fichier à inclure. | |
| | | Invité Invité
| Sujet: Re: Besoin d'éclaircissement sur #include Sam 2 Aoû 2014 - 20:43 | |
| Tel que tu le définis, le programme panoramic a la procédure devant. L'interpréteur ne peux pas lire la suite, c'est à dire les commandes qui appellent les subs. Mais c'est très facile à résoudre en procédant dans cet ordre. Il suffit d'encadrer la sub d'un teste qui ne fonctionnera pas. Exemple: - Code:
-
If 1=2 sub machin() ' ... ' ... end_sub end_if ' la on appelle la sub: machin() end
Une autre façon est de mettre un goto, mais je préfère ma solution - Code:
-
label saut goto saut ' appel de la sub: machin() end saut: sub machin() ' ... ' ... end_sub
|
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Merci Sam 2 Aoû 2014 - 23:48 | |
| Merci messieurs,
Ce n'était effectivement pas grand chose, mais il me manquait la logique.
Y'a t'il moyen à votre connaissance de trouver un pdf avec les commandes détaillées de Panoramic ?
Merci encore et bonne nuit à tous | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 0:33 | |
| Salut tout le monde. Nardo26 a fait un programme pour générer l’aide Panoramic en pages html. Je vous remets ce programme après avoir lui apporté quelques modifications (améliorations ?). Pour pouvoir utiliser ce programme, vous devez disposer de ResHacker.exe (à télécharger éventuellement à partir d’internet). Vous devez également adapter les chemins en lignes 13 et 14. Après le RUN, cliquez sur le menu Générer et choisissez Aide Panoramic. Le programme se déroule en affichant son état d’avancement et si tout ira bien, il affichera, dans votre navigateur par défaut, une page Aide Panoramic où vous pouvez naviguer à votre guise. - Code:
-
rem ============================================================================ ' MakeHLP.bas ' Génération de l'aide Panoramic en pages html ' Auteur : Nardo26 ' Remis à jour par PAPYDALL rem ============================================================================ Run() end rem ============================================================================ SUB Run() LABEL GO, CfgResHacker, Quit,nexti DIM PATH$ : PATH$ = DIR_CURRENT$+"\" DIM EXEC_PANO$: EXEC_PANO$ = "C:\Users\acer\Desktop\Panoramic\PANORAMIC_EDITOR_V_0.9.25.exe" : ' Chemin de l'Editeur à adapter DIM EXEC_RSC$ : EXEC_RSC$ = "C:\UTIL\ResHacker\ResHacker.exe ": ' Chemin de ResHacker à adapter DIM DIRNAME$ : DIRNAME$ = "fichiers" DIM c$,d$ : c$ = CHR$(10) : d$ = CHR$(34) DIM STATUS_INFO : STATUS_INFO = 39 DIM Langue$ : Langue$ = "F" 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$ : 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) ' STOP ' END_IF if FindInList_return = 0 then goto nexti 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 nexti: 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 ============================================================================
Dernière édition par papydall le Dim 3 Aoû 2014 - 18:40, édité 1 fois | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Gloups ça ne fonctionne pas Dim 3 Aoû 2014 - 7:32 | |
| Bonjour Papydall et merci,
J'ai téléchargé Reshacker.exe et adapté les chemins en lignes 13 et 14. Après le RUN, j'ai cliqué sur le menu Générer et choisis Aide Panoramic.
C'est après que l'affaire s'est corsée. J'ai tenté de charger l'éditeur Panoramic sans succès et il a planté ligne 290. (impossible de charger le fichier)
Que dois je faire ?
Merci
| |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 10:24 | |
| En principe, il n'y a aucune raison. Si tu peux essaye de redémarrer ta machine. Sinon, si jamais une erreur de manipulation avait fait modifié Panoramic_editor (je ne pense pas), tu peux l'écraser avec une version que tu retéléchargerais. Tu as ce message dès le lancement ou quand tu exécute un programme ? Si tu as encore le problème après le redémarrage de ta machine, on verra. | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 10:28 | |
| En fait, je suis sur mac et j'ai windows sur virtualbox, c'est certainement la cause du problème. Ce n'est pas grave. Merci en tout de votre aide à tous.
Fred | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 11:04 | |
| Mais ça remarche ? Mais sur virtualbox ça devrait même si j'avoue ne pas maîtriser cet environnement. Si ça marche bien, on pourrait mettre un petit bout du tuto avec comment bien paramétrer tout pour que ça marche bien dans cet environnement (s'il y a quelque chose à faire, ce qui n'est pas sûr). Je ne maitrise pas la virtualbox, mais tu dois pouvoir faire l'équivalent d'un reset. Sinon regarde dans le gestionnaire de tache et ferme tout ce qui peut commencer par Panoramic, puis supprime d'éventuel vieiille versions qui pourraient être dans les fichiers temporaires de windows.
| |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 12:03 | |
| Bonjour yop73. Je suis désolé : c’était de ma faute (je suis parfois un peu étourdi !). Tel quel, le programme ne peut pas se dérouler comme il faut car il lui manque quelque chose : Ligne 290 : - Code:
-
FILE_LOAD LST_INDEX1,PATH$ + "styles\index.txt" Le programme ne trouve pas … styles\index.txt et … style.css. Pour me faire pardonner j’ai mis sur mon Webdav un zip MakeHLP.zip qui contient tout ce qu’il faut. Télécharge MakeHLP.zip et dézipe-le où tu voudras : il contient le dossier styles, le programme Pano_Help_HTML.bas ainsi que ResHacker.exe. Adapte les chemins en ligne 13 et 14 et lance le programme : ça marchera, j’en suis sûr (ou presque !) Rappel : Mon webdav : username : panoramic@papydall Password : panoramic123 | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 14:31 | |
| Merci Papydall, je suis rassuré que l'environnement virtualbox n'y soit pour rien. Je vais m'y recoller.
Je vais suivre aussi les conseils de Jicehel, car personne n'est plus intelligent que tout le monde.
Merci encore et je vous tiens au jus | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 14:58 | |
| Désolé d'embêter le monde, mais... ...Ce coup ci, c'est la ligne 301 qui s'emballe car le fichier n'est pas créé. Suite au prochain épisode | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 17:35 | |
| - yop73 a écrit:
- Désolé d'embêter le monde, mais...
Tu n’embêtes personne, alors ne sois pas désolé. Nous apprenons tous les uns des autres et ce genre d’échanges d’informations peut être profitable pour beaucoup. Ligne 12 : - Code:
-
DIM PATH$ : PATH$ = DIR_CURRENT$+"\" La variable système DIR_CURRENT$ retourne le nom du répertoire courant qui peut être différent de celui à partir duquel le programme est lancé ! En réalité le répertoire retourné est le dernier répertoire utilisé par Panoramic et non celui du programme en cours. Pour forcer Panoramic à considérer le répertoire à partir duquel le programme est lancé comme répertoire courant, tu dois (après avoir chargé le programme et avant son exécution) sauvegarder le même programme dans le même répertoire. Pour te rassurer qu’il s’agit bien du répertoire voulu, tu peux ajouter à la suite de la ligne 12 - Code:
-
: message path$ : stop Si tu obtiens le bon répertoire, tu peux continuer, sinon sauvegarde le programme dans le bon répertoire et essaie à nouveau. | |
| | | yop73
Nombre de messages : 23 Age : 58 Localisation : Isère Date d'inscription : 11/05/2009
| Sujet: Re: Besoin d'éclaircissement sur #include Dim 3 Aoû 2014 - 22:14 | |
| Rien ne va plus, maintenant c'est la ligne 295 qui fait des siennes (impossible de charger le fichier)
| |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Besoin d'éclaircissement sur #include Lun 4 Aoû 2014 - 18:03 | |
| Il n’y a aucune raison pour que ça ne marche pas ! Bon, reprenons du début. Télécharge (sur mon Webdav) MakeHLP.zip En plus de Pano_Help_HTML.bas et ReshHacker.exe, il contient un dossier styles qui comporte deux fichiers index.txt et style.css.
Crée un dossier où tu voudras et appelle-le ce qui te convient. Dans ce dossier, copie le dossier styles (avec ses deux fichiers) ainsi que le fichier Pano_Help.HTML.bas Charge dans l’éditeur Panoramic le fichier Pano_Help_HTML.bas , adapte les chemins dans les lignes 13 et 14 et avant de l’exécuter, sauvegarde-le dans le même dossier que tu as déjà créé. Ceci force Panoramic à considérer le répertoire courant comme étant le répertoire du fichier .bas. Exécute maintenant le fichier .bas. : Générer puis Aide panoramic Ça doit marcher : le programme affiche des messages d'informations. Il créé dans le dossier courant un nouveau dossier fichiers qui contiendra les différentes pages htm ainsi qu’un fichier index.htm qu’il lancera automatiquement. | |
| | | RMont
Nombre de messages : 233 Age : 81 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Besoin d'éclaircissement sur #include Mar 5 Aoû 2014 - 18:24 | |
| bonjour a tous il y a bien longtemps que je n'ai pas demander de l'aide.
pour papydal. j'ai suivi la procédure du post de 18h03. je pense avoir bien adapté les lignes 13 et 14 mais je rencontre le problème suivant : des le lancement du prg ,dans la fenetre je reçois le message info de la ligne 41 " reshacker non disponible" j'ai mis reshacker dans le même dossier que makehlp. dans le menu generer il n'y a pas d'action sur les 2 sous menus. qu'est ce que je fais comme erreur dans mes chemins (13 et 14)
| |
| | | Invité Invité
| Sujet: Re: Besoin d'éclaircissement sur #include Mar 5 Aoû 2014 - 20:36 | |
| Je viens de faire l'essai du programme pour savoir pourquoi certains ont des problèmes.
Il y a une erreur avec : DIM PATH$ : PATH$ = DIR_CURRENT$ +"\"
dir_current$ ajoute d’office "\" à la fin. Donc : DIM PATH$ : PATH$ = DIR_CURRENT$ :' sans plus.
Une fois cette erreur corrigée, au bout d'un moment, le fichier index.html est créé. Donc à partir de là, pour moi le programme marche. |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Besoin d'éclaircissement sur #include Mar 5 Aoû 2014 - 21:01 | |
| Merci Cosmos70 pour cet éclaircissement. Chez moi le "\" est nécessaire, mais bon si ça marche c'est tant mieux! Il est évident que toutes ces erreurs de fonctionnement du programme que vous avez rencontrées sont dues à des problèmes de chemins pour les fichiers nécessaires à son bon fonctionnement. J’ai modifié le programme en y indiquant des chemins absolus pour les fichiers utilisés par le programme. Téléchargez (à partir de mon Webdav) Pano_Help.zip Il contient un dossier Pano_Help. Enregistrez ce dossier (Pano_Help) dans C:\ de sorte que vous ayez un dossier C:\Pano_HelpCe dossier doit contenir : • Un dossier styles qui contient lui-même les deux fichiers style.css et index.txt • Le fichier ResHacker.exe• Le fichier Panoramic_Editor_V_0.9.25.exe• Le programme Pano_Help_HTML.bas Chargez ce dernier programme dans l’éditeur Panoramic et exécutez-le tel quel. Choisissez Générer puis Aide Panoramic | |
| | | Invité Invité
| Sujet: Re: Besoin d'éclaircissement sur #include Mar 5 Aoû 2014 - 21:35 | |
| - Papydall a écrit:
- Merci Cosmos70 pour cet éclaircissement.
Chez moi le "\" est nécessaire, mais bon si ça marche c'est tant mieux! Là c'était facile. il y avait une erreur de lecture de fichier vers la ligne 290. En mettant un message pour savoir ce qui était lu, j'vais un retour de z:\\la suite dont j'ai oublié le nom. Cela dit, il me semblait qu'avant je rajoutais aussi un "\" à dir_change. Si il y a eu un changement, on n'a pas été informé. Il faudrait faire l'essai avec d'anciens éditeurs. Moi j'ai d'autres chats à fouetter! Quelqu'un a dit: !!! LE SAVOIR NE VAUT RIEN S'IL N'EST PAS PARTAGE !!! Par contre, c'était pas évident au départ, car le message d'erreur, comme souvent maintenant se trouve caché en dessous de la fenêtre. Il faut aller du côté de l'éditeur pour le voir. C'est un vrai problème. Cela a déjà été signalé, et pourtant, tant que c'est des messages Panoramic, cela devrait pas être compliqué à Jack de rajouter la fonction qui remet le message au premier plan. |
| | | Invité Invité
| Sujet: Re: Besoin d'éclaircissement sur #include Mar 5 Aoû 2014 - 22:24 | |
| De nouveau de retour.
En voyant le résultat, j'ai pensé que ce serait intéressant finalement de garder ce programme. Il était dans un disque z: , disque virtuel. Donc à la première coupure il était perdu.
En essayant de refaire la même chose dans un de mes dossier, et bien là, il faut rajouter "\" . Donc il faut procéder par teste. Si dir_current$ a plus de 3 caractères, il faut ajouter l'anti-slash.
If len(dir_current$) > 3 then path$ = path$ + "\" |
| | | Contenu sponsorisé
| Sujet: Re: Besoin d'éclaircissement sur #include | |
| |
| | | | Besoin d'éclaircissement sur #include | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |