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
» TourD Version 2
par Minibug Aujourd'hui à 1:50

» La métamatière et le peuple
par JL35 Hier à 21:18

» Capture d'une zone de l'écran total
par JL35 Hier à 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Hier à 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

» KGF_dll - nouvelles versions
par Klaus Mer 15 Nov 2017 - 2:08

» Analyser un code Panoramic
par JL35 Lun 13 Nov 2017 - 18:38

» Un bonjour en passant...
par Minibug Dim 12 Nov 2017 - 19:57

» mise a jour calculatrice
par joeeee2017 Dim 12 Nov 2017 - 4:20

» comment accèder à l'heure et à la date d'un fichier
par Klaus Sam 11 Nov 2017 - 0:53

» Compilateur FBPano
par Jicehel Mer 8 Nov 2017 - 15:22

» Mon adresse e-mail
par treehouse Mer 8 Nov 2017 - 14:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 22 ... 40  Suivant
AuteurMessage
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 8 Jan 2016 - 14: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 9 Jan 2016 - 15: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 9 Jan 2016 - 16:18

Je regarde ça...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 10 Jan 2016 - 14:55

KGF.dll V5.70 du 10/01/2016

Nouveautés:
- AddStringListItem: gérer l'option "multi-lignes"

Modules modifiés:
KGF.dll
KGF.chm


La 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"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 12 Jan 2016 - 1: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 12 Jan 2016 - 1: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 12 Jan 2016 - 13: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 14 Jan 2016 - 15: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 15 Jan 2016 - 14: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 17 Jan 2016 - 23:42

KGF.dll V5.73 du 17/01/2016

Nouveautés:
- nouveau groupe de fonctions pour plonger dans les "entrailles" de Panoramic

Modules modifiés:
KGF.dll
KGF.chm


La 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

EDIT

Ces 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 18 Jan 2016 - 14:47

KGF.dll V5.74 du 18/01/2016

Nouveautés:
- localisation automatique de la table de symboles de Panoramic qu chargement de la DLL

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 18 Jan 2016 - 18: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.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 861
Date d'inscription : 19/01/2014

MessageSujet: Problème avec GenerateMaskFragments.   Lun 18 Jan 2016 - 18:18

Bonjour.

Encore merci Klaus.
Tout fonctionne parfaitement maintenant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 861
Date d'inscription : 19/01/2014

MessageSujet: Problème avec GenerateMaskFragments.   Lun 18 Jan 2016 - 19: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 18 Jan 2016 - 20:10

C'est fait... recharge la DLL.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 861
Date d'inscription : 19/01/2014

MessageSujet: Problème avec GenerateMaskFragments.   Lun 18 Jan 2016 - 22:04

Bonsoir.

Merci Klaus pour cette amélioration.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 21 Jan 2016 - 2:50

KGF.dll V5.76 du 20/01/2016

Nouveautés:
-correction d'un bug dans les fonctions du groupe Panoramic
- nouvelle fonction InitializePanoramicArray


Modules modifiés:
KGF.dll
KGF.chm


La 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"...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 21 Jan 2016 - 15:07

KGF.dll V5.77 du 20/01/2016

Nouveautés:
-InitializePanoramicArray: opération également sur des tableaux de chaînes de caractères

Modules 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 21 Jan 2016 - 20:32

KGF.dll V5.78 du 20/01/2016

Nouveautés:
-nouvelles fonctions Levenshtein et ConfigureLevenshtein

Modules modifiés:
KGF.dll
KGF.chm


La 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

 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 22 Jan 2016 - 13: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 23 Jan 2016 - 17: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) ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 861
Date d'inscription : 19/01/2014

MessageSujet: Nouvelles versions de KGF.   Sam 23 Jan 2016 - 19: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 23 Jan 2016 - 19:53

Bien sûr que je conserve ! Je vais même pousser plus loin, dans ce domaine comme dans d'autres !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: KGF_dll - nouvelles versions   Sam 23 Jan 2016 - 19: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.
Revenir en haut Aller en bas
Klaus

avatar

Nombre de messages : 10112
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 23 Jan 2016 - 20: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 5 sur 40Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 22 ... 40  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: