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 |
|
|
| KGF_dll - nouvelles versions | |
|
+13The Gamer Nardo26 silverman Minibug Pedro mindstorm pascal10000 Jicehel papydall Jean Claude JL35 Yannick Klaus 17 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 14 Oct 2015 - 11:53 | |
| Très intéressante cette fonction (comme toutes d' ailleurs). 2+2+2+.... cela fini par faire des secondes voir des minutes cet affaire... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 13:16 | |
| Nouvelle version: KGF.dll V5.15 du 014/10/2015Nouveautés: - correction d'un bug dans GenerateMaskList et GenerateMaskFragmentsModules modifiés: KGF.dll KGF.chmLa doc, l'aide en ligne et les sources sont à jour. J'ai dû remplacer l'objet DLIST par un objet LIST (caché par HIDE). Ces deuxc fonctions effacent automatiquement le contenu de cette LIST avant de mettre les nouveaux résultats. Voici le programme de démo adapté: - Code:
-
' test_GenerateMaskList.bas label start dim a$, separ$, mask_separ$, mask_text$, mask_quote$, mask_out$, res%, g$ dim i%
width 0,1000 : height 0,600 list 1 : top 1,80 : height 1,480 list 2 : hide 2 list 3 : top 3,80 : height 3,480 : left 3,width(1) memo 10 : width 10,950 : bar_both 10 : height 10,80 font_name 10,"Courier" button 20 : top 20,120 : left 20,width(1)+width(3)+20 : caption 20,"Start" on_click 20,start
mask_separ$ = "*" : mask_text$ = "=" : mask_quote$ = "{}"
separ$ = " ,:<>='/*+-" g$ = chr$(34)
a$ = " For a% = 1 to 10:print " + g$ + "fort de toute expérience" + g$ + ": next a%:if a%>=10 then a%=10: ' fin de la ligne"
mask_out$ = string$(len(a$)," ") dll_on "KGF.dll" end
start: res% = dll_call6("GenerateMask",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),adr(mask_out$)) item_add 10,a$ item_add 10,mask_out$
clear 1 res% = dll_call6("GenerateMaskList",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i%=1 to count(2) item_add 1,item_read$(2,i%) next i%
clear 3 res% = dll_call6("GenerateMaskFragments",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i%=1 to count(2) item_add 3,item_read$(2,i%) next i%
return | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 13:36 | |
| J'ai mis 2 à show à droite pour voir. - Spoiler:
|
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 13:43 | |
| ??? Voici le code modifié pour montrer la LIST 2: - Code:
-
' test_GenerateMaskList.bas label start dim a$, separ$, mask_separ$, mask_text$, mask_quote$, mask_out$, res%, g$ dim i%
width 0,1000 : height 0,600 list 1 : top 1,80 : height 1,480 list 2 : top 2,80 : left 2,500 : height 2,480 : ' hide 2 list 3 : top 3,80 : height 3,480 : left 3,width(1) memo 10 : width 10,950 : bar_both 10 : height 10,80 font_name 10,"Courier" button 20 : top 20,120 : left 20,width(1)+width(3)+20 : caption 20,"Start" on_click 20,start
mask_separ$ = "*" : mask_text$ = "=" : mask_quote$ = "{}"
separ$ = " ,:<>='/*+-" g$ = chr$(34)
a$ = " For a% = 1 to 10:print " + g$ + "fort de toute expérience" + g$ + ": next a%:if a%>=10 then a%=10: ' fin de la ligne"
mask_out$ = string$(len(a$)+1," ") dll_on "KGF.dll" end
start: res% = dll_call6("GenerateMask",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),adr(mask_out$)) item_add 10,a$ item_add 10,mask_out$
clear 1 res% = dll_call6("GenerateMaskList",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i%=1 to count(2) item_add 1,item_read$(2,i%) next i%
clear 3 res% = dll_call6("GenerateMaskFragments",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i%=1 to count(2) item_add 3,item_read$(2,i%) next i%
return Et voici le résultat, après le 3ème clic sur "Start": Je ne vois pas où est le problème...
Dernière édition par Klaus le Mer 14 Oct 2015 - 22:07, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 15:16 | |
| apparemment kgf ne s'est pas chargé normalement. Je l'ai repris et l'exemple marche. Reste à voir avec un fichier source. EDIT: bon je n'avais pas modifié la ligne, c'était object_internal je crois au lieu de hande(x) Mais tu devrais modifier mask_out$ comme ceci: mask_out$ = string$(len(aa$)+1," ")car string$() doit avoir le premier paramètre > 0, et si la chaine est vide, il y a erreur. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 22:09 | |
| - Citation :
- object_internal je crois au lieu de hande(x)
Effectivement. Il faut que ce soit handle(x) car j'ai dû passer de DLIST à LIST. La doc est à jour, à ce niveau-là. - Citation :
- mask_out$ = string$(len(aa$)+1," ")
C'est fait. Merci, Cosmos70. | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 22:15 | |
| Est-ce que tu as essayé le programme que j'ai mis, en chargeant un fichier source? Au début ça marche bien, et au bout d'un moment j'ai un blocage de la dll. Si tu n'as rien changé, la commande est inutilisable. (en tout cas chez moi). |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 22:34 | |
| Nouvelle version: KGF.dll V5.16 du 014/10/2015
Nouveautés: - correction d'un bug dans GenerateMaskList et GenerateMaskFragments
Modules modifiés: KGF.dll
La doc est inchangée. Les soruces sont à jour.
Le bug concernait des lignes à analyser dans lesquelles il n'y avait aucun séparateur - un oubli.
| |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 22:52 | |
| Apparemment le bug a disparu. Par contre je viens de constater que les chaines sont coupées par les séparateurs. Il me semblait évident pour un programme basic, que ce qui est entre accolades ou guillemets, selon qu'on regarde la ligne basic de départ, ou le texte du masque, de ne pas couper les mots à l'intérieur des chaines. Je ne sais pa si c'est possible aussi d'y inclure les guillemets, mais comme en Panoramic, on n'y arrive pas, je ne sais pas si là on peut.
Je sais je devient chiant, mais le but est la rapidité du code, sinon je n'ai pas besoin de dll. Je ne sais pas si vous avez un intérêt pour ce programme. Si c'est pas le cas, alors ne te casse pas la tête.
Une question: Je regarde les instructions pour imprimer, et là je suis surpris. Je n'avais jamais regardé comment on procédait. Je pensais qu'on imprimait un picture, et je ne sais pas si je continu sur le picture, ou si je dois m'imaginais la programmation sur des lignes pour l'imprimante directement avec les fonctions de texte, sans avoir un aperçu de ce que je fais. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 22:59 | |
| - Citation :
- Par contre je viens de constater que les chaines sont coupées par les séparateurs.
Si j'ai bien compris, tu voudrais avoir dans la LIST de résultat, en une seule ligne tout ce qui se trouve entre guillemts, les guillemets y compris ? Confirme-moi stp si j'ai bien compris. Si c'est cela, c'est faisable sans problème. - Citation :
- Je pensais qu'on imprimait un picture...
Oui, tu peux imprimer un picture, avec les fonctions de KGF.dll. Plus précisément, c'est la fonction PrinterFunction qui le fait, avec le code fonction 7. Bon, il y a un peu de gestion autour à faire, mais c'est cette fonction qui imprime l'image. Tu peux la positionner et dimensionner comme tu veux. | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 23:44 | |
| - Klaus a écrit:
- Si j'ai bien compris, tu voudrais avoir dans la LIST de résultat, en une seule ligne tout ce qui se trouve entre guillemts, les guillemets y compris ? Confirme-moi stp si j'ai bien compris. Si c'est cela, c'est faisable sans problème.
Oui tu as bien compris. La fonction masque, tel qu’elle est définie est pour faire la coloration syntaxique. Donc couper les mots à l'intérieur d'une chaine ne sert pas. Pour l'imprimante, je regarderai plus tard. A cette heure-ci, je dois penser au lendemain, même si c'est déjà commencé. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Oct 2015 - 23:57 | |
| Nouvelle version: KGF.dll V5.17 du 015/10/2015
Nouveautés: - changement dans GenerateMaskFragments: considérer ".." comme un seul fragment
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
Alors, charge la nouvelle version qui fait ça... | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 5:49 | |
| Merci Klaus, c'est fait et ça marche. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 10:34 | |
| Nouvelle version: KGF.dll V5.18 du 015/10/2015Nouveautés: - correction de bugs dans GenerateMaskFragmentsModules modifiés: KGF.dllLa doc est inchangée. Les sources sont à jour. Et voici le tout appliqué à une visualisation dans un GRID (limité à 500 lignes et 200 colonnes, dans cette version du programme de démo): - Code:
-
' test_GenerateMaskList_cosmos70.bas
dll_on "KGF.dll"
label start, open, montrer dim a$, separ$, mask_separ$, mask_text$, mask_quote$, mask_out$ dim res%, g$ , i% , j , f$ ,h$, lig%, col%, x%, y%
full_space 0 list 2 : hide 2 button 20 : caption 20,"Open" : on_click 20,open button 21 : caption 21,"Start" : on_click 21,start : left 21,width(20)+5 list 5 : left 5,420 : top 5,80 : width 5,500 : height 5,450 : hide 5 grid 3 : full_space 3 : height 3,height(3)-30 : top 3,30 grid_row 3,501 : grid_column 3,201 : on_click 3,montrer for i%=2 to 501 grid_write 3,i%,1,str$(i%-1) next i% for i%=2 to 201 grid_write 3,1,i%,str$(i%-1) next i% open_dialog 6 mask_separ$ = "*" : mask_text$ = "=" : mask_quote$ = "{}" separ$ = " ,:<>='/*+-" : g$ = chr$(34) end ' ============================================ open: f$ = file_name$(6) : if f$ <> "_" then file_load 5,f$ return montrer: x% = mouse_x_left_down(3) y% = mouse_y_left_down(3) col% = grid_x_to_column(3,x%) lig% = grid_y_to_row(3,y%) f$ = grid_read$(3,lig%,col%) message f$ return start: if count(5) > 0 for j = 1 to count(5) if j>500 then exit_for a$ = item_read$(5,j) if a$ <> "" caption 0,a$ +"<<== len(a$)=" + str$(len(a$)) + " j="+str$(j) +" / "+str$(count(5)) mask_out$ = string$(len(a$)+1," ") res% = dll_call6("GenerateMask",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),adr(mask_out$)) res% = dll_call6("GenerateMaskFragments",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i% = 1 to count(2) if count(2) > 0 h$ = item_read$(2,i%) grid_write 3,j+1,i%+1,h$ end_if next i% end_if next j end_if return Un clic sur n'importe quelle case du GRID affiche le contenu complet de la case ! | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 12:30 | |
| C'est quoi le bug? Est-ce que la version que j'ai chargé ce matin, y est?. J'aurai été perfectioniste, j'aurai demandé autre chose. Non quand-même pas! |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 13:13 | |
| Il y a un problème avec les chaines. Les guillemets ne s'affichent pas. Il faudrait soit supprimer la dernière, soit mettre autre chose comme une accolade à la fin. Le guillemet de début vaudrait mieux le garder si ça marche. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 13:53 | |
| Ce n'est pas un problème de la fonction de KGF.dll, mais un problème de la gestion des chaînes de caractères de Panoramic. Si tu regardes bien, le contenu de l'objet LIST retourné par la fonction contient bien les guillemets entourant les chaînes de caractères. Mais l'affectation dans le GRID ou l'affichage par la commande MESSAGE supprime ces guillemets. Voici une versio modifiée du programme de démo qui en tient compte, sans modification de la DLL: - Code:
-
' test_GenerateMaskList_cosmos70.bas
dll_on "KGF.dll"
label start, open, montrer dim a$, separ$, mask_separ$, mask_text$, mask_quote$, mask_out$ dim res%, g$ , i% , j , f$ ,h$, lig%, col%, x%, y%
full_space 0 list 2 : hide 2 button 20 : caption 20,"Open" : on_click 20,open button 21 : caption 21,"Start" : on_click 21,start : left 21,width(20)+5 list 5 : left 5,420 : top 5,80 : width 5,500 : height 5,450 : hide 5 grid 3 : full_space 3 : height 3,height(3)-30 : top 3,30 grid_row 3,501 : grid_column 3,201 : on_click 3,montrer for i%=2 to 501 grid_write 3,i%,1,str$(i%-1) next i% for i%=2 to 201 grid_write 3,1,i%,str$(i%-1) next i% open_dialog 6 mask_separ$ = "*" : mask_text$ = "=" : mask_quote$ = "{}" separ$ = " ,:<>='/*+-" : g$ = chr$(34) end ' ============================================ open: f$ = file_name$(6) : if f$ <> "_" then file_load 5,f$ return montrer: x% = mouse_x_left_down(3) y% = mouse_y_left_down(3) col% = grid_x_to_column(3,x%) lig% = grid_y_to_row(3,y%) if left$(grid_read$(3,lig%,col%),1)=chr$(34) message chr$(34)+grid_read$(3,lig%,col%)+chr$(34) else message grid_read$(3,lig%,col%) end_if return start: if count(5) > 0 for j = 1 to count(5) if j>500 then exit_for a$ = item_read$(5,j) if a$ <> "" caption 0,a$ +"<<== len(a$)=" + str$(len(a$)) + " j="+str$(j) +" / "+str$(count(5)) mask_out$ = string$(len(a$)+1," ") res% = dll_call6("GenerateMask",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),adr(mask_out$)) res% = dll_call6("GenerateMaskFragments",adr(a$),adr(separ$),adr(mask_separ$),adr(mask_text$),adr(mask_quote$),handle(2)) for i% = 1 to count(2) if count(2) > 0 if left$(item_read$(2,i%),1)=chr$(34) grid_write 3,j+1,i%+1,chr$(34)+item_read$(2,i%)+chr$(34) else grid_write 3,j+1,i%+1,item_read$(2,i%) end_if end_if next i% end_if next j end_if return | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Jeu 15 Oct 2015 - 14:38 | |
| Oui je sais que kgf n'est pas en cause pour les guillemets.
Mais là tu m'apprends quelque chose. J'ignorais qu'il grid récupérait les guillemets. J'avais fait le teste sur la lecture du list comme tu le fais sur le grid, il ne le récupère pas. Je vais faire des testes en ce sens, sans savoir combien de colonnes il faut définir. Ca fait quand même une sacrée grille si on a plus de 5000 lignes.
Mais si je vois que la récupération est dans list 2 de ton programme. Il y a peut-être un traitement préliminaire dans mon programme. Je verrais cela d'ici ce soir. |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 16 Oct 2015 - 15:45 | |
| bjr klaus la documentation chm de kgf ne fonctionne pas les pages de droite sont vides!!!!!!! heureusement que tu fait un pdf en même temps
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 16 Oct 2015 - 16:18 | |
| Essaie de recharger le fichier CHM à partir de mon site, de mon site miroir ou de mon webdav. Je viens de vérifier. Voici ce que ça donne avec le fichier résident chez moi: Et voici la même page ouverte avec l'aide en ligne (le lien est dans la signature de tous mes posts): Tout est normal, non ? je te déconseille vivement le PDF. Il est ancien, et il n'est plus maintenu. Il y a donc des incohérences par rapport à la version actuelle de KGF.dll, et pas mal de fonctions maquantes... | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 16 Oct 2015 - 16:37 | |
| c bon il re fonctionne moi pas compris!! dsl
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 16 Oct 2015 - 16:55 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 18 Oct 2015 - 10:08 | |
| Nouvelle version: KGF.dll V5.19 du 018/10/2015
Nouveautés: - correction d'un bug dans GenerateMaskFragments
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 25 Oct 2015 - 10:17 | |
| Nouvelle version: KGF.dll V5.20 du 25/10/2015
Nouveautés: - correction d'un bug dans CreateIsamKey
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
Ce bug conduisait à une valeur de clé mal formée, dans certains cas, pour des clés de numéro supérieur à 1. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Mer 28 Oct 2015 - 14:42 | |
| Salut Klaus Fonction SpeakVoices de KGF.dll L’exemple de code donné : - Code:
-
dim res%, voix$ ' récupérer la liste des voix installées res% = dll_call1("SpeakVoices",adr(voix$)) message voix$
Retourne un message vide. En effet, la chaîne voix$ n’a pas été initialisée. Le code suivant fonctionne bien - Code:
-
dim res%, voix$ ' récupérer la liste des voix installées voix$ = string$(255," ") dll_on "kgf.dll" res% = dll_call1("SpeakVoices",adr(voix$)) message voix$
Je développe un programme où j’utilise les fonctions de gestion du texte prononcé : SpeakMode / Speak / SpeakVoices. J’aimerais bien avoir une fonction pour arrêter la prononciation du texte en cours, genre SpeakStop ou SpeakEnd qui mettra fin à la parlotte sans aller jusqu’au bout. Est-ce possible ? Merci d’avance pour tout ce que tu fais. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |