FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» EPP_V01 éditeur pour Panoramic
par Minibug Hier à 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Hier à 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 15:58

» Planétarium virtuel.
par Pedro Alvarez Hier à 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Calculatrice
par joeeee2017 Mar 18 Sep 2018 - 9:35

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 double guillemets "" dans un EDIT

Aller en bas 
AuteurMessage
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 0:51

Bonjour à tous !

Dans un EDIT, la saisie de deux guillemets consécutifs retourne un résultat erroné si aucun caractère ne les précède ou ne les suit.

Voici un petit programme de test : un EDIT pour la saisie et, en dessous, un ALPHA pour visualiser le résultat
Code:
DIM a$
LABEL Saisie
EDIT 1
ALPHA 2
TOP 2, 50
ON_CHANGE 1, Saisie
END

Saisie:
    A$=TEXT$(1)
    CAPTION 2, a$
RETURN
Tapez  "" voire une série de guillemets, le résultat sera faux.
Tapez la même chose avec un quelconque caractère avant ou après, même un simple espace, et le résultat sera bon, même pour plusieurs guillemets consécutifs.

C’est un cas très particulier qui n’a peut-être pas de solution...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 1:14

C'est un des multiples cas dans Panoramic où les guillemets posent problème. En effet, suivant mla situation, le guillemets sont "interprétées" par Panoramic ou non, et de ce fait, n'apparaissent pas ou apparaissent. C'est variable selon les situations et difficile à prévoir. Construire par exemple une chaîne de caractères contenant un guillement comme premier caractère, c'est toute une histoire. Encore plus s'il faut travailler ensuite avec cette chaîne. Le résultat sera différent selon que la chaîne en question sera affectée à une variable, écrite dans un fichier, affichée dans une propriété de type "caption" ou affichée dans un champ de données. Seules des tentatives variées peuvent fournir une solution au cas par cas. Je sais, c'est frustrant, mais c'est un problème connu depuis longtemps et a certainement sont origine très profondément dans les entrailles du parser de Panoramic. Pour ma part, je jongle souvent avec des construction utilisant chr$(34) à la place du guillemet, en encore - ce n'est pas une solution miracle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 2:47

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 9:29

Fait comme ceci:
Code:
A$=TEXT$(1)+chr$(32)
et tout rentrera dans l'ordre. C'est valable pour toutes les {constructions de} chaines qui doivent contenir des chr$(34) (guillemet).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 10:05


Bonjour tout le monde !

Merci de vos réactions !
Je suis d'accord avec vous tous !

Mais...

La difficulté réside dans le fait que ce soit une saisie "utilisateur" dans un EDIT.

Lors de la lecture de l'EDIT par la fonction TEXT$(), dans certains cas, il n'est pas possible de savoir ce que l'utilisateur a tapé réellement.

Bon dimanche à tous !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5642
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 13:59

Marc37 a écrit:
La difficulté réside dans le fait que ce soit une saisie "utilisateur" dans un EDIT.

une saisie "utilisateur" ,c'est bien là le problème !

Je ne sais pas si c'est un bug ou une situation difficile à corriger comme le dit Klaus, mais c'est tout de même perturbant.

@Marc37
je te propose une solution en contrôlant la saisie de l'utilisateur (Inspirée d'une sub de Papydall) :
Code:
rem SUB IndicateProhibitedCharacters(chaine$):' retourne OK$
      ' Fonction: envoi un message pour signaler un caratère interdit, et retourne le résultat dans OK$.
      ' au retour si OK$<>"" c'est qu'un caratère interdit a été detecté.
      ' Conseil: utilisez cette SUB avec on_change pour controler à chaque appuis sur le clavier.
      ' sont autorisés ' + - * / @ € ( ) . _
' -----------------------------------------------
SUB IndicateProhibitedCharacters(chaine$)
    dim_local i%,Lc$,Lc1$,Lt$,Lasc%,i2%
    if len(chaine$) = 0 then exit_sub
    OK$=""
    for i% = 1 to len(chaine$)
        Lc$ = mid$(chaine$,i%,1) : Lc1$ = Lc$
        Lasc% = asc(Lc$)
        Lt$ = Lt$ + Lc1$
        if Lasc%<32 then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        for i2%=33 to 38
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        if Lasc%=44 then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        for i2%=58 to 63
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        for i2%=91 to 94
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        if Lasc%=96 then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        for i2%=123 to 127
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        for i2%=129 to 175
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        for i2%=177 to 191
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
    next i%
END_SUB

Cette SUB empêche l'utilisateur de saisir des caractères spéciaux sauf ceux indiqués dans les commentaires.

Cette autre SUB empêche la saisie de tous les caratères "spéciaux"
Code:
SUB IndicateAllProhibitedCharacters(chaine$)
    dim_local i%,Lc$,Lc1$,Lt$,Lasc%,i2%
    if len(chaine$) = 0 then exit_sub
    OK$=""
    for i% = 1 to len(chaine$)
        Lc$ = mid$(chaine$,i%,1) : Lc1$ = Lc$
        Lasc% = asc(Lc$)
        Lt$ = Lt$ + Lc1$
        if Lasc%<32 then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        for i2%=33 to 47
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        for i2%=58 to 64
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        for i2%=91 to 94
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
        if Lasc%=96 then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        for i2%=123 to 191
            if Lasc%=i2% then message "Le caractère "+chr$(Lasc%)+" est interdit, pour cette saisie." : OK$="X" : exit_sub
        next i2%
    next i%
END_SUB

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: double guillemets "" dans un EDIT   Dim 19 Nov 2017 - 21:24


Merci Jean_Claude, c'est super sympa mais dans mon application, le caractère " ne doit pas être interdit ! C'est un caractère autorisé !

Merci pour tes deux SUB.

Bonne continuation !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 703
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: double guillemets "" dans un EDIT   Lun 20 Nov 2017 - 19:08

Marc tu peut faire aussi comme cela

Code:
DIM a$
a$="
LABEL Saisie
EDIT 1
ALPHA 2
TOP 2, 50
ON_CHANGE 1, Saisie
END

Saisie:
    CAPTION 2, a$ +TEXT$(1)+ a$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: double guillemets "" dans un EDIT   Mar 21 Nov 2017 - 21:43

Merci Pascal10000 !

Ta solution a le mérite de fonctionner mais ne permet pas de palier totalement le dysfonctionnement.

On ne peut pas obtenir une chaîne de caractère vide : lorsque l'on efface l'édit, on se retrouve avec une chaîne d'une longueur de 2 caractères qui sont deux guillemets.

Quant au passage dans le futur compilateur, je ne sais pas s'il va accepter a$="

Mais c'est quand même beaucoup mieux qu'avant.

Encore merci pour ta solution !

Bonne continuation.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: double guillemets "" dans un EDIT   

Revenir en haut Aller en bas
 
double guillemets "" dans un EDIT
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Double titre dans haut de la catégories
» Problème avec les mêmes messages en double dans un forum
» POI avec ou sans "Guillemets"
» UTILISER Mapsource comme cartographie dans Poiedit
» Problème TV HD et double flux

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: