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
» Je teste PANORAMIC V 1 beta 1
Mise à jour des modules Klaus Emptypar papydall Aujourd'hui à 2:48

» bouton dans autre form que 0
Mise à jour des modules Klaus Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
Mise à jour des modules Klaus Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
Mise à jour des modules Klaus Emptypar Klaus Hier à 10:23

» PANORAMIC V 1
Mise à jour des modules Klaus Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Mise à jour des modules Klaus Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Mise à jour des modules Klaus Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Mise à jour des modules Klaus Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Mise à jour des modules Klaus Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Mise à jour des modules Klaus Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Mise à jour des modules Klaus Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Mise à jour des modules Klaus Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Mise à jour des modules Klaus Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Mise à jour des modules Klaus Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Mise à jour des modules Klaus Emptypar jjn4 Lun 22 Avr 2024 - 13:43

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

 

 Mise à jour des modules Klaus

Aller en bas 
3 participants
AuteurMessage
JL35




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

Mise à jour des modules Klaus Empty
MessageSujet: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 10:47

Pardon Klaus si j'interviens ici, mais ayant eu quelques difficultés avec la fonction 'officielle' de mise à jour (en fait ça ne veut pas marcher chez moi), j'ai adopté une approche un peu différente, que voici:
Code:
' Mise à jour de KGF.dll et autres modules
LABEL Fin, GUI, Clic2, Clic, Dlf, Valide, Version, Datpdf, Datfich
DIM url$, urll$(20), fi$(20), Nbfich, a$, b$, p$, nurl%, i%, j%, k%, t%, f$, tl$
DIM ver$, fv$, nf%, n%, res%, dat$, al1, al2, al3, bt1, bt2, e1, e2, e3
p$ = "C:\PANORAMIC\KLAUS\DLLs\": ' répertoire d'utilisation des modules
tl$ = "C:\TELECHAR\": ' répertoire des téléchargements
DATA "http://klaus.panoramic.voila.net/versions/KGF.dll"
DATA "http://klaus.panoramic.voila.net/versions/KGF.pdf"
DATA "http://klaus.panoramic.voila.net/versions/KGF.chm"
DATA "http://klaus.panoramic.voila.net/versions/KGF.doc"
DATA "http://klaus.panoramic.voila.net/versions/BDR.dll"
DATA "http://klaus.panoramic.voila.net/versions/KGF_SUB.bas"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.chm"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.doc"
DATA "http://klaus.panoramic.voila.net/versions/BDR_SUB.pdf"
DATA "F"
nurl% = 0: READ a$
WHILE a$ <> "F"
    nurl% = nurl%+1: urll$(nurl%) = a$
    FOR k% = LEN(a$) TO 1 STEP -1
        IF MID$(a$, k%, 1) = "/" THEN EXIT_FOR
    NEXT k%
    fi$(nurl%) = MID$(a$, k%+1, 20): ' fichier à charger
    READ a$
END_WHILE

DLL_ON p$+"KGF.dll"
GOSUB GUI
END
' ==============================================================================
Fin:
TERMINATE
' ==============================================================================
GUI:
HEIGHT 0, nurl%*25+120: WIDTH 0,340: CAPTION 0,"KGF UPDATE": BORDER_SMALL 0
FONT_NAME 0,"Arial": COLOR 0,190,255,255
al1 = 201
ALPHA al1: LEFT al1,15: TOP al1,6: FONT_COLOR al1,0,0,255: FONT_BOLD al1
CAPTION al1,"Choisir les fichiers à mettre à jour:"
al2 = 202
ALPHA al2: LEFT al2,120: TOP al2,25: FONT_COLOR al2,0,0,255
CAPTION al2, "Version actuelle:      Version téléchargée:"

t% = 15
FOR i% = 1 TO nurl%
    t% = t%+25: CHECK i%: TOP i%,t%: LEFT i%,10: WIDTH i%,280
    ON_CLICK i%, Clic2: CURSOR_POINT i%
    e1 = i%*10+1: EDIT e1: TOP e1,TOP(i%): LEFT e1,LEFT(i%)+20: WIDTH e1,80: ' Nom
    e2 = e1+1: EDIT e2: TOP e2,TOP(i%): LEFT e2,LEFT(e1)+WIDTH(e1)+5: WIDTH e2,100: ' Version act
    e3 = e2+1: EDIT e3: TOP e3,TOP(i%): LEFT e3,LEFT(e2)+WIDTH(e2)+5: WIDTH e3,100: ' Version nouv
    f$ = fi$(i%): fv$ = p$ + f$
    TEXT e1, f$
    IF f$ = "KGF.dll" OR f$ = "BDR.dll"
        GOSUB Version
        TEXT e2, MID$(ver$, 9, 20)
    ELSE
        IF RIGHT$(f$, 4) = ".pdf"
            GOSUB Datpdf
        ELSE
            GOSUB Datfich
        END_IF
        TEXT e2, dat$
    END_IF
NEXT i%
bt1 = 204
BUTTON bt1: TOP bt1,HEIGHT(0)-60: LEFT bt1,220: CAPTION bt1,"OK"
ON_CLICK bt1, Clic
al3 = 203
ALPHA al3: TOP al3,HEIGHT(0)-80: LEFT al3,10
bt2 = 205
BUTTON bt2: TOP bt2,TOP(bt1): LEFT bt2,100: CAPTION bt2,"Valider": HIDE bt2
ON_CLICK bt2, Valide
RETURN
' ==============================================================================
Clic2:
' Click sur un check
FOR i% = 1 TO nurl%
    IF CLICKED(i%) = 1
        IF CHECKED(i%) = 1
            Nbfich = Nbfich + 1
        ELSE
            Nbfich = Nbfich - 1
        END_IF
    END_IF
NEXT i%
RETURN
' ==============================================================================
Clic:
CAPTION al3, "Chargement des fichiers..."
nf% = 0
FOR n% = 1 TO nurl%
    IF CHECKED(n%) = 1
        nf% = nf% + 1
        url$ = urll$(n%): f$ = fi$(n%): ' fichier à charger
        GOSUB Dlf: ' téléchargement du fichier
        fv$ = a$: ' chemin du fichier téléchargé
        e3 = n%*10 + 3
        IF f$ = "KGF.dll" OR f$ = "BDR.dll"
            GOSUB Version : ' version du nouveau fichier téléchargé
            b$ = MID$(ver$, 9, 20)
            TEXT e3, b$
            ' CAPTION n%, CAPTION$(n%)+"  ->  "+b$
        ELSE
            IF RIGHT$(f$, 4) = ".pdf"
                GOSUB Datpdf
            ELSE
                GOSUB Datfich
            END_IF
            TEXT e3, dat$
        END_IF
    END_IF
NEXT n%
IF nf% = 0 THEN CAPTION al3, "": RETURN: ' pas de fichier coché
CAPTION bt1,"Quitter": ON_CLICK bt1, Fin
CAPTION al3,"Terminé, valider ? (décocher les modules à ne pas actualiser)"
SHOW bt2
RETURN
' ==============================================================================
Dlf:
' Connexion à l'url donnée et téléchargement du fichier f$
a$ = tl$ + f$
IF FILE_EXISTS(a$) = 1 THEN FILE_DELETE a$
EXECUTE_WAIT url$
WHILE FILE_EXISTS(a$) = 0: WAIT 1000: END_WHILE
' ici, fichier téléchargé dans le répertoire tl$
RETURN
' ==============================================================================
Valide:
' Recopie des fichiers  téléchargés dans leur répertoire d'utilisation
FOR i% = 1 TO nurl%
    IF CHECKED(i%) = 1
        a$ = fi$(i%): ' fichier
        IF FILE_EXISTS(tl$+a$) = 1: ' fichier téléchargé
            ' IF FILE_EXISTS(p$+a$) = 1 THEN FILE_DELETE p$+a$
            ' FILE_COPY tl$+a$,p$+a$
            EXECUTE_WAIT "CMD.exe /C COPY " + tl$+a$ + " " + p$+a$ + " /Y"
            FILE_DELETE tl$+a$
        END_IF
    END_IF
NEXT i%
RETURN
' ==============================================================================
Version:
' rechercher la version de KGF.dll ou BDR.dll, fv$ = chemin complet
f$ = FILE_EXTRACT_NAME$(fv$)
FILEBIN_OPEN_READ 9, fv$: a$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
res% = DLL_CALL2("ReadBinaryFileToString",ADR(fv$),ADR(a$))
b$ = CHR$(25)+CHR$(0)+CHR$(0)+CHR$(0)+f$+" V": ' séquence cherchée (empirique)
k% = INSTR(a$, b$): ver$ = f$
IF k% > 0 THEN ver$ = MID$(a$, k%+4, 25)
RETURN
' ==============================================================================
Datpdf:
' Date de création d'un fichier pdf
dat$ = "(non trouvé)"
IF FILE_EXISTS(fv$) = 1
    FILEBIN_OPEN_READ 9, fv$: a$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9
    res% = DLL_CALL2("ReadBinaryFileToString",ADR(fv$),ADR(a$))
    b$ = "/CreationDate <": ' séquence cherchée
    k% = INSTR(a$, b$)
    dat$ = "": b$ = ""
    IF k% > 0
        a$ = MID$(a$, k%+19,24): ' Creation Date
        FOR k% = 2 TO LEN(a$) STEP 2
            b$ = b$ + STR$(VAL(MID$(a$, k%, 1)))
        NEXT k%
        dat$ = MID$(b$,7,2)+"/"+MID$(b$,5,2)+"/"+LEFT$(b$,4)+" "
        dat$ = dat$ + MID$(b$,9,2)+":"+MID$(b$,11,2)
    END_IF
END_iF
RETURN
' ==============================================================================
Datfich:
' Date de création d'un fichier quelconque
' -> date d'écriture sur le disque, après téléchargement... sans intérêt
dat$ = "(non trouvé)"
IF FILE_EXISTS(fv$) = 1
    dat$ = STRING$(255," ")
    res% = DLL_CALL2("GetFileDate",ADR(fv$),ADR(dat$))
    dat$ = LEFT$(dat$,16): ' sans les secondes
END_IF
RETURN
' ==============================================================================
SUB Exprog(prog$)
    ' Exécution d'un programme externe sans la fenêtre noire Ms-DOS
    ' - exemple: Exprog("Cmd.exe /c DIR C:\UTIL >C:\TEMP\Dir.txt")
    DIM_LOCAL scr$, bat$, qu$
    scr$ = "C:\TEMP\Vbscript.vbs"
    bat$ = "C:\TEMP\Bat.bat"
    qu$ = CHR$(34)
    ' ===== Création du fichier .bat
    FILE_OPEN_WRITE 9, bat$: FILE_WRITELN 9, prog$: FILE_CLOSE 9
    ' ===== Création du script .vbs
    FILE_OPEN_WRITE 9, scr$
    FILE_WRITELN 9, "CreateObject("+qu$+"Wscript.Shell"+qu$+").Run "+qu$+bat$+qu$+",0,True"
    FILE_CLOSE 9
    ' ===== Exécution du script
    EXECUTE_WAIT "WSCRIPT.exe "+scr$
    FILE_DELETE bat$: FILE_DELETE scr$
END_SUB
' ==============================================================================

Remarques:
- Il faut adapter les variables p$ et tl$.
- je n'utilise donc pas la fonction DownloadFile, mais une connexion directe sur le téléchargement du fichier.
- les téléchargements se font dans le répertoire implicite de téléchargements du navigateur.
- il s'affiche la date ou la version actuelle (en service) des fichiers, puis, après téléchargement, la date ou la version des fichiers téléchargés, le transfert dans le répertoire d'utilisation ne se faisant qu'à l'appui sur un bouton (avec suppression dans le répertoire de téléchargement).

Les date/version de KGF.dll et BDR.dll sont lues dans le fichier lui-même, ainsi que les dates de création des fichiers pdf,
Il faut noter que la date fichier donnée par la fonction GetFileDate est la date d'écriture sur le disque au moment du chargement, et non la date de création, donc sans intérêt pour comparer les versions.

PS Je ne me lasse pas de la fonction ReadFileToString qui est irremplaçable par sa facilité pour analyser un fichier binaire, les fonction natives Panoramic étant bien trop limitées pour un fichier un peu long.


Dernière édition par JL35 le Ven 17 Mai 2013 - 13:31, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 12:53

Belle réalisation !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

Mise à jour des modules Klaus Empty
MessageSujet: re   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 12:56

Beau Travail !

Attention, ne fonctionne pas avec chrome en navigateur par défaut.
Chrome demande une autorisation pour charger les dlls,
ce qui bloque le programme.

Edit : Une idée comme çà... Laughing Peut être est ce mozilla qui bloque le chargement avec l'autre méthode... Laughing
Revenir en haut Aller en bas
JL35




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

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 13:25

Je viens de corriger une omission dans le s/p Clic: prise en compte de la date de création des pdf téléchargés...

@ygeronimi
bizarre que chrome bloque les dll et pas les autres... ce n'est pas un paramètre à changer ?
En tout cas pour moi je ne sais pas ce qui bloque la fonction, le code erreur n'est pas très explicite !
Revenir en haut Aller en bas
Yannick




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

Mise à jour des modules Klaus Empty
MessageSujet: re   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 13:32

Chrome me demande une autorisation pour toutes les extensions système.
*.exe , *.dll , ...
Revenir en haut Aller en bas
JL35




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

Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus EmptyVen 17 Mai 2013 - 14:00

Je sais que ça existe pour les exe, et c'est aussi logique pour les dll, pareil pour les ouvrir en pièces jointes dans les emails, mais firefox ne me demande rien...
Peut-être que je les ai autorisés définitivement quelque part...

Je précise au passage (toujours dans mon système ci-dessus) qu'en ce qui concerne le téléchargement des pdf, c'est la 1ère page qui est présentée, il faut cliquer sur l'icône en haut à droite pour se voir proposer le téléchargement:
Mise à jour des modules Klaus Pdf
Revenir en haut Aller en bas
Contenu sponsorisé





Mise à jour des modules Klaus Empty
MessageSujet: Re: Mise à jour des modules Klaus   Mise à jour des modules Klaus Empty

Revenir en haut Aller en bas
 
Mise à jour des modules Klaus
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Mise à jour de Panoramic_Editor
» Mise à jour de la documentation
» PanExpress : l'éditeur Panoramic avec création d'objet
» Traitement des chaînes de caractères.
» Mise à jour PANOCALC

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: