FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 21 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 21 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 21 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 21 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 21 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 21 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 21 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 21 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 21 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 21 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 21 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 21 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 21 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 21 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 21 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+13
The Gamer
Nardo26
silverman
Minibug
Pedro
mindstorm
pascal10000
Jicehel
papydall
Jean Claude
JL35
Yannick
Klaus
17 participants
Aller à la page : Précédent  1 ... 12 ... 20, 21, 22 ... 30 ... 40  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyDim 1 Mar 2015 - 20:35

Cela devient contagieux, la todolistomania... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyDim 1 Mar 2015 - 21:10

Nouvelle version:
KGF.dll V4.37 du 01/03/2015

Nouveautés:
-TabObject: nouveau code 9 dans TabObjectFunction: supprimer l'onglet ntab% indiqué

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

A tester en grandeur nature... chez moi, ça a l'air de marcher.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyDim 1 Mar 2015 - 22:52

Celui là, je le testerai un peu plus tard dans la nuit... Laughing
Je me bagarre avec PPE_Vs2 pour le rendre re-dimensionnable.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 2 Mar 2015 - 13:15

Nouvelle version:
KGF.dll V4.38 du 02/03/2015

Nouveautés:
- nouvelle fonction AddNewResourceEX

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette fonction est identique à la fonction AddNewResource déjà existante, sauf qu'elle ne fait aucun ajout dans l'indexe des ressources gérée par AddNewResource. Ainsi, elle peut être utilisée pour un ajout banal d'un fichier quelconque dans les ressources.

Exemple d'un outil qui utilise cela:
Code:
' InsertResourceToExe.bas

label SelExe, SelRsc, insert

dim exe$, res$, res%, typ$, nam$

open_dialog 1

alpha  10 : top 10,10 : left 10,10  : caption 10,"Fichier EXE:"
edit   11 : top 11,10 : left 11,80  : width 11,300
button 12 : top 12,10 : left 12,380 : width 12,30 : caption 12,"..."
  on_click 12,SelExe

alpha  20 : top 20,40 : left 20,10  : caption 20,"Ressource:"
edit   21 : top 21,40 : left 21,80  : width 21,300
button 22 : top 22,40 : left 22,380 : width 22,30 : caption 22,"..."
  on_click 22,SelRsc

button 32 : top 32,80 : left 32,80  : caption 32,"Insérer"
  on_click 32,insert

dll_on "KGF.dll"

end

SelExe:
  filter 1,"Exécutables, DLLs|*.exe;*.dll"
  exe$ = file_name$(1)
  if exe$="_" then return
  text 11,exe$
  return
  
SelRsc:
  filter 1,"Ressource|*.*"
  res$ = file_name$(1)
  if res$="_" then return
  text 21,res$
  return

insert:
  exe$ = trim$(text$(11))
  if file_exists(exe$)=0
    message "Le fichier exécutable n'existe pas"
    return
  end_if
  res$ = trim$(text$(21))
  if file_exists(res$)=0
    message "Le fichier ressource n'existe pas"
    return
  end_if
  typ$ = "DATAFILE"
  nam$ = file_extract_name$(res$)
  
  res% = dll_call3("FindExistingResource",adr(exe$),adr(typ$),adr(nam$))
  if res%<>0
    if message_confirmation_yes_no("La ressource "+nam$+" existe déjà. Remplacer ?")<>1 then return
    res% = dll_call3("DeleteExistingResource",adr(exe$),adr(typ$),adr(nam$))
  end_if
  
  res% = dll_call4("AddNewResourceEX",adr(exe$),adr(res$),adr(typ$),adr(nam$))
  if res%<0
    message "Oups... erreur en mise à jour"
  else
    message "Le programme a été mis à jour"
  end_if
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 2 Mar 2015 - 21:54

Une question plus générale Klaus, et qui me chiffonne: je viens de télécharger le dernier KGF.dll, qui fait environ 1 M octets, et qui remplace une version de décembre qui faisait 3,3 M octets, alors que tu rajoutes plein de fonctions... ?
Revenir en haut Aller en bas
papydall

papydall


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 2 Mar 2015 - 22:23

Klaus a écrit:
INFO INFO INFO INFO

A partir de maintenant, je compresse KGF.dll par l'utilitaire UPX. Gain: 66 % de place. De plus de 3 Mo, je passe à 1 Mo, sans perte de fonctionnalité ni performance.

Donc, n'ayez pas peur de la taille réduite de la DLL - c'est normal !

@JL35

Tu ne lis pas TOUT affraid
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 2 Mar 2015 - 22:31

Ohhhh ! je suis couvert de honte ! Embarassed je lis tout mais je ne retiens pas tout, hélas ! et des fois je pense à autre chose qu'à Panoramic...
Merci quand même papydall !
Tout de même, diviser la taille par plus de 3, ça c'est intéressant !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 2 Mar 2015 - 23:57

JL35 a écrit:
et des fois je pense à autre chose qu'à Panoramic...
Honte à toi ... Blasfème .... Outrage Very Happy
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyMar 3 Mar 2015 - 15:46

Nouvelle version:
KGF.dll V4.39 du 03/03/2015

Nouveautés:
- StringList: gérer le mode de tri dans les DLIST pour toutes les fonctions
- StringList: nouvelle fonction AddFileToStringList


Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyMer 4 Mar 2015 - 19:18

Nouvelle version:
KGF.dll V4.40 du 04/03/2015

Nouveautés:
- StringList: nouvelle fonction ReadStringListValue

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette fonction permet de considérer une Stringlist (triée ou non) comme un fichier ini contenant les lignes de type
clé=valeur
Cette fonction peut alors retourner la valeur d'une clé spécifiée en paramètre. Voici une démo:
Code:
' demo de fichier INI
' Cette démo utilise KGF.dll pour les fonctions de StringList

' Un fichier INI est composé de lignes de type cle=valeur

dim res%, valeur$

dlist 1 : ' pour contenir le fichier INI

item_add 1,"Dossier=C:\MonDossier"
item_add 1,"Programme=essai.exe"
item_add 1,"DernierUtilisateur=klaus"
item_add 1,"DernierFichier=test.bas"
item_add 1,"ActionEnCours="

dll_on "KGF.dll"

' res% = dll_call2("SortStringList",object_internal(1),2)

LireValeur("Dossier")
Message "Dossier = "+valeur$
if valeur$="" then message "Dossier pas défini"

LireValeur("Programme")
Message "Programme = "+valeur$
if valeur$="" then message "Programme pas défini"

LireValeur("DernierUtilisateur")
Message "Dernier Utilisateur = "+valeur$
if valeur$="" then message "Dernier Utilisateur pas défini"

LireValeur("DernierFichier")
Message "Dernier Fichier = "+valeur$
if valeur$="" then message "Dernier Fichier pas défini"

LireValeur("ActionEnCours")
Message "Action En Cours = "+valeur$
if valeur$="" then message "Action En Cours pas définie"


end

sub LireValeur(cle$)
  valeur$ = string$(100," ")
  res% = dll_call3("ReadStringListValue",object_internal(1),adr(cle$),adr(valeur$))
  valeur$ = trim$(valeur$)
end_sub


Dernière édition par Klaus le Jeu 5 Mar 2015 - 3:20, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyMer 4 Mar 2015 - 23:58

affraid Il y a un souci avec la fonction 9 du TabObject.

1 onglet, le bandeau est supprimé avec l' onglet.
Plus de 1 onglet, tous les "panels-onglets" sont supprimés.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyJeu 5 Mar 2015 - 2:25

Je regarde ça...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyJeu 5 Mar 2015 - 3:21

Nouvelle version:
KGF.dll V4.41 du 05/03/2015

Nouveautés:
Correction d'un bug dans TabObjectFunction code 9

Modules modifiés:
KGF.dll

Les sources sont à jour. La doc est inchangée.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyJeu 5 Mar 2015 - 3:33

Je confirme, le problème est résolu !

Bravo Klaus !
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyVen 6 Mar 2015 - 2:50

Pas de souci rassures toi !.. Twisted Evil

Je voudrais juste apporter ma pierre à l' édifice.
Il serait souhaitable de préciser certaines choses dans la doc de TabObject.

Lorsque l' on supprime un onglet, si on supprime l' onglet 1 l' onglet 2 devient l' onglet 1 et ainsi de suite
jusqu' au dernier.
ce qui signifie que les numéros d' onglet ne sont pas fixes.
Il convient donc de mettre en place un système de repérage autre que le numéro d' onglet.

Je tiens à le dire car je viens de passer la journée à me casser les dents là dessus... What a Face
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyVen 6 Mar 2015 - 3:06

Je comprends ton soucis, mais au niveau de la DLL, je ne vois pas bien ce que je pourrais y faire. Les onglets sont repérés par rapport à leur position, et je n'ai pas le moyen de leur attribuer une "identification" ou un "nom". Il revient en effet au programmeur de garder la trace des onglets qu'il a créé. Ceci peut être fait par exemple dans une DLIST dans laquelle un ajoute une ligne pour chaque onglet créé, puis on supprime la ligne du même indice que l'onglet supprimé. Ainsi, le numéro d'onglet retourné pourra toujours être utilisé comme indice d'un enregistrement dans la DLIST qui contient le numéro d'origine.

Tout à fait autre chose: je prépare un gros morceau, et ça fonctionne déjà. Je suis en train de rédiger la doc. A quel sujet ? Un nouvel objet nommé XML...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyVen 6 Mar 2015 - 3:38

Je me doute que tu n' y puisse rien.
Je voulais juste que tu le signales dans la doc pour que les futurs
victimes  Laughing, ne passent pas autant de temps à chercher où elles ont fait une bourde
alors que c' est tout simplement les onglets qui prennent le numéro de leur position.
D' ailleurs, c' est très bien comme cela à mon avis. 

j' ai trouvé une astuce pour mon usage, j' ai un tableau de variable syn_file$(99) qui contient le nom de fichier
du synedit associé au syn%(n%). 
le numero 0 est réservé pour l' éditeur de procédures.
et j' ai un autre tableau pour récupérer les numéros des objet synedit créés et supprimés de manière
à pouvoir récupérer le numéro d' un objet synedit supprimer.

Bref, c' est devenu une usine à gaz mon truc... Laughing


Edit: Pour xml, je ne maitrise pas bien le sujet ( pas du tout  Rolling Eyes ) , j' attendrai de voir la doc.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyVen 6 Mar 2015 - 23:28

Nouvelle version:
KGF.dll V4.43 du 07/03/2015

Nouveautés:
nouvel objet: XML

Modules modifiés:
KGF.dll
KGF.chm


Les sources et la doc sont à jour.

Cet objet permet de charger un document XML valide et de l'explorer. Un premier jeu de fonctions permet d'explorer l'arbre des éléments XML et de lire les noms et/ou les données, ainsi que les attributs.
A ce titre, je renvoie à l'xcellent tuto XML ici.
On peut charger un document XML à partir d'un fichier, un objet Panoramic (MEMO, LIST ou DLIST) ou à partir d'une chaîne de caractères. Le programme suivant permet de montrer ces fonctions, à partir d'un exemple pris sur le site mentionné ci-dessus:
Code:
' test_XML.bas

label load, home, previous, xparent, child, xnext, rname, rdata

dim res%, XML%, s$

width 0,700 : height 0,500

memo 1 : top 1,10 : left 1,10  : width 1,200 : height 1,400 : bar_both 1
memo 2 : top 2,10 : left 2,410 : width 2,200 : height 2,400 : bar_both 2

button 11 : top 11,10  : left 11,220 :caption 11,"Load"
  on_click 11,load
button 12 : top 12,10  : left 12,320 :caption 12,"Home"
  on_click 12,home
button 13 : top 13,40  : left 13,270 :caption 13,"Previous"
  on_click 13,previous
button 14 : top 14,70  : left 14,220 :caption 14,"Parent"
  on_click 14,xparent
button 15 : top 15,70  : left 15,320 :caption 15,"1st child"
  on_click 15,child
button 16 : top 16,110 : left 16,270 :caption 16,"Next"
  on_click 16,xnext
button 17 : top 17,140 : left 17,220 :caption 17,"Read Name"
  on_click 17,rname
button 18 : top 18,140 : left 18,320 :caption 18,"Read Data"
  on_click 18,rdata

item_add 1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"UTF-8"+chr$(34)+"?>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+">"
item_add 1,"  <to> Tove</to>"
item_add 1," <from>Jani</from>"
item_add 1,"  <heading>Reminder</heading>"
item_add 1,"  <body>Don't forget me this weekend!</body>"
item_add 1,"</note>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+" class="+chr$(34)+"new"+chr$(34)+">"
item_add 1,"  <to> Marc</to>"
item_add 1," <from>John</from>"
item_add 1,"  <heading>News</heading>"
item_add 1,"  <body>Cet article a été publié !</body>"
item_add 1,"</note>"

dll_on "KGF.dll"

end

load:
  XML% = dll_call1("LoadXmlFromObject",object_internal(1))
  if XML%=-1
    message "Error"
  else
    message "Ok"
  end_if
  return

home:
  res% = dll_call1("GetXmlTop",XML%)
  select res%
    case -1: message "Fatal error"
    case  0: message "Empty"
    case  1: message "Ok"
  end_select
  return

previous:
  res% = dll_call1("GetPreviousXmlSister",XML%)
  select res%
    case -1: message "Fatal error"
    case  0: message "Empty"
    case  1: message "Ok"
  end_select
  return

xparent:
  res% = dll_call1("GetXmlParent",XML%)
  select res%
    case -1: message "Fatal error"
    case  0: message "Empty"
    case  1: message "Ok"
  end_select
  return

child:
  res% = dll_call1("GetFirstXmlChild",XML%)
  select res%
    case -1: message "Fatal error"
    case  0: message "Empty"
    case  1: message "Ok"
  end_select
  return

xnext:
  res% = dll_call1("GetNextXmlSister",XML%)
  select res%
    case -1: message "Fatal error"
    case  0: message "Empty"
    case  1: message "Ok"
  end_select
  return

rname:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlName",XML%,adr(s$))
  select res%
    case -1: message "Fatal error"
    case  0: message "Ok: "+trim$(s$)
  end_select
  return

rdata:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlData",XML%,adr(s$))
  select res%
    case -1: message "Fatal error"
    case  0: message "Ok: "+trim$(s$)
  end_select
  return

Les fichiers XML ont une très grande utilité. D'abord, ils peuvent être affichés simplement, par la plupart des eplorateurs internet. Ensuite, on peut leur associer des fichiers CSS et les afficher comme n'importe quelle page HTML.

Mais ils sont important également, parce que ces fichiers peuvent servir de fichiers de configuration sophistiqués, et malgré la difficulté de les exploiter directement, avec l'objet XML, cela devient simple.

