| double guillemets "" dans un EDIT | |
|
|
Auteur | Message |
---|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: 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... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 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. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: double guillemets "" dans un EDIT Dim 19 Nov 2017 - 2:47 | |
| | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: 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). | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: 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 !
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: 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. @Marc37je 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+ | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: 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 !
| |
|
| |
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: 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$ | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: 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. | |
|
| |
Contenu sponsorisé
| Sujet: Re: double guillemets "" dans un EDIT | |
| |
|
| |
| double guillemets "" dans un EDIT | |
|