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 | |
|
+8JL35 Marc papydall Jicehel Yannick pascal10000 Minibug Klaus 12 participants | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 8 Jan 2016 - 12:41 | |
| KGF.dll V5.69 du 08/01/2016
Nouveautés: - Synedit: nouveaux codes opération pour SyneditFunction - Synedit: autoriser F1 à chercher une page d'aide sur MSDN en ligne
Modules modifiés: KGF.dll KGF.chm
La doc est et les sources sont à jour.
Le fonctionnement du traitement de la touche F1 (Aide contextuelle) a été étendu. En fonction d'un paramètre configuré via le code 35 de SyneditFunction, on peut autoriser F1 à chercher la page concernée sur le site de MSDN en ligne, si l'information n'est pas trouvée dans Panoramic.chm/FBPano.chm, ou dans KGF.chm, au lieu d'afficher l'aide de Synedit_Editor. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Sam 9 Jan 2016 - 13:32 | |
| Bonjour Klaus ! Bonjour a tous ! Une petite question concernant les fonctions grid de KGF. J'ai repris le code que tu donnes dans l'aide, mais cela ne fonctionne pas. Pourquoi ? Ai je loupé quelque chose... PS : j'utilise la toute dernière version de Panoramic. - Code:
-
dim res% , RGB%, FRGB% , chemin$
grid 17
chemin$=DIR_CURRENT$+"" : DLL_ON chemin$+"KGF.DLL"
' remplacer ONDRAWCELL, effacer liste des couleurs personnalisées res% = dll_call6("GridFunction",object_internal(17),8,1,0,0,0)
' changer la couleur d'une colonne sans partie fixes RGB(255,255,255) : ' écriture blanche FRGB% = RGB% RGB(255,0,0) : ' fond rouge res% = dll_call6("GridFunction",object_internal(17),7,2,0,RGB%,FRGB%)
' changer la couleur d'une ligne sans parties fixes RGB(255,255,0) : ' écriture jaune FRGB% = RGB% RGB(0,0,255) : ' fond bleu res% = dll_call6("GridFunction",object_internal(17),6,0,3,RGB%,FRGB%)
' changer la couleur d'une cellule, mais pas dans parties fixes RGB(0,0,255) : ' écriture bleue FRGB% = RGB% RGB(255,255,0) : ' fond jaune res% = dll_call6("GridFunction",object_internal(17),2,2,3,RGB%,FRGB%)
END
sub RGB(R%,G%,B%) : ' produire une valeur RGB valide RGB% = (B%*256+R%)*256+G% end_sub | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 9 Jan 2016 - 14:18 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 10 Jan 2016 - 12:55 | |
| KGF.dll V5.70 du 10/01/2016Nouveautés: - AddStringListItem: gérer l'option "multi-lignes"Modules modifiés: KGF.dll KGF.chmLa doc est et les sources sont à jour. Cette fonction ajoute normalement une seule ligne dans un StringList. J'y ai ajouté une possibilité d'ajouter une série de lignes en un seul appel. Pour cela, la chaîne de caractères passée en paramètre doit commencer par le caractère "²". Dans ce cas, le second caractère est interprété comme un caractère de séparation des chaînes individuelles. Et le reste de la chaîne de caractères est composé des chaînes individuelles, séparées par le caractère de séparation. Exemple: - Code:
-
s$ = "²#chaîne 1#chaîne 2#chaîne 3" | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Jan 2016 - 23:34 | |
| Bonsoir Klaus,
As tu pris un peu de temps pour regarder le problème que j'ai soulevé samedi ? Je veux juste savoir si cela vient de moi ou bien s'il y a autre chose qui cloche...
Je ne t'en demande pas plus ! Je sais que tu es pas mal occupé de ce temps entre Synedit et le reste...
Merci d'avance. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Jan 2016 - 23:41 | |
| Oui, Minibug. Et je me heurte à un vrai problème, introduit depuis le début des versions 27ix. Apparemment, Jack est passé à Delphi V7 pour la réalisation de Panoramic. Et certaines choses conduisent à des problèmes de compatibilité. J'ai contacté Jack par MP à ce sujet, avec des indications précises, mais il est évidemment maître de son temps. Ce que je peux te dire, c'est que j'ai fait des investigations très poussés et j'ai relevé avec précision ce qui ne va pas. Et d'ailleurs, malheureusement, cela ne touche pas que l'objet GRID. D'autres objets sont touchés également. C'est dû à une incompatibilité entre les deux versions du VCL (Visual Component Library), élément clé de Delphi. Donc, patience... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mar 12 Jan 2016 - 11:56 | |
| Humm d'accord, Merci Klaus !
Désolé pour le dérangement, je voulait juste en savoir un peu plus. Je ne suis aucunement pressé !
Encore merci pour les infos | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 14 Jan 2016 - 13:57 | |
| KGF.dll V5.71 du 13/01/2016
Nouveautés: - Synedit: gérer un dossier ...\Temp\Segments pour le pliage/dépliage par ctrl/P
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
Ce dossier est maintenant un sous-dossier du dossier d'installation du programme utilisant Synedit. Auparavant, le dossier Segments était dans le dossier temporaire de Windos. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Jan 2016 - 12:16 | |
| KGF.dll V5.72 du 15/01/2016
Nouveautés: - nouvelle fonction ProcessExists
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Cette nouvelle fonction vérifie si un processus est actif, à partir d'un fichier EXE dont le nom est passé en paramètre. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 17 Jan 2016 - 21:42 | |
| KGF.dll V5.73 du 17/01/2016Nouveautés: - nouveau groupe de fonctions pour plonger dans les "entrailles" de PanoramicModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Regardez la doc en ligne (via la signature ce de post...) Ces fonctions ne sont pas la conséquence d'une demande ou d'un besoin exprimés sur le forum. C'est plutôt le résultat de travaux que je fais en interne, au cours de la réalisation et de la mise au point de nouvelles fonctionnalités. Cette fois, il s'agit d'explorer (et non de modifier !) certaines parties de la mémoire virtuelle d'un programme Panoramic en cours d'exécution: Il y a une fonction permettant de faire un dump hexa/décimal/ascii d'une zone mémoire quelconque, avec suivi éventuel de liens vers des chaînes de caractères. Il y a une fonction qui permet de récupérer la table de symboles de Panoramic, avec les noms et types de toutes les variables, y compris les variables système, les variables globales du programme ainsi que les variables locales et les paramètres formels de toutes les SUBs actives, avec leur contenu au moment de l'appel de la fonction. Il y deux fonctions permettant de récupérer des informations sur des tableaux Panoramic. Ceci concerne le nombre de dimensions et la valeur des dimensions. Mais surtout, une fonction donne une information essentielle pour ceux qui veulent en savoir un peu plus sur les tableaux en 2 dimensions. En effet, un tableau en une seule dimension est mémorisé sous forme d'une suite continue de mots (selon le type: pour des entiers, chaque cellule est un mot de 32 bits, pour un flottant, chaque cellule est un double mot de 64 bits, et pour des chaînes, chaque cellule est un mot de 32 bits contenant l'adresse du début de la chaîne concernée). Et on peut constater un "grand" espace de zéros binaires derrière la dernière cellule utilisée. Or, on constate que pour un tableau de 2 dimensions, la première "ligne", les cellules dont le premier indice est 0, est mémorisée comme un tableau d'une dimension. Puis, après une grande suite de zéros binaires, il y a les cellules de la deuxième ligne (celles dont le premier indice est 1) qui sont mémorisées de la même manière, et ainsi de suite. Or, l'écartement entre la première cellule de la ligne N et de la première cellule de la ligne N-1 ou N+1 est fixe et constant pour un tableau. Pour des petits tableaux, cette valeur est 816 (ne me demandez pas pourquoi !). Mais si les lignes dépassent cette longueur, cet écart, toujours constant, est passé à une autre valeur. Il y a donc une fonction permettant de connaître ce décalage pour un tableau donné, en spécifiant simplement son nom. Et ainsi, l'adresse des données de la première cellule le la ligne N d'un tableau en 2 dimensions est adr(tableau)+(N-1)*décalage. Ceci peut être très utile pour ceux qui utilisent les tableaux comme passage de paramètres à une fonction DLL, comme certaines DLLs de Windows (User32, ...). Cela permet aussi, pour les concepteurs de DLLs pour Panoramic, de concevoir un passage de paramètres en entrée et/ou sortie avec beaucoup plus de paramètres que les 6 paramètres autorisés par les fonctions DLL_CALLx existantes. Et la nouvelle méthode de Panoramic de définition de fonctions pour des DLLs multiples n'y change rien - on reste limité à 6 paramètres. Donc, si l'on veut créer une fonction avec 217 paramètres, on peut... Voici une petite démo. Ce programme crée quelques variables globales, y compris un tableau d'une dimension et un tableau de 2 dimensions. Puis, dans une SUB, il analyse la table de symboles, effectue une série de dumps et finalement interroge la définition d'un tableau. Tous les résultats sont affichés dans un mémo: - Code:
-
' analyser_table_symboles_Panoramic.bas
dim x%, res%, flottant, tableau_7%(7), essai%(3,5), chaine$, test$, a%
initialisations()
dll_on "KGF.dll" res% = dll_call1("LocalizePanoramicSymbolTable",adr(number_click))
memo 1 : full_space 1 : bar_both 1
' appel de SUB avec 2 paramètres ' - pour analyser les variables locales ' - pour analyser les paramètres formels test(17,19) dump()
end
sub initialisations() for x%=0 to 7 tableau_7%(x%) = 100+x% next x% for x%=0 to 3 for res%=0 to 5 essai%(x%,res%) = x%*100 + res% next res% next x% x% = 23 res% = 123 chaine$ = "abcde" test$ = "Mon essai de table de symboles" flottant = pi end_sub
sub test(p1%,p2%) dim_local xlocal% xlocal% = "234" res% = dll_call1("GetPanoramicSymbolTable",handle(1)) end_sub
sub dump() dim_local nom$, ndim%, dim1%, dim2% item_add 1," " item_add 1,"tableau_7%:" res% = dll_call3("DumpPanoramic",handle(1),adr(tableau_7%),8) item_add 1," " item_add 1,"essai%:" x% = dll_call1("GetPanoramicArrayRowOffset",adr(essai%)) item_add 1,"rang 0:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%),6) item_add 1,"rang 1:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%,6) item_add 1,"rang 2:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%*2,6) item_add 1,"rang 3:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%*3,6) nom$ = "essai%" res% = dll_call4("GetPanoramicArrayInformation",adr(nom$),adr(ndim%),adr(dim1%),adr(dim2%)) item_add 1,"dim essai%("+str$(dim1%)+","+str$(dim2%)+") "+str$(ndim%)+" dimensions" end_sub
EDITCes fonctions donnent par exemple le moyen, à une DLL, de prendre en entrée un tableau de deux dimensions et de copier le contenu, et le contenu seul, dans un tableau ou une liste à une seule dimension, sans trous, via l'API CopyMemory dans Kernel32.dll. Ou l'inverse: placer une suite de valeurs correctement dans un tableau Panoramic en 2 dimensions, ce qui serait impossible sans cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 18 Jan 2016 - 12:47 | |
| KGF.dll V5.74 du 18/01/2016Nouveautés: - localisation automatique de la table de symboles de Panoramic qu chargement de la DLLModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Du coup, la fonction LocalizePanoramicSymbolTable devient facultative. De toutes façons, la table de symboles est systématiquement localisée. Voici le programme de démo adapté: - Code:
-
' analyser_table_symboles_Panoramic.bas
dim x%, res%, flottant, tableau_7%(7), essai%(3,5), chaine$, test$, a%
initialisations()
dll_on "KGF.dll" ' ligne suivante obsolète - fait de façon automatique au chargement de la DLL ' res% = dll_call1("LocalizePanoramicSymbolTable",adr(number_click))
memo 1 : full_space 1 : bar_both 1
' appel de SUB avec 2 paramètres ' - pour analyser les variables locales ' - pour analyser les paramètres formels test(17,19) dump()
end
sub initialisations() for x%=0 to 7 tableau_7%(x%) = 100+x% next x% for x%=0 to 3 for res%=0 to 5 essai%(x%,res%) = x%*100 + res% next res% next x% x% = 23 res% = 123 chaine$ = "abcde" test$ = "Mon essai de table de symboles" flottant = pi end_sub
sub test(p1%,p2%) dim_local xlocal% xlocal% = "234" res% = dll_call1("GetPanoramicSymbolTable",handle(1)) end_sub
sub dump() dim_local nom$, ndim%, dim1%, dim2% item_add 1," " item_add 1,"tableau_7%:" res% = dll_call3("DumpPanoramic",handle(1),adr(tableau_7%),8) item_add 1," " item_add 1,"essai%:" x% = dll_call1("GetPanoramicArrayRowOffset",adr(essai%)) item_add 1,"rang 0:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%),6) item_add 1,"rang 1:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%,6) item_add 1,"rang 2:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%*2,6) item_add 1,"rang 3:" res% = dll_call3("DumpPanoramic",handle(1),adr(essai%)+x%*3,6) nom$ = "essai%" res% = dll_call4("GetPanoramicArrayInformation",adr(nom$),adr(ndim%),adr(dim1%),adr(dim2%)) item_add 1,"dim essai%("+str$(dim1%)+","+str$(dim2%)+") "+str$(ndim%)+" dimensions" end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 18 Jan 2016 - 16:06 | |
| KGF.dll V5.75 du 18/01/2016
Nouveautés: -GenerateMaskFragments et GenerateMaskList: permettre des chaînes de 8095 caractères
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
| |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Problème avec GenerateMaskFragments. Lun 18 Jan 2016 - 16:18 | |
| Bonjour.
Encore merci Klaus. Tout fonctionne parfaitement maintenant. | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Problème avec GenerateMaskFragments. Lun 18 Jan 2016 - 17:37 | |
| Bonjour.
@Klaus.
Désolé, mais la limitation à 8095 caractères n'est pas satisfaisante pour moi. J'aurais besoin de pouvoir utiliser des chaînes beaucoup plus longues.
Pourquoi pas 65.535 caractères.
Merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 18 Jan 2016 - 18:10 | |
| C'est fait... recharge la DLL. | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Problème avec GenerateMaskFragments. Lun 18 Jan 2016 - 20:04 | |
| Bonsoir.
Merci Klaus pour cette amélioration. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 21 Jan 2016 - 0:50 | |
| KGF.dll V5.76 du 20/01/2016Nouveautés: -correction d'un bug dans les fonctions du groupe Panoramic - nouvelle fonction InitializePanoramicArrayModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette nouvelle fonction permet de placer une valeur dans toutes les cellules d'un tableau Panoramic, qu'il soit de type réel ou entier, qu'il ait une ou deux dimensions. On peut mettre toutes les cellules à zéro, ou placer une valeur quelconque dans toutes les cellules. A ce jour, la fonction ne s'applique pas aux tableaux de chaînes de caractères. Voici une démo qui initialise deux tableaux d'entiers (une et deux dimensions) et deux tableaux de flottants (une et deux dimensions), et qui affiche le résultat dans des mémos: - Code:
-
' test_InitializePanoramicArray.bas
dim res%, nom$, entier%, reel, i%, j% dim tableau1%(7), tableau2%(3,5), matrice1(8), matrice2(4,9) dim x%
entier% = 17 reel = pi
dll_on "KGF.dll"
for i%=0 to 4 matrice1(i%) = pi next i%
full_space 0 memo 1 : height 1,height(0)-80 : bar_both 1 : width 1,200 memo 11 : height 11,height(0)-80 : bar_both 11 : width 11,200 : left 11,width(1)+5 memo 21 : height 21,height(0)-80 : bar_both 21 : width 21,200 : left 21,left(11)+width(11)+5 memo 31 : height 31,height(0)-80 : bar_both 31 : width 31,200 : left 31,left(21)+width(21)+5
nom$ = "tableau1%" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(tableau1%),adr(entier%)) nom$ = "tableau2%" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(tableau2%),adr(entier%)) nom$ = "matrice1" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(matrice1),adr(reel)) nom$ = "matrice2" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(matrice2),adr(reel))
if 1=2 item_add 21,"dump j% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(j%)-16,300) item_add 21,"dump tableau1% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(tableau1%)-16,300) item_add 21,"dump tableau2% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(tableau2%)-16,300) item_add 21,"dump matrice1 -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(matrice1)-32,300) item_add 21,"dump matrice2 -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(matrice2)-32,300) end_if
for i%=0 to 7 item_add 1,str$(i%)+"="+str$(tableau1%(i%)) next i% for i%=0 to 3 for j%=0 to 5 item_add 11,str$(i%)+","+str$(j%)+"="+str$(tableau2%(i%,j%)) next j% next i% for i%=0 to 8 item_add 21,str$(i%)+"="+str$(matrice1(i%)) next i% for i%=0 to 4 for j%=0 to 9 item_add 31,str$(i%)+","+str$(j%)+"="+str$(matrice2(i%,j%)) next j% next i%
end
Ce type d'initialisation est évidemment beaucoup plus rapide que de faire une boucle, ou une double boucle dans le cas des tableaux en deux dimensions, pour obtenir ce résultat. Pour ceux qui voudront jeter un oeil dans les "entrailles" de Panoramic, j'ai laissé une section entourée de "if 1=2" et "end_if"... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 21 Jan 2016 - 13:07 | |
| KGF.dll V5.77 du 20/01/2016Nouveautés: -InitializePanoramicArray: opération également sur des tableaux de chaînes de caractèresModules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. Sur des tableaux de chaînes de caractères, les chaînes individuelles des tableaux seront remplacées par le texte de la chaîne passée en paramètre, complétées par des espaces si nécessaire, ou carrément par des espaces si on passe zéro (0) comme valeur de remplacement. Voici le programme de démo, avec deux tableaux de chaînes de caractères (une et deux dimensions) en plus: - Code:
-
' test_InitializePanoramicArray.bas
dim res%, nom$, entier%, reel, chaine$, i%, j% dim tableau1%(7), tableau2%(3,5), matrice1(8), matrice2(4,9) dim nouveau1$(4), nouveau2$(7,11) dim x%
entier% = 17 reel = pi
dll_on "KGF.dll"
for i%=0 to 4 nouveau1$(i%) = "test" next i% for i%=0 to 7 for j%=0 to 11 nouveau2$(i%,j%) = "abcdefghihklm," next j% next i%
full_space 0 memo 1 : height 1,height(0)-80 : bar_both 1 : width 1,200 memo 11 : height 11,height(0)-80 : bar_both 11 : width 11,200 : left 11,width(1)+5 memo 21 : height 21,height(0)-80 : bar_both 21 : width 21,200 : left 21,left(11)+width(11)+5 memo 31 : height 31,height(0)-80 : bar_both 31 : width 31,200 : left 31,left(21)+width(21)+5 memo 41 : height 41,height(0)-80 : bar_both 41 : width 41,200 : left 41,left(31)+width(31)+5 memo 51 : height 51,height(0)-80 : bar_both 51 : width 51,200 : left 51,left(41)+width(41)+5
if 1=2 chaine$ = "tXest" res% = dll_call3("DumpPanoramic",handle(1),adr(chaine$)-16,20) i% = adr(chaine$) j% = ((peek(i%+3)*256+peek(i%+2))*256+peek(i%+1))*256+peek(i%) poke j%-4,1 item_add 1," " res% = dll_call3("DumpPanoramic",handle(1),j%-16,20) item_add 1," " item_add 1,chaine$ end end_if
nom$ = "tableau1%" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(tableau1%),adr(entier%)) nom$ = "tableau2%" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(tableau2%),adr(entier%)) nom$ = "matrice1" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(matrice1),adr(reel)) nom$ = "matrice2" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(matrice2),adr(reel)) nom$ = "nouveau1$" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(nouveau1$),0-1) nom$ = "nouveau2$" chaine$ = "ABCDE" res% = dll_call3("InitializePanoramicArray",adr(nom$),adr(nouveau2$),adr(chaine$)) if 1=2 item_add 21,"dump j% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(j%)-16,300) item_add 21,"dump tableau1% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(tableau1%)-16,300) item_add 21,"dump tableau2% -4 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(tableau2%)-16,300) item_add 21,"dump matrice1 -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(matrice1)-32,300) item_add 21,"dump matrice2 -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(matrice2)-32,300) item_add 21,"dump nouveau1$ -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(nouveau1$)-32,300) item_add 21,"dump nouveau2$ -8 mots" res% = dll_call3("DumpPanoramic",handle(21),adr(nouveau2$)-32,300) end_if
item_add 1,"tableau1%:" for i%=0 to 7 item_add 1,str$(i%)+"="+str$(tableau1%(i%)) next i% item_add 11,"tableau2%:" for i%=0 to 3 for j%=0 to 5 item_add 11,str$(i%)+","+str$(j%)+"="+str$(tableau2%(i%,j%)) next j% next i% item_add 21,"matrice1:" for i%=0 to 8 item_add 21,str$(i%)+"="+str$(matrice1(i%)) next i% item_add 31,"matrice2:" for i%=0 to 4 for j%=0 to 9 item_add 31,str$(i%)+","+str$(j%)+"="+str$(matrice2(i%,j%)) next j% next i% item_add 41,"nouveau1$:" for i%=0 to 4 item_add 41,str$(i%)+"=["+nouveau1$(i%)+"]" next i% item_add 51,"nouveau2$:" for i%=0 to 7 for j%=0 to 11 item_add 51,str$(i%)+","+str$(j%)+"=["+nouveau2$(i%,j%)+"]" next j% next i%
end
EDIT Cette fonction a une particularité pour les tableaux de chaînes de caractères. Le troisième paramètre peut prendre 3 types de valeurs: 1. adr(chaine$)dans ce cas, le texte des chaînes des éléments sera remplacé par le texte de la variable chaine$, autant que possible, et éventuellement complété par des espaces. 2. zéro (0)dans ce cas, tous les caractères des chaînes des éléments seront remplacés par des espaces 3. moins 1 (-1)dans ce cas, les chaînes de toutes les cellules seront raccourcies à "" (chaîne vide). Mais attention: ceci peut conduire à rendre ces espaces définitivement inaccessibles (fuite de mémoire). Cette possibilité peut être pratique, dans certains cas, mais est à utiliser avec prudence ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 21 Jan 2016 - 18:32 | |
| KGF.dll V5.78 du 20/01/2016Nouveautés: -nouvelles fonctions Levenshtein et ConfigureLevenshteinModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ces fonctions sont documentées dans le groupe des fonctions de gestion de chaînes de caractères. Elles gèrent l'algorithme Damerau-Levenshtein qui permet de calculer la proximité entre deux mots par la détermination du coût de transformation de l'un dans l'autre, en utilisant substitutions, insertions et suppressions de caractères, chaque opération ayant un coût individuel. Ces coûts ont des valeurs par défaut et sont configurables. Voici une démo: - Code:
-
' test_Levenshtein.bas
label compar dim res%, m1$, m2$ dll_on "KGF.dll" ' paramétrer ici éventuellement les coûts individuels: ' res% = dll_call3("ConfigureLevenshtein",3,1,6) : ' ws,wi,wd
edit 1 : top 1,10 : left 1,10 edit 2 : top 2,10 : left 2,210 button 3 : top 3,40 : left 3,120 : caption 3,"Comparer" : on_click 3,compar memo 4 : top 4,70 : left 4,10 : width 4,400 : height 4,350 : bar_both 4 end compar: m1$ = text$(1) m2$ = text$(2) res% = dll_call2("Levenshtein",adr(m1$),adr(m2$)) item_add 4,m1$+"<->"+m2$+" ==> "+str$(res%) return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 22 Jan 2016 - 11:49 | |
| KGF.dll V5.79 du 22/01/2016
Nouveautés: - correction d'un bug interne affectant plusieurs fonctions de la gestion des fichiers binaires
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 Sam 23 Jan 2016 - 15:48 | |
| Bizarre... pas d'intérêt pour des fonctions comme InitializePanoramicArray ou Levenshtein ? Et je suppose qu'il y a peu d'amateurs de gestion de fichiers binaires (dont certaines fonctions ont été corrigées) ? | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Nouvelles versions de KGF. Sam 23 Jan 2016 - 17:39 | |
| Bonjour.
@Klaus.
A mon humble avis, je dois être le seul intéressé. Mais merci de conserver tout de même ces avancées. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 23 Jan 2016 - 17:53 | |
| Bien sûr que je conserve ! Je vais même pousser plus loin, dans ce domaine comme dans d'autres ! | |
| | | Invité Invité
| Sujet: Re: KGF_dll - nouvelles versions Sam 23 Jan 2016 - 17:58 | |
| Tu fais des choses très intéressante. Encore faut-il n'avoir que cela à faire. Tu as montré des possibilités pour entrer dans le cœur de Panoramic. J'y suis très intéressé. J'avais d'ailleurs fait pour ORIC et Apple2E un désassembleur pour complètement désassembler les basics, ce qui me permettais de faire des programmes intéressant avec un assembleur de mon cru. Je ne peux pas voir maintenant toutes tes trouvailles. KGF serait très intéressant dans les programmes en cours, seulement j'ai décidé dans mon cahier des charges de ceux-ci, de le faire en Panoramic pur (sauf seulement pour imprimer si cela semble judicieux). Donc publies tes recherches, on verra plus tard. C'est également vrai pour Jean Debord avec Panomand. Moi je suis pris pour plusieurs mois. Et encore! Je n’arrête pas de rajouter des possibilités à mon programme. J'en dis pas plus, c'est pas l'objet. Et pourtant qu'est-ce serait utile de me servir de KGF, et même de demander quelques instructions supplémentaires. Mais je cherche à aller au bout de mes idées, même si elles semblent farfelues au départ. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 23 Jan 2016 - 18:22 | |
| Merci, Cosmos70. Je comprends très bien qu'il vaut mieux poursuivre dans un chantier pour lequel on s'est fixé un cadre, et de voir le reste plus tard. Normal. | |
| | | 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
| |
| |
| |