Et surtout, ils peuvent servir de base de données simple, avec les éléments jouant le rôle de champs simples ou complexes (composés d'autres champs).

Cherchez un peu l'emploi des fichiers XML sur le net, et vous verrez l'avantage qu'on peut en tirer !


Dernière édition par Klaus le Sam 7 Mar 2015 - 14:00, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptySam 7 Mar 2015 - 14:00

Nouvelle version:
KGF.dll V4.43 du 07/03/2015

Nouveautés:
XML: 3 nouvelles fonctions

Modules modifiés:
KGF.dll
KGF.chm


Les sources et la doc sont à jour.

Deux nouvelles fonctions permettent de remplacer les données d'un élément XML ou de changer son nom. ne troisième fonction permet de chercher un élément XML par un chemin d'accès éventuellement partiel, soit à partir du début du document, soit à partir d'une position spécifique (la dernière recherche réussie, par exemple).

Voici le programme de démo étendu à ces fonctions, avec une nette amélioration de la lisibilité des résultats qui s'affichent maintenant, avec des informations complémentaires, dans une barre d'état:
Code:
' test_XML.bas

label load, home, previous, xparent, child, xnext, rname, rdata
label sdata, fpath, npath

dim res%, XML%, s$, sold$, sep$, loc%

width 0,700 : height 0,500

memo 1 : top 1,10 : left 1,10  : width 1,200 : height 1,400 : bar_both 1
memo 2 : top 2,10 : left 2,410 : width 2,200 : height 2,400 : bar_both 2

button 11 : top 11,10  : left 11,220 :caption 11,"Load"
  on_click 11,load
button 12 : top 12,10  : left 12,320 :caption 12,"Home"
  on_click 12,home
button 13 : top 13,40  : left 13,270 :caption 13,"Previous"
  on_click 13,previous
button 14 : top 14,70  : left 14,220 :caption 14,"Parent"
  on_click 14,xparent
button 15 : top 15,70  : left 15,320 :caption 15,"1st child"
  on_click 15,child
button 16 : top 16,110 : left 16,270 :caption 16,"Next"
  on_click 16,xnext
button 17 : top 17,140 : left 17,220 :caption 17,"Read Name"
  on_click 17,rname
button 18 : top 18,140 : left 18,320 :caption 18,"Read Data"
  on_click 18,rdata
alpha 19  : top 19,170 : left 19,220 : caption 19,"New data:"
edit 20  : top 20,190 : left 20,220 : width 20,180
button 21 : top 21,220 : left 21,270 : caption 21,"Set data"
  on_click 21,sdata
alpha 22  : top 22,250 : left 22,220 : caption 22,"Path:"
edit 23  : top 23,270 : left 23,220 : width 23,180
button 24 : top 24,300 : left 24,220 : caption 24,"Find path"
  on_click 24,fpath
button 25 : top 25,300 : left 25,320 : caption 25,"Next path"
  on_click 25,npath
 
edit 99 : top 99,430 : left 99,10 : width 99,600

item_add 1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"UTF-8"+chr$(34)+"?>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+">"
item_add 1,"  <to> Tove</to>"
item_add 1," <from>Jani</from>"
item_add 1,"  <heading>Reminder</heading>"
item_add 1,"  <body>Don't forget me this weekend!</body>"
item_add 1,"</note>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+" class="+chr$(34)+"new"+chr$(34)+">"
item_add 1,"  <to> Marc</to>"
item_add 1," <from>John</from>"
item_add 1,"  <heading>News</heading>"
item_add 1,"  <body>Cet article a été publié !</body>"
item_add 1,"</note>"

dll_on "KGF.dll"

end

load:
  XML% = dll_call1("LoadXmlFromObject",object_internal(1))
  if XML%=-1
    text 99, "Error"
  else
    text 99, "Ok"
  end_if
  return

home:
  res% = dll_call1("GetXmlTop",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

previous:
  res% = dll_call1("GetPreviousXmlSister",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

xparent:
  res% = dll_call1("GetXmlParent",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

child:
  res% = dll_call1("GetFirstXmlChild",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

xnext:
  res% = dll_call1("GetNextXmlSister",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

rname:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlName",XML%,adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: name="+trim$(s$)
  end_select
  return

rdata:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlData",XML%,adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: data="+trim$(s$)
  end_select
  return

sdata:
  sold$ = string$(255," ")
  s$ = text$(20)
  res% = dll_call3("SetXmlData",XML%,adr(sold$),adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: old data="+trim$(sold$)
  end_select
  return
 
fpath:
  s$ = text$(23)
  sep$ = "\"
  res% = dll_call4("SelectXmlElementByPath",XML%,0,adr(s$),adr(sep$))
  loc% = 0
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok - not foundé"
  end_select
  if res%>0
    loc% = res%
    res% = dll_call1("GetFirstXmlChild",XML%)
    s$ = string$(255," ")
    if res%>0
      res% = dll_call2("GetXmlName",XML%,adr(s$))
      if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
      res% = dll_call1("GetXmlParent",XML%)
    end_if
    text 99, "Ok - found at "+str$(loc%)+": ["+trim$(s$)+"]"
  end_if
  return

npath:
  s$ = text$(23)
  sep$ = "\"
  res% = dll_call4("SelectXmlElementByPath",XML%,loc%+1,adr(s$),adr(sep$))
  loc% = 0
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok - non trouvé"
  end_select
  if res%>0
    loc% = res%
    res% = dll_call1("GetFirstXmlChild",XML%)
    s$ = string$(255," ")
    if res%>0
      res% = dll_call2("GetXmlName",XML%,adr(s$))
      if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
      res% = dll_call1("GetXmlParent",XML%)
    end_if
    text 99, "Ok - found at "+str$(loc%)+": ["+trim$(s$)+"]"
  end_if
  return
Mettez, par exemple:
Citation :
Root\note\to
dans la zone "Path", et cliquez sur "FindPath". Vous trouverez le destinataire de la première note.
Cliquez ensuite sur "Next path", et vous trouverez le destinataire de la seconde note.
Un autre clic sur "Next path" vous informera qu'il n'y a plus de notes.

Elémentaire, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptySam 7 Mar 2015 - 14:41

Salut Klaus
Ligne 169
Code:
case  0: text 99, "Ok - not foundé"

Good use of the past participle of  to find (foundé)  Laughing

Après cette plaisanterie, merci pour tout : c’est OK.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyDim 8 Mar 2015 - 22:59

Nouvelle version:
KGF.dll V4.44 du 08/03/2015

Nouveautés:
XML: 5 nouvelles fonctions

Modules modifiés:
KGF.dll
KGF.chm


Les sources et la doc sont à jour.

Avec ces 5 nouvelles fonctions, l'objet XML forme un ensemble cohérent et exploitable. Je posterai prochainement un exemple d'utilisation pour une application concrète.

Les 5 nouvelles fonctions portent sur la sauvegarde d'un objet XML, soit dans un fichier, soit dans un mémo Panoramic, soit dans une variable chaîne de caractères Panoramic, ainsi que la création de nouveaux éléments selon différents modes (soeur en fin de liste des soeurs, soeur insérée devant l'élément actif, nouvel enfant), et la suppression d'un élément, y compris tous les éléments enfant qui en dépendent, quelque soit la profondeur de l'hiérarchie. Ceci, combiné aux fonctions de lecture, recherche et gestion des données d'un élément forment un ensemble cohérent, permettant de charger un XML existant en mémoire, de l'exploiter, éventuellement modifier, puis de l'enregister, et même de le créer ex nihilo, par programme.

Voici le programme de démo, incluant les nouvelles fonctions:
Code:
' test_XML.bas

label load, home, previous, xparent, child, xnext, rname, rdata
label sdata, fpath, npath, fsave, msave, ssave
label asister, isister, achild, delet

dim res%, XML%, s$, sold$, sep$, loc%

width 0,840 : height 0,700

memo 1 : top 1,10 : left 1,10  : width 1,300 : height 1,600 : bar_both 1
memo 2 : top 2,10 : left 2,510 : width 2,300 : height 2,600 : bar_both 2

button 11 : top 11,10  : left 11,320 :caption 11,"Load"
  on_click 11,load
button 12 : top 12,10  : left 12,420 :caption 12,"Home"
  on_click 12,home
button 13 : top 13,40  : left 13,370 :caption 13,"Previous"
  on_click 13,previous
button 14 : top 14,70  : left 14,320 :caption 14,"Parent"
  on_click 14,xparent
button 15 : top 15,70  : left 15,420 :caption 15,"1st child"
  on_click 15,child
button 16 : top 16,100 : left 16,370 :caption 16,"Next"
  on_click 16,xnext
button 17 : top 17,140 : left 17,320 :caption 17,"Read Name"
  on_click 17,rname
button 18 : top 18,140 : left 18,420 :caption 18,"Read Data"
  on_click 18,rdata
alpha 19  : top 19,170 : left 19,320 : caption 19,"New data:"
edit 20  : top 20,190 : left 20,320 : width 20,180
button 21 : top 21,220 : left 21,370 : caption 21,"Set data"
  on_click 21,sdata
alpha 22  : top 22,250 : left 22,320 : caption 22,"Path:"
edit 23  : top 23,270 : left 23,320 : width 23,180
button 24 : top 24,300 : left 24,320 : caption 24,"Find path"
  on_click 24,fpath
button 25 : top 25,300 : left 25,420 : caption 25,"Next path"
  on_click 25,npath
button 26 : top 26,330  : left 26,320 :caption 26,"Save file"
  on_click 26,fsave
button 27 : top 27,330  : left 27,420 :caption 27,"Save memo"
  on_click 27,msave
button 28 : top 28,360  : left 28,370 :caption 28,"Save string"
  on_click 28,ssave
alpha 29 : top 29,390 : left 29,320 : caption 29,"New element name:"
edit 30  : top 30,410 : left 30,320 : width 30,180
button 31 : top 31,440  : left 31,320 :caption 31,"Append sister"
  on_click 31,asister
button 32 : top 32,440  : left 32,420 :caption 32,"Insert sister"
  on_click 32,isister
button 33 : top 33,470  : left 33,370 :caption 33,"Add child"
  on_click 33,achild
button 34 : top 34,520  : left 34,370 :caption 34,"Delete element"
  on_click 34,delet


edit 99 : top 99,630 : left 99,10 : width 99,800

item_add 1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"UTF-8"+chr$(34)+"?>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+">"
item_add 1,"  <to> Tove</to>"
item_add 1,"  <from>Jani</from>"
item_add 1,"  <heading>Reminder</heading>"
item_add 1,"  <body>Don't forget me this weekend!</body>"
item_add 1,"</note>"
item_add 1,"<note type="+chr$(34)+"friend"+chr$(34)+" class="+chr$(34)+"new"+chr$(34)+">"
item_add 1,"  <to> Marc</to>"
item_add 1,"  <from>John</from>"
item_add 1,"  <heading>News</heading>"
item_add 1,"  <body>Cet article a été publié !</body>"
item_add 1,"</note>"

text 99,"Nothing loaded"

dll_on "KGF.dll"

end

load:
  XML% = dll_call1("LoadXmlFromObject",object_internal(1))
  if XML%=-1
    text 99, "Error"
  else
    text 99, "Ok"
  end_if
  return

home:
  res% = dll_call1("GetXmlTop",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

previous:
  res% = dll_call1("GetPreviousXmlSister",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

xparent:
  res% = dll_call1("GetXmlParent",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

child:
  res% = dll_call1("GetFirstXmlChild",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

xnext:
  res% = dll_call1("GetNextXmlSister",XML%)
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Empty"
    case  1: ' ok
              s$ = string$(255," ")
              res% = dll_call2("GetXmlName",XML%,adr(s$))
              if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
              text 99, "Ok"+": ["+trim$(s$)+"]"
  end_select
  return

rname:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlName",XML%,adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: name="+trim$(s$)
  end_select
  return

rdata:
  s$ = string$(255," ")
  res% = dll_call2("GetXmlData",XML%,adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: data="+trim$(s$)
  end_select
  return

sdata:
  sold$ = string$(255," ")
  s$ = text$(20)
  res% = dll_call3("SetXmlData",XML%,adr(sold$),adr(s$))
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok: old data="+trim$(sold$)
  end_select
  return
 
fpath:
  s$ = text$(23)
  sep$ = "\"
  res% = dll_call4("SelectXmlElementByPath",XML%,0,adr(s$),adr(sep$))
  loc% = 0
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok - not found"
  end_select
  if res%>0
    loc% = res%
    res% = dll_call1("GetFirstXmlChild",XML%)
    s$ = string$(255," ")
    if res%>0
      res% = dll_call2("GetXmlName",XML%,adr(s$))
      if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
      res% = dll_call1("GetXmlParent",XML%)
    end_if
    text 99, "Ok - found at "+str$(loc%)+": ["+trim$(s$)+"]"
  end_if
  return

npath:
  s$ = text$(23)
  sep$ = "\"
  res% = dll_call4("SelectXmlElementByPath",XML%,loc%+1,adr(s$),adr(sep$))
  loc% = 0
  select res%
    case -1: text 99, "Fatal error"
    case  0: text 99, "Ok - non trouvé"
  end_select
  if res%>0
    loc% = res%
    res% = dll_call1("GetFirstXmlChild",XML%)
    s$ = string$(255," ")
    if res%>0
      res% = dll_call2("GetXmlName",XML%,adr(s$))
      if res%<0 then res% = dll_call2("GetXmlData",XML%,adr(s$))
      res% = dll_call1("GetXmlParent",XML%)
    end_if
    text 99, "Ok - found at "+str$(loc%)+": ["+trim$(s$)+"]"
  end_if
  return

fsave:
  s$ = "test.xml"
  res% = dll_call2("SaveXmlToFile",XML%,adr(s$))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"0k - saved to test.xml"
  end_select
  return

msave:
  res% = dll_call2("SaveXmlToMemo",XML%,handle(2))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"0k - saved to memo 2"
  end_select
  return

ssave:
  s$ = string$(10000," ")
  res% = dll_call2("SaveXmlToString",XML%,adr(s$))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"0k - saved to string"
  end_select
  s$ = trim$(s$)
  message s$
  s$ = ""
  return

asister:
  s$ = text$(30)
  res% = dll_call3("AddXmlElement",XML%,1,adr(s$))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"Error - invalid operation"
    case  1: text 99,"Ok"
  end_select
  return

isister:
  s$ = text$(30)
  res% = dll_call3("AddXmlElement",XML%,2,adr(s$))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"Error - invalid operation"
    case  1: text 99,"Ok"
  end_select
  return

achild:
  s$ = text$(30)
  res% = dll_call3("AddXmlElement",XML%,3,adr(s$))
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"Error - invalid operation"
    case  1: text 99,"Ok"
  end_select
  return

delet:
  res% = dll_call1("DeleteXmlElement",XML%)
  select res%
    case -1: text 99,"Fatal error"
    case  0: text 99,"Error - invalid operation"
    case  1: text 99,"Ok"
  end_select
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyDim 8 Mar 2015 - 23:23

Excuses moi Klaus, je n'ai pas réagi à tes précédentes publications sur le XML par ce que je n'ai pas vraiment le temps de me mettre sur ce sujet, mais c'est en effet un format très intéressant et ton programme de mise en pratique risque en effet de bien nous éclairer sur ce sujet. Personnellement je pourrais être amené à l'utiliser entre autre au travail pour des fichiers XML de configuration, vu qu'à ce jour je ne me suis jamais plongé dans ce format.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 9 Mar 2015 - 0:26

Voilà à quoi ça pourrait ressembler. J'ai choisi le célèbre exemple d'un fichier de contacts, avec un historique des actions:
Code:
' Contacts_avec_XML.bas

' Ce petit programme implémente un carnet d'adresses à l'aide de l'objet XML.
'
' 1. Pour chaque "contact", on va créer une "fiche" qui est représentée par
'    un "noeud" dans le fichier XML.
' 2. Chacun de ces noeuds "contact" contient plusieurs noeuds "fille" qui
'    représentent chacun un ensemble logique de données.
' 3. Chacun de ces noeuds "fille" est potentiellement composé d'autres noeuds
'    "fille" contenant des informations détaillées de plus bas niveau, etc.
' 4. Un "historique" sera réalisé sous forme d'un noeud "fille" au "contact",
'    avec, à son tour, un noeud "fille" par mois, contenant des noeuds "fille"
'    pour chaque évènement, qui à leur tour sont décomposés en noeuds "fille"
'    décrivant chacun une information de détail pour l'évènement.
' 5. les informations spécifiques sont introduites par un $ pour les éléments
'    et les attributs, et un # pour les données. Ceci est géré utomatiquement.
'
' Ceci conduit à la structure suivante:
'    Root                  // noeud virtuel de "racine" créé automatiquement
'    $entête              // noeud technique contenant l'entête du fichier XML
'    contact1              // le nom de ce noeud est l'identification du contact
'      $attributs          // divers attributs en nombre variable
'        $type=client
'        ...
'        $...
'      etatcivil
'        civilite
'          #mme
'        patronyme
'          #dupond
'        naissance
'          #devergne
'        prenoms
'          #marie hélène
'        datenaissance
'          #1953/07/23
'        lieunaissance
'          ville
'            #bourges
'          departement
'            #18
'      contact
'        telephone
'          #0123456789
'        mail
'          #mh.dupond@ttest.fr
'      ...
'      historique
'        2015
'          12
'            achat
'              date
'                #2015/12/17
'              objet
'                #cartouches
'            achat
'              date
'                #2015/12/03
'              objet
'                #recharges
'          09
'            commande
'              date
'                #2015/09/23
'              objet
'                #recharges
'          02
'            retour
'              date
'                #2015/02/19
'              objet
'                #perceuse
'        2014
'          10
'            achat
'              date
'                #2014/10/04
'              objet
'                #perceuse
'          08
'            achat
'              date
'                #2014/08/25
'              objet
'                #huile de chaîne
'        2013
'          11
'            commande
'              date
'                #2013/11/14
'              objet
'                #poste soudure
'    ...
'    contactx              // le nom de ce noeud est l'identification du contact
'    ...
'
' Ceci conduit au fichier XML suivant:
'    <?xml version="1.0" encoding="UTF-8"?>
'    <contact $type="client" ...$xxx="yyy">
'      <id>#1</id>
'      <etatcivil>
'        <civilite>#mme</civilite>
'        <patronyme>#dupond</patronyme>
'        <naissance>#devergne</naissance>
'        <prenoms>#marie hélène</prenoms>
'        <datenaissance>#1953/07/23</datenaissance>
'        <lieunaissance>
'          <ville>#bourges</ville>
'          <departement>#18</departement>
'        </lieunaissance>
'      </etatcivil>
'      <contact>
'        <telephone>#0123456789</telephone>
'        <mail>#mh.dupond@ttest.fr</mail>
'      </contact>
'      ...
'      <historique>
'        <2015>
'          <12>
'            <achat>
'              <date>#2015/12/17</date>
'              <obje>#cartouches</objet>
'            </achat>
'            <achat>
'              <date>#2015/12/03</date>
'              <objet>#recharges</objet>
'            </achat>
'          </12>
'          <09>
'            <commande>
'              <date>#2015/09/23</date>
'              <objet>#recharges</objet>
'            </commande>
'          </09>
'          <02>
'            <retour>
'              <date>#2015/02/19</date>
'              <objet>#perceuse</objet>
'            </retour>
'          </02>
'        </2015>
'        <2014>
'          <10>
'            <achat>
'              <date>#2014/10/04</date>
'              <objet>#perceuse</objet>
'            </achat>
'          </10>
'          <08>
'            <achat>
'              <date>#2014/08/25/date>
'              <objet>#huile de chaîne</objet>
'            <achat>
'          </08>
'        </2014>
'        <2013>
'          <11>
'            <commande>
'              <date>#2013/11/14</date>
'              <objet>#poste soudure</objet>
'            </comande>
'          </11>
'        </2013>
'      </historique>
'    </contact>
'    ...
'    <contact $type="fournisseur">
'    ...

dll_on "KGF.dll"

end


Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 21 EmptyLun 9 Mar 2015 - 8:26

Un bon exemple vaut toujours mieux qu' un long discours... 
Je mets à jour régulièrement KGF.dll mais je suis trop pris par PPE pour me lancer dans l' étude du xml tout de suite.
Je reste concentré sur un sujet, j' évite de me disperser, je pourrai me perdre en route.Laughing 
Vu la popularité de ce format, je pense que son emploi avec Panoramic peut ouvrir des perspectives.

En tout cas, encore Bravo.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 EmptyLun 9 Mar 2015 - 13:10

C'est un peu tot mais dans quelques semaines, ça pourra être pratique pour étudier les objets exportés en XML depuis ServiceNow.
Je testerais peut être dans quelques temps quand j'aurais matière à l'utiliser.
Revenir en haut Aller en bas
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 21 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 21 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 21 sur 40Aller à la page : Précédent  1 ... 12 ... 20, 21, 22 ... 30 ... 40  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» Nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

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: