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
» PANORAMIC V 1
Panoramic et QR code Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
Panoramic et QR code Emptypar jjn4 Hier à 17:00

» number_mouse_up
Panoramic et QR code Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
Panoramic et QR code Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
Panoramic et QR code Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
Panoramic et QR code Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
Panoramic et QR code Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Panoramic et QR code Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Panoramic et QR code Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Panoramic et QR code Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Panoramic et QR code Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Panoramic et QR code Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Panoramic et QR code Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Panoramic et QR code Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Panoramic et QR code Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €

 

 Panoramic et QR code

Aller en bas 
+3
jjn4
Marc
Yannick
7 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Yannick




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

Panoramic et QR code Empty
MessageSujet: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 18:10

Bonjour à tous !

Voilà un moment que je cherche une idée qui soit dans l'air du temps et je crois que j'en ai une 
mais bon, mes compétences étant limités et n'ayant plus pratiqué depuis un bon moment... Embarassed
Je vais faire un appel au public.

Quelqu'un aurait il connaissance d'un plugin en ligne de commande pour créer des QR codes ?
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2391
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 18:44

Salut Yannick !

Je n’ai pas ta réponse. J’avais commencé un générateur de QR code en Panoramic.

Je ne sais pas si cela peut t’aider, mais je te donne le source inachevé.

Code:
' Generateur QR code
' Versions QR code : 1 à 19 (limite à 19 : Les versions peuvent aller jusqu'a 40)
' Encodage : ISO 8859-1
' Niveaux de correction : L M Q H
' Marc - 27 septembre 2020
DIM nombreDeCaracteres%,correction%,versionQR%
DIM tableCapaciteVersion%(4,19)
DIM trame$
LABEL dessinerQRCode,nouveauQRCode,redimensionnerFenetre,calculNombreCaracteresRestant
LABEL selectionNiveauCorrection
chargementTableCapaciteVersion()
creerFenetrePrincipale()
creerFenetreAffichageQRCode()
END

selectionNiveauCorrection:
    IF LEFT$(LTRIM$(TEXT$(11)),1) = "L"
        correction% = 1
    END_IF

    IF LEFT$(LTRIM$(TEXT$(11)),1) = "M"
        correction% = 2
    END_IF

    IF LEFT$(LTRIM$(TEXT$(11)),1) = "Q"
        correction% = 3
    END_IF

    IF LEFT$(LTRIM$(TEXT$(11)),1) = "H"
        correction% = 4
    END_IF

    IF LEN(TEXT$(13)) > tableCapaciteVersion%(correction%,19)
        TEXT 13, LEFT$(TEXT$(13),tableCapaciteVersion%(correction%,19))
        CARET_POSITION 13,LEN(TEXT$(13))
    END_IF

    caracteresRestant()
    SET_FOCUS 13

RETURN

SUB creerFenetrePrincipale()
    WIDTH 0,500
    HEIGHT 0,500
    LEFT 0,(SCREEN_X-WIDTH(0))/2
    TOP 0,(SCREEN_Y-HEIGHT(0))/2
    COLOR 0,50,50,80
    CAPTION 0,"QR code générateur"
    ON_RESIZE 0,redimensionnerFenetre

    PICTURE 7
    WIDTH 7,40
    HEIGHT 7,40
    LEFT 7,420
    TOP 7,20
    FILE_LOAD 7,"QRcode.bmp"

    PICTURE 8
    WIDTH 8,40
    HEIGHT 8,40
    LEFT 8,20
    TOP 8,20
    FILE_LOAD 8,"logo.bmp"
    
    ALPHA 9
    TOP 9,25
    LEFT 9,96
    FONT_COLOR 9,250,250,250
    FONT_SIZE 9,24
    CAPTION 9,"QR code générateur"

    ALPHA 10
    TOP 10,90
    LEFT 10,42
    FONT_COLOR 10,250,250,250
    FONT_SIZE 10,10
    CAPTION 10,"Choisissez un niveau de correction d'erreur :"
  
    COMBO 11
    TOP 11,110
    LEFT 11,42
    WIDTH 11,260
    FONT_SIZE 11,9
    ITEM_ADD 11,"  L : récupère jusqu'à 7% des données"
    ITEM_ADD 11,"  M : récupère jusqu'à 15% des données"
    ITEM_ADD 11,"  Q : récupère jusqu'à 25% des données"
    ITEM_ADD 11,"  H : récupère jusqu'à 30% des données"
    ITEM_SELECT 11,1
    ON_CHANGE 11,selectionNiveauCorrection
    
    ALPHA 12
    TOP 12,159
    LEFT 12,42
    FONT_COLOR 12,250,250,250
    FONT_SIZE 12,10
    CAPTION 12,"Tapez votre texte à encoder :"
    
    MEMO 13
    WIDTH 13,400
    HEIGHT 13,150
    LEFT 13,42
    TOP 13,180
    BAR_VERTICAL 13
    FONT_SIZE 13,10
    ON_CHANGE 13,calculNombreCaracteresRestant

    ALPHA 14
    TOP 14,332
    LEFT 14,42
    FONT_COLOR 14,250,250,250
    FONT_SIZE 14,10
  
    BUTTON 15
    LEFT 15,42
    TOP 15,390
    WIDTH 15,150
    FONT_SIZE 15,10
    CAPTION 15,"&Générer le QR code"
    ON_CLICK 15,dessinerQRCode
    
    BUTTON 16
    LEFT 16,20
    TOP 16,390
    LEFT 16,292
    WIDTH 16,150
    FONT_SIZE 16,10
    CAPTION 16,"&Nouveau"
    ON_CLICK 16,nouveauQRCode
    
    correction% = 1
    caracteresRestant()
    SET_FOCUS 13
    
END_SUB                

calculNombreCaracteresRestant:
    caracteresRestant()
RETURN

SUB caracteresRestant()
    OFF_CHANGE 13
    DIM_LOCAL caracteres%
    nombreDeCaracteres% = LEN(TEXT$(13))
    IF nombreDeCaracteres% > tableCapaciteVersion%(correction%,19)
        TEXT 13,LEFT$(TEXT$(13),tableCapaciteVersion%(correction%,19))
        nombreDeCaracteres% = LEN(TEXT$(13))
    END_IF
    CARET_POSITION 13,LEN(TEXT$(13))
    caracteres% = tableCapaciteVersion%(correction%,19) - nombreDeCaracteres%
    CAPTION 14,"Nombre de caractères restant : " + STR$(caracteres%)
    ON_CHANGE 13,calculNombreCaracteresRestant
END_SUB

SUB creerFenetreAffichageQRCode()
    CREATE_HIDE
    FORM 20
    BORDER_HIDE 20
    COLOR 20,255,255,255
END_SUB

SUB chargementTableCapaciteVersion()
    DIM_LOCAL i%,j%
    FOR j% = 1 TO 4
        FOR i% = 1 TO 19
            READ tableCapaciteVersion%(j%,i%)
        NEXT i%
    NEXT j%    
END_SUB

dessinerQRCode:
    SHOW 20
    trame$ = "0100" :' entete de la trame : indicateur mode 8bits ISO8859-1
    determinerVersion()
    codageNombreCaracteres()
    conversionTexteEnBinaire()
RETURN

' determiner la version de QR code en fonction du nombre de caracteres à encoder
SUB determinerVersion()
    versionQR% = 1

    WHILE tableCapaciteVersion%(correction%,versionQR%) < nombreDeCaracteres%
        versionQR% = versionQR% + 1
    END_WHILE

END_SUB

' codage binaire du nombre de caracteres du texte a encoder et ajout a la trame
SUB codageNombreCaracteres()
    DIM_LOCAL res$
    IF versionQR% < 10
        res$ = conversionDecimalBinaire8bit$(nombreDeCaracteres%)
        trame$ = trame$ + res$
    ELSE
        res$ = conversionDecimalBinaire16bit$(nombreDeCaracteres%)
        trame$ = trame$ + res$
    END_IF
END_SUB

' conversion du texte en binaire et ajout a la trame
SUB conversionTexteEnBinaire()
    DIM_LOCAL i%,texte$,texteBinaire$,caractere$,mot$,valeurAscii%,res$,longueur%
    texte$ = TEXT$(13)
    FOR i% = 1 TO LEN(texte$)
        caractere$ = MID$(texte$,i%,1)
        valeurAscii% = ASC(caractere$)
        WHILE valeurAscii% > 0
            IF FRAC(valeurAscii% / 2) = 0
                mot$ = "0" + mot$
            ELSE
                mot$ = "1" + mot$
            END_IF
            valeurAscii% = INT(valeurAscii% / 2)
        END_WHILE
        longueur% = LEN(mot$)
        IF longueur% < 8
            mot$ = STRING$(8-longueur%,"0")+mot$
        END_IF
        texteBinaire$ = texteBinaire$ + mot$
        mot$ = ""
    NEXT i%
    trame$ = trame$ + textebinaire$
END_SUB

FNC conversionDecimalBinaire8bit$(nombreDecimal%)
    DIM_LOCAL longueur%,nombreBinaire$
    WHILE nombreDecimal% > 0
        IF FRAC(nombreDecimal% / 2) = 0
            nombreBinaire$ = "0" + nombreBinaire$
            ELSE
            nombreBinaire$ = "1" + nombreBinaire$
        END_IF
        nombreDecimal% = INT(nombreDecimal% / 2)
    END_WHILE
        longueur% = LEN(nombreBinaire$)
        IF longueur% < 8
            nombreBinaire$ = STRING$(8-longueur%,"0")+nombreBinaire$
        END_IF
    RESULT nombreBinaire$
END_FNC

FNC conversionDecimalBinaire16bit$(nombreDecimal%)
    DIM_LOCAL longueur%,nombreBinaire$
    WHILE nombreDecimal% > 0
        IF FRAC(nombreDecimal% / 2) = 0
            nombreBinaire$ = "0" + nombreBinaire$
            ELSE
            nombreBinaire$ = "1" + nombreBinaire$
        END_IF
        nombreDecimal% = INT(nombreDecimal% / 2)
    END_WHILE
        longueur% = LEN(nombreBinaire$)
        IF longueur% < 16
            nombreBinaire$ = STRING$(16-longueur%,"0")+nombreBinaire$
        END_IF
    RESULT nombreBinaire$
END_FNC

nouveauQRCode:
    CLEAR 13
    HIDE 20
    SET_FOCUS 13
RETURN

redimensionnerFenetre:
    OFF_RESIZE 0
    WIDTH 0,500
    HEIGHT 0,500
    ON_RESIZE 0,redimensionnerFenetre
RETURN

' Capacites de carateres pour la correction d'erreur L
DATA 17,32,53,78,106,134,154,192,230,271,321,367,425,458,520,586,644,718,792

' Capacites de carateres pour la correction d'erreur M
DATA 14,26,42,62,84,106,122,152,180,213,251,287,331,362,412,450,504,560,624

' Capacites de carateres pour la correction d'erreur Q
DATA 11,20,32,46,60,74,86,108,130,151,177,203,241,258,292,322,364,394,442

' Capacites de carateres pour la correction d'erreur H
DATA 7,14,24,34,44,58,64,84,98,119,137,155,177,194,220,250,280,310,338
  

Et une capture d’écran :

Panoramic et QR code Jl35_b18
Revenir en haut Aller en bas
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 20 Avr 2021 - 18:52

Merci Marc, 

je vais regarder ton code de près.
Je me dis que si c'est possible sur le net cela doit l'être avec panoramic. Laughing
Le tout est de trouver les bonnes infos pour la conception du code. Laughing
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2703
Date d'inscription : 13/09/2009

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 18:56

Eh, ça a l'air intéressant, ce truc !!!
Et où trouve-t-on les :
FILE_LOAD 7,"QRcode.bmp"
FILE_LOAD 8,"logo.bmp"
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 20 Avr 2021 - 19:01

Je me suis basé sur les infos de cet page :
http://tpe-codebarre2d.e-monsite.com/pages/page.html#page1
pour essayer de comprendre mais rien que les valeurs ASCII des caractères ont l'air fausses...
celle là a l'air bien
http://www-igm.univ-mlv.fr/~dr/XPOSE2011/QRCode/workflows.html
Laughing

bon, sur ce, aux fourneaux !
lol!
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2391
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 19:19

Je te donne également ce module (c'est une sub) que j'avais développé et qui vient s'ajouter dans le source ci-dessus.

Il s'agit de la complétion de la trame générée.

C'est en trois parties :

Les datas :
Code:
' Longeur de trame pour completion trame pour le type L
DATA 19,34,55,80

' Longeur de trame pour completion trame pour le type M
DATA 16,28,44,64
  
' Longeur de trame pour completion trame pour le type Q
DATA 13,22,34,48
  
' Longeur de trame pour completion trame pour le type H
DATA 9,16,26,36
 

Le chargement des datas :
Code:
SUB chargementTableCompletionVersion()
    DIM_LOCAL i%,j%
    FOR j% = 1 TO 4
        FOR i% = 1 TO 4
            READ tableCompletion%(j%,i%)
        NEXT i%
    NEXT j%    
END_SUB

Et la sub pour la complétion :
Code:
' completion de la trame
SUB completionTrame()
    DIM_LOCAL motsManquant%, completion1$,completion2$
    completion1$ = "11101100"
    completion2$ = "00010001"
    trame$ = trame$ + "0000"
    motsManquant% = tableCompletion%(correction%,versionQR%) - LEN(trame$)/8

    WHILE motsManquant% > 0
        trame$ = trame$ + completion1$
            IF LEN(trame$)/8 = tableCompletion%(correction%,versionQR%)
                EXIT_WHILE
            END_IF    
        trame$ = trame$ + completion2$
        motsManquant% = tableCompletion%(correction%,versionQR%) - (LEN(trame$)/8)
    END_WHILE
    
END_SUB
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2391
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 19:35

Salut JJn4 !

Désolé, je n'avais pas vu ton post.

Voici les logos :  https://mon-partage.fr/f/E4zd5Fli/
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 20 Avr 2021 - 21:39

Je me suis intéressé aussi aux QRCodes. Voici un générateur de QRCode. On tape un texte dans l'EDIT "text" et le QRCode est généré en temps réel dans un PICTURE.
http://panoramic-language.pagesperso-orange.fr/EXE/QRCodeGenerator.exe

Mais la raison pour laquelle j'interviens, c'est que Yannick m'a donné une idée avec le mot "plugin":
Yannick a écrit:
Quelqu'un aurait il connaissance d'un plugin en ligne de commande pour créer des QR codes ?

En fait, il manque des "plugins" à Panoramic.
Mon idée est de transformer QRCodeGenerator.exe en une dll qui serait appelée de manière simple: on lui passe en paramètre un string et le numéro d'un objet PICTURE, et ce plugin remplit le PICTURE avec le QRCode généré à partir du string.

Ce serait simple et efficace. Et le grande idée c'est qu'on peut tout faire de cette manière ! Pour ajouter des fonctions, on ajoute des plugins sous forme de dll.
A bientôt pour les plugins dans Panoramic...

_________________
Panoramic et QR code Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMer 21 Avr 2021 - 11:56

Merci à tous pour vos réponses.

L'idée d'une dll serait la bienvenue Jack.

D'autres sites avec des infos :
http://www-igm.univ-mlv.fr/~dr/XPOSE2011/QRCode/workflows.html

https://grandzebu.net/informatique/codbar/qrcode.htm

http://remy-manu.no-ip.biz/C++/PDF/QRCode.pdf 

Sinon il y a les générateurs sur le net mais bon... 
...on a moins mal au crâne mais c'est moins rigolo.
lol!

Je reconnais qu'il y a beaucoup d'infos sur ces sites mais de très mauvais profs.
Je vais mettre très longtemps à comprendre.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2703
Date d'inscription : 13/09/2009

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyJeu 22 Avr 2021 - 14:35

@Marc:
J'ai essayé ton programme avec les 3 parties en plus,
j'ai beau taper n'importe quoi,
ça ne donne toujours qu'un espace blanc en haut à gauche et pas de QRcode.
Est-ce que c'est normal, est-ce que c'est encore inachevé ?
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Marc

Marc


Nombre de messages : 2391
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyJeu 22 Avr 2021 - 19:21

Salut JJNn4 !

Oui ,le code-source est inachevé et donc pas du tout fonctionnel.
C'est pour cela que j'ai précisé à Yannick :

Marc a écrit:
J’avais commencé un générateur de QR code en Panoramic.
Je ne sais pas si cela peut t’aider, mais je te donne le source inachevé.

Il reste encore quelques étapes à coder avant pourvoir générer un QR code.
Revenir en haut Aller en bas
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyJeu 22 Avr 2021 - 20:26

@Marc,

Pour quelqu'un qui n'a pas été très loin dans les études comme moi c'est un cauchemar.
Laughing
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 27 Avr 2021 - 9:56

A partir d'un code trouvé sur internet, j'ai codé une DLL qui contient une fonction qui retourne un QR Code dans le presse-papier quand on lui donne un texte en paramètre.

Voici la dll:
http://panoramic-language.pagesperso-orange.fr/Panoramic_DLL.dll

Et un exemple d'utilisation de cette dll:
Code:
dim texte$
picture 1:stretch_on 1:width 1,200:height 1,200
library 1,"Panoramic_DLL.dll"
function "genere%","QR_Code_Generate",1,"i","stdcall"
texte$="Bonjour les panoramiciens"
caption 0,genere%(adr(texte$))
clipboard_paste 1
end

Cette fonction s'appelle QR_Code_Generate
Elle appartient à la dll Panoramic_DLL.dll
On lui passe en paramètre l'adresse d'un string.

La fonction calcule un QR Code à partir ce string et le met dans le presse-papier.
En panoramic, il suffit alors de le récupérer par clipboard_paste 1. L'objet numéro 1 étant un PICTURE.

La fonction retourne un entier qui vaut 0 si tout s'est bien passé et 1 s'il y a eu une erreur dans la génération du QR Code. Ce code, je le met dans le bandeau de FORM0 par la commande CAPTION.
Notez également que j'utilise LIBRARY et FONCTION, ce qui permet de créer son propre mot-clé GENERE%, C'est un avant-gout de ce que seront les plugins !  Very Happy  Very Happy  Very Happy

Je met son source à disposition (3559 lignes) pour ceux que ça intéresse:
http://panoramic-language.pagesperso-orange.fr/Panoramic_DLL.dpr

Le passage de l'adresse du string en paramètre est intéressant.
J'avais eu il y a quelques années une discussion intéressante avec Klaus sur la récupération d'un string dans une DLL quand on lui passe son adresse par la fonction Panoramic ADR(Variable$)
Klaus récupérait le string en Delphi. Lorsque Pedro avait fait son planétarium à l'été 2018, j'avais du "bidouiller" une fonction de la DLL de Klaus en son absence du forum pour pouvoir compiler le planétarium de Pedro, puis nouvelle discussion sur le passage d'un string à une dll, lorsque Klaus avait réapparu quelques mois plus tard.
Nous avions alors testé différentes méthodes de passages de l'adresse d'un string par le compilateur.
Dans ce source, vous verrez que dans la dll, je récupère le string en assembleur:
Code:
         MOV ECX,PTexte
         MOV EDX,0
         MOV EBX,[ECX]
BOUCLE:  MOV EAX,[EBX]
         MOV BYTE PTR Bte[EDX],AL
         CMP AL,0
         JE  FIN
         INC EBX
         INC EDX
         JMP BOUCLE
FIN:
En fait, ADR(Variable$) de Panoramic retourne une adresse de 32 bits (ici la variable PTexte) et passe en paramètre l'adresse d'un mot de 32 bits qui est l'adresse sur 32 bits du string Variable$ codé en zéro-terminal. (En résumé ADR retourne en fait l'adresse de l'adresse d'un string à zéro-terminal)
Ainsi, lorsqu'on récupère le string dans le tableau Bte (par MOV BYTE PTR Bte[EDX],AL), il suffit de le faire dans une boucle (BOUCLE:) qui teste si l'octet est nul ou pas (CMP AL,0).
Klaus faisait cela d'une autre manière.
J'explique ce code assembleur, car j'ai l'intention de permettre l'écriture de plugins pour Panoramic, et ce code pourrait resservir pour récupérer un string dans un plugin.
L'avantage d'un plugin, c'est qu'il pourra agir sur les objets et les variables de Panoramic.
Mais ce sera l'objet d'une autre histoire. Smile

_________________
Panoramic et QR code Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 27 Avr 2021 - 13:21

cheers Waouuuu !...

Merci Jack ! 

J'en ai rêvé, Jack l'a fait...

Je vais continuer quand même mon exploration pour le fun et surtout pour pas mourir idiot. Laughing
Je suis d'accord avec cette vue de l'avenir. Les modules, plug-in, ou le nom que vous voulez, des utilisateurs qui seront partagés sur ce forum pourrait par la suite être intégré à un package lors des nouvelles versions.
Revenir en haut Aller en bas
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 27 Avr 2021 - 13:51

Aie ! Avec la version 29i9 me dit que la ligne 6 n'est pas bonne

pas possible d'appeler la dll
pas un bon string
bref c'est le souk à la ligne 6  Laughing

Pour la version i9, le chemin doit être complet :
Code:
"c:\.....\...\Panoramic_DLL.dll"
la ligne 6 doit être : 
Code:
caption 0,str$(genere%(adr(texte$)))



je vais revoir avec la version i11 mais vu les bêtises que cette version me fait... pale
Revenir en haut Aller en bas
papydall

papydall


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

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 27 Avr 2021 - 14:04

Merci Jack.

@Yannick
Tu dois indiquer le chemin complet de Panoramic_DLL.dll
Ça m’a arrivé aussi.
Personnellement , j’ai ajouté au PATH le dossier qui contient les DLL que j’utilise (KGF.DLL, Panoramic_DLL.dll, etc ..)
De cette façon plus besoin d’indiquer le chemin de la DLL en question.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 27 Avr 2021 - 14:43

yannick a écrit:
la ligne 6 doit être :
Code:
caption 0,str$(genere%(adr(texte$)))

Là je suis surpris car il y a transformation automatique d'un entier en string. Il n'y a pas besoin de transformer en string par STR$.

Ne serais-tu pas en train de tester la dll avec le compilateur, qui, lui, exige une transformation en string par STR$ ?
Je ne pense pas que la dll fonctionne avec le compilateur (je n'ai pas testé), car de mémoire, ADR(Variable$) ne fonctionne pas de la même manière avec le compilateur. (c'est un résidu de la compilation du planétarium de Pedro, j'avais changé aussi ADR dans le compilateur pour "faire fonctionner" son planétarium avec le compilateur.)

J'ai testé la dll avec l'interpréteur en version 0.9.i11 du 7/11/2020 et je vous assure que cela fonctionne.

_________________
Panoramic et QR code Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
papydall

papydall


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

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 27 Avr 2021 - 15:05

Jack a écrit:
J'ai testé la dll avec l'interpréteur en version 0.9.i11 du 7/11/2020 et je vous assure que cela fonctionne.

Je confirme : ça fonctionne.
Il suffit d’indiquer le chemin où se trouve la dll.

Pour caption pas besoin d’indiquer un string.

Voici un code et son résultat

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 27 Avr 2021 - 15:34

@ Jack

Comme j'ai changé les deux avant de lancer, peut être que seul le chemin complet suffit.
Je suis sous 29i9 la i11 me fait un truc bizarre et me plante mon programme (le programme saute d'une condition - if...end_if - à une autre ,où il n'a rien à faire, et plante)
Je ne veux pas crier au loup car cela fait un moment que je n'ai pas fait de programme et je suis un peu rouillé voir corrodé  Laughing.

début de programme:

J'ai été obligé de coupé au niveau des lignes 192,193 et de faire deux conditions séparées :
if scc% = 8
if scc% <>8
au lieu d'un : else
car la condition scc%<>8 n'était pas respecté et le programme sautait à la ligne 196
et planté en 197 avec un caret à 0
pale geek drunken

edit : Rien que d'écrire ces quelques mots et vient une idée de faire la bidouille d'une autre manière. Pas sûr qu'elle soit très orthodoxe mais bon, le bon vieux  système P.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMar 27 Avr 2021 - 17:38

@yannick:
Je ne comprends pas bien ta demande.
Je n'ai pas trouvé d'erreur dans le code que tu montres.
Si tu penses trouver une erreur, isole la en quelques lignes, propose la sur le forum et je l'analyserai.

_________________
Panoramic et QR code Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMar 27 Avr 2021 - 18:20

@ Jack,
Ne te bile pas, j'avais du faire une andouillerie... Laughing

Par contre, je suis curieux de savoir une chose.
Lorsque l'on récupère le code touche par la variable système scancode,
la variable est elle chargé avant l'effet de la touche sur l'objet ou après ?

J' image le truc :

j'ai un objet edit il a le focus je tape sur la touche e 
Par on_key_down,... et avec la variable système scancode je veux récupérer le code la touche e
La variable est elle chargée avant ou après que la lettre e soit affichée dans l'objet edit ?

Je sais que je suis tordu mais... le savoir peut changer beaucoup de choses   Twisted Evil
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMer 28 Avr 2021 - 10:52

SCANCODE appelle l'API Windows GetAsyncKeyState, qui, comme son nom l'indique est asynchrone.
SCANCODE n'a rien a voir avec la gestion des événements ON_KEY_DOWN ou ON_KEY_UP et je ne peux pas dire si un objet Windows affiche le caractère avant ou après la fonction GetAsyncKeyState. Tout ce que j'ai vu du comportement de Windows, c'est qu'il gère ses objets de manière totalement asynchrone et je pense qu'il traite d'abord ce qui est le plus rapide et qu'il effectuera les traitements longs "plus tard". C'est ce que j'ai observé sur les objets qui affichent une image (PICTURE): l'image est mise à jour quand il n'y a plus rien d'autre à faire.

D'autre part, je ne comprends pas pourquoi tu utilises SCANCODE qui n'existe, ainsi que INKEY$ ou même INPUT que pour être compatible avec les ancien basics (programmation séquentielle). Ce sont des résidus de l'époque ou un seul programme tournait et où la notion d'événement n'existait pas. SCANCODE et INKEY$ ont été développés à la demande d'utilisateurs du forum qui avaient des habitudes d'une programmation qui se faisait sous DOS (exécution séquentielle en monotache avec le programme qui gère tout lui-même) et qui ne sont plus du tout compatibles des fonctionnements des OS d'aujourd'hui, où c'est l'OS qui gère l'environnement (programmation événementielle).

Dans un traitement d'événement, il faut oublier SCANCODE ou INKEY$ qui correspondent à une programmation séquentielle. Il n'est pas bon de mélanger les 2 modes de programmation.
C'est un peu comme vouloir tester soi-même l'objet cliqué par IF CLICKED(N)=1 au lieu d'utiliser ON_CLICK N,L.
Cela ne correspondent pas à une programmation événementielle.
Mais je me répète car j'en ai déjà parlé de nombreuses fois sur ce forum...

Le seul moyen compatible avec la gestion des événements ON_KEY_DOWN ou ON_KEY_UP pour connaître exactement quelle touche a déclenché l'événement est d'utiliser KEY_DOWN_CODE, KEY_UP_CODE avec en complément, KEY_DOWN_SPECIAL et KEY_UP_SPECIAL pour savoir si une touche spéciale a été utilisée en plus.

_________________
Panoramic et QR code Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMer 28 Avr 2021 - 13:48

@ Jack,

Merci pour la réponse, j'y vois plus clair même si cela ne fait pas mes affaires.
Le but du jeu tu dois t'en douter est de détecter si le type de texte contenu dans le MEMO est du type Numérique, Alphanumérique ou ISO.... je fais l'impasse sur Kanji  Laughing.

si je me sers de ON CHANGE N,L derrière il faut que je teste tout le texte de l'objet dans une boucle car le changement n'est pas forcement sur le dernier caractère. Avec quatre mille et des brouettes caractères pour les QRC les plus long cela risque d'être un peu long comme traitement entre deux frappe clavier.

Donc, je suis parti sur le teste de chaque frappe clavier.
je récupère le caractère, je détermine son type et j'ajoute ou retire un élément à sa catégorie.
Puis je fais ma soupe de condition pour savoir de quel type je dois me servir pour la suite.

Pour l'ajout de caractère on_key_up + key_up_code c'est bon, la lettre est affiché dans le mémo je récupère donc cette lettre à la levée de la touche

Pour le retrait d'un caractère, là, ca se complique.
Je dois récupérer le caractère avant qu'il soit effacé pour en déterminer son type.

Et pour couronner le tout j'ai des comportements que je n'explique pas
mais je ne désespère pas.

Voilà où j'en suis :
Spoiler:
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2391
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code EmptyMer 28 Avr 2021 - 22:17

Bonsoir à tous !

@Yannick

Voici une idée de discrimination du type de chaine de caractères.

Code:
dim type$, pos%, caractere$, charIsAlpha%
dim bin%, num%, alphaNum%, iso%
label identification
memo 1
on_change 1,identification
end


identification:
    caption 0,""
    type$ = ""

    bin% = 1
    num% = 1
    alphaNum% = 1
    iso% = 1
    
    for pos% = 1 to len(text$(1))
        caractere$ = mid$(text$(1),pos%,1)

        ' binaire ?
        if asc(caractere$) <> 48 and asc(caractere$) <> 49  
            bin% = 0
        end_if

        ' numérique ?
        if asc(caractere$) > 57 or asc(caractere$) < 48
            num% = 0
        end_if

        ' Alpha-Numérique ?
        charIsAlpha% = 0

        if asc(caractere$) = 32
            charIsAlpha% = 1
        end_if            

        if asc(caractere$) > 35 and asc(caractere$) < 38
            charIsAlpha% = 1
        end_if            

        if asc(caractere$) > 41 and asc(caractere$) < 44
            charIsAlpha% = 1
        end_if
            
        if asc(caractere$) > 44 and asc(caractere$) < 59
            charIsAlpha% = 1
        end_if
        
        if asc(caractere$) > 64 and asc(caractere$) < 91
            charIsAlpha% = 1
        end_if
    
        if charIsAlpha% = 0
            alphaNum% = 0
        end_if    
    
    next pos%

    affichageResultat()
return

sub affichageResultat()
    ' affichage du résultat dans le caption 0
    if bin% = 1
        type$ = " Binaire +"
    end_if
    
    if num% = 1
        type$ = type$ + " Numérique +"
    end_if
        
    if alphaNum% = 1
        type$ = type$ + " Alpha Numérique +"
    end_if    

    type$ = type$ + " iso8859"
    caption 0,type$
end_sub

Je suis parti du principe que
- tout binaire est numérique ;
- tout numérique est alpha numérique ;
- tout alpha numérique est iso8859.

Le résultat s'affiche dans le caption 0.

En espérant que cela convienne à ta recherche.

Bonne continuation !

EDIT :
J’oubliais de préciser que l’on peut insérer ou supprimer un caractère du memo, l’analyse de fait à chaque fois sur l’ensemble de la chaine de caractères.
Si le principe est retenu, il faudra ajouter entre autres, une condition si la chaine de caractères est entièrement effacée …


Revenir en haut Aller en bas
Yannick




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

Panoramic et QR code Empty
MessageSujet: re   Panoramic et QR code EmptyMer 28 Avr 2021 - 23:50

Merci Marc, je vais regarder cela de près.
Revenir en haut Aller en bas
Contenu sponsorisé





Panoramic et QR code Empty
MessageSujet: Re: Panoramic et QR code   Panoramic et QR code Empty

Revenir en haut Aller en bas
 
Panoramic et QR code
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Analyser un code Panoramic
» Domotique avec Panoramic : Code PIN et Id du HC-06 Bluetooth
» Balises code /code du forum
» Logithèque : une base de données en Panoramic pour Panoramic
» Dessiner un arc de cercle

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: