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
» Planétarium virtuel.
par Pedro Alvarez Sam 21 Juil 2018 - 16:57

» Roues dentées
par jean_debord Sam 21 Juil 2018 - 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 double guillemets "" dans un EDIT

Aller en bas 
AuteurMessage
Marc

avatar

Nombre de messages : 803
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 : 5980
Age : 67
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 : 659
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 : 803
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 : 5527
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 : 803
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 : 803
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
-
» POI avec ou sans "Guillemets"
» UTILISER Mapsource comme cartographie dans Poiedit
» Problème TV HD et double flux
» j ai des souci , je debute depuis ce jour avec linux fedora
» Liens inactifs dans Outlook Express

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: