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
» Logiciel de planétarium.
Jeu : Le guillemet diabolique !!! Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Jeu : Le guillemet diabolique !!! Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Jeu : Le guillemet diabolique !!! Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Jeu : Le guillemet diabolique !!! Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Jeu : Le guillemet diabolique !!! Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Jeu : Le guillemet diabolique !!! Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Jeu : Le guillemet diabolique !!! Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Jeu : Le guillemet diabolique !!! Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Jeu : Le guillemet diabolique !!! Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Jeu : Le guillemet diabolique !!! Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Jeu : Le guillemet diabolique !!! Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Jeu : Le guillemet diabolique !!! Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Jeu : Le guillemet diabolique !!! Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Jeu : Le guillemet diabolique !!! Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Jeu : Le guillemet diabolique !!! Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 Jeu : Le guillemet diabolique !!!

Aller en bas 
3 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 10:59

Je vous propose un jeu très simple Wink

Qui arrivera à m'afficher "essai" (sans espace et avec les guillemets!) ?
Code:
'
' Le guillemet diabolique  ;)
' Qui arrivera à m'afficher "essai"
' (avec les guillemets et sans espaces)
'

DIM a$, guillemet$ : guillemet$=chr$(34)

a$=guillemet$+"essai"+guillemet$
ALPHA 1: TOP 1,20 : LEFT 1,20 : CAPTION 1,a$
FONT_NAME 1,"Courier New":FONT_SIZE 1,12:FONT_COLOR 1,255,255,0 : COLOR 1,0,0,0

a$=" "+guillemet$+"essai"+guillemet$ +" "
ALPHA 2: TOP 2,40 : LEFT 2,20 : CAPTION 2,a$
FONT_NAME 2,"Courier New":FONT_SIZE 2,12:FONT_COLOR 2,255,255,0 : COLOR 2,0,0,0

a$=LTRIM$(a$)
ALPHA 3: TOP 3,60 : LEFT 3,20 : CAPTION 3,a$
FONT_NAME 3,"Courier New":FONT_SIZE 3,12:FONT_COLOR 3,255,255,0 : COLOR 3,0,0,0

a$=" "+guillemet$+"essai"+guillemet$+" "
a$=RTRIM$(a$)
ALPHA 4: TOP 4,80 : LEFT 4,20 : CAPTION 4,a$
FONT_NAME 4,"Courier New":FONT_SIZE 4,12:FONT_COLOR 4,255,255,0 : COLOR 4,0,0,0

a$=RIGHT$(a$,len(a$)-1)
ALPHA 5: TOP 5,100 : LEFT 5,20 : CAPTION 5,a$
FONT_NAME 5,"Courier New":FONT_SIZE 5,12:FONT_COLOR 5,255,255,0 : COLOR 5,0,0,0


a$=" "+guillemet$+"essai"+guillemet$+" "
a$=MID$(a$,2,LEN(A$)-2)
ALPHA 6: TOP 6,120 : LEFT 6,20 : CAPTION 6,a$
FONT_NAME 6,"Courier New":FONT_SIZE 6,12:FONT_COLOR 6,255,255,0 : COLOR 6,0,0,0

Very Happy
EDIT: Bug forum, Ajout des signes '+ ' qui ont mysterieusement disparus après validation
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 12:00

Voilà la solution:
Code:
'
' Le guillemet diabolique  ;)
' Qui arrivera à m'afficher "essai"
' (avec les guillemets et sans espaces)
'

DIM a$, guillemet$ : guillemet$=chr$(34)

a$=guillemet$+"essai"+guillemet$
ALPHA 1: TOP 1,20 : LEFT 1,20 : CAPTION 1,a$
FONT_NAME 1,"Courier New":FONT_SIZE 1,12:FONT_COLOR 1,255,255,0 : COLOR 1,0,0,0

a$=" "+guillemet$+"essai"+guillemet$ +" "
ALPHA 2: TOP 2,40 : LEFT 2,20 : CAPTION 2,a$
FONT_NAME 2,"Courier New":FONT_SIZE 2,12:FONT_COLOR 2,255,255,0 : COLOR 2,0,0,0

a$=LTRIM$(a$)
ALPHA 3: TOP 3,60 : LEFT 3,20 : CAPTION 3,a$
FONT_NAME 3,"Courier New":FONT_SIZE 3,12:FONT_COLOR 3,255,255,0 : COLOR 3,0,0,0

a$=" "+guillemet$+"essai"+guillemet$+" "
a$=RTRIM$(a$)
ALPHA 4: TOP 4,80 : LEFT 4,20 : CAPTION 4,a$
FONT_NAME 4,"Courier New":FONT_SIZE 4,12:FONT_COLOR 4,255,255,0 : COLOR 4,0,0,0

a$=RIGHT$(a$,len(a$)-1)
ALPHA 5: TOP 5,100 : LEFT 5,20 : CAPTION 5,a$
FONT_NAME 5,"Courier New":FONT_SIZE 5,12:FONT_COLOR 5,255,255,0 : COLOR 5,0,0,0


a$=" "+guillemet$+"essai"+guillemet$+" "
a$=MID$(a$,2,LEN(A$)-2)
ALPHA 6: TOP 6,120 : LEFT 6,20 : CAPTION 6,a$
FONT_NAME 6,"Courier New":FONT_SIZE 6,12:FONT_COLOR 6,255,255,0 : COLOR 6,0,0,0

a$=chr$(34)+"essai"+chr$(34)+chr$(0)
ALPHA 7: TOP 7,160 : LEFT 7,20 : CAPTION 7,a$
FONT_NAME 7,"Courier New":FONT_SIZE 7,12:FONT_COLOR 7,255,255,0 : COLOR 7,0,0,0

Explication:
Panoramic "interprète" le contenu d'un string en l'affectant. S'il est entouré de guillemets, il les enlève en supposant que l'on voulait juste l'intérieur... Ceci explique pourquoi des espaces devant ou derrière permettent d'avoir les guillemets. Essaie ceci:
Code:
a$ = essai
print a$
et tu verras que essai s'affiche alors qu'on n'a pas mis de guillemets au moment du chargement de la variable. Ceci rejoint d'ailleurs une (très) ancienne discussion sur un bug dans le forum, où Jack nous avait expliqué ce phénomène.

Pour enfoncer le clou, essaie, dans ma solution, de remplacer
Code:

a$=chr$(34)+"essai"+chr$(34)+chr$(0)
par
Code:

a$=chr$(0)+chr$(34)+"essai"+chr$(34)
et RIEN ne s'affiche. Pourquoi ? parce que le caractère NUL est la marque de fin de string, et Panoramic stoppe à ce caractère.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 12:35

Moi, je dis que Klaus commence fort pour un retour ^^ Smile
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 13:06

Yesss !
Et Oui, c'est Klaus qui a gagné une tringle à rideaux !!! Laughing

Je savais que l'on avait déjà discuté de ce sujet, mais je n'arrivais pas à le retrouver...
scratch
Bon, la durée de vie de mon "super jeu" aura été bien courte !
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 13:32

Tu avais un bon joueur en face ^^
Revenir en haut Aller en bas
Klaus

Klaus


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

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 14:54

Et pour aller plus loin dans la compréhension de la gestion des constantes string de Panoramic, voici un petit exemple:
Code:
dim a$
a$ = essai1
print a$
a$ = "essai2"
print a$
rem a$ = essai3+"test"
rem print a$
rem print essai4
print "essai5"
a$ = chr$(34)+"essai6"+chr$(34)
print a$
a$ = chr$(34)+chr$(34)+"essai7"+chr$(34)+chr$(34)
print a$
Les lignes 5 et 8 (inhibées par un REM) produisent une erreur de compilation si l'on enlève le REM. Donc: en affectation à une variable, une constante string est OPTIONNELLEMENT entourée de guillemets. Mais dès qu'il y a une expression, elle est OBLIGATOIREMENT entourée de guillemets. Dans tous les cas, les guillemets "entourants" sont éliminés, même s'ils sont nombreux (comme les crackers Belin...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 15:06

Citation :
Dans tous les cas, les guillemets "entourants" sont éliminés

Je suis d'accord avec toi, comme en C le caractère 0 indique une fin de chaine...
bien que Delphi à une gestion bien particulière des chaines (c'est d'ailleurs un sacré merdier pour s'y retrouver !.. entre les AnsiString et autres joyeusetés)

Je pense qu'il y a quand même quelque chose de pas clair dans la gestion des chaines de caractère et c'est d'ordre plus général...

1- More END_IF than IF : interprétation d'une chaine de caractère comme étant une commande...
Code:

dim a$:a$="if titi=1 then titi=2"
if instr(a$,"then ")<> 0
  message "ok"
end_if
2- Not correct Logical Expression : Là on est dans les choux...
Code:
dim a$:a$="if titi=1 then titi=2"
if instr(a$,"then ")<> 0 then  message "ok"
3- Pour contourner le problème:
Code:
dim a$:a$="if titi=1 then titi=2"
dim i : i = instr(a$, "then ")
if i<> 0 then message "ok"


Dernière édition par Nardo26 le Ven 4 Nov 2011 - 17:36, édité 2 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 15:13

Je crois que tu titi..lles beaucoup Very Happy
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 17:31

J'aime bien "Titi" Jeu : Le guillemet diabolique !!! 1

C'est que j'ose pas utiliser "toto"...
Quoique j'ai vu que Jack à corrigé ce problème Jeu : Le guillemet diabolique !!! 35
Code:
For toto=1 to 3
  ...
next toto
-> le "toto" était interprété avant comme étant : FOR TO TO=1 TO 3

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! EmptyVen 4 Nov 2011 - 23:35

Il y a bien une ambiguïté dans l'interprétation des constantes de strings en Panoramic. Il y a un certain temps, on a eu toute une discussion sur les variables et commandes qu'on pouvait placer comme paramètres dans une commande DATA et qui étaient exécutées ou actualisées selon le contexte dynamique du programme. Je ne vais pas dérouler tout cela à nouveau. Mais je pense qu'il faut prendre cela comme des effets indésirables (le terme anglais side-effect serait plus approprié) et ne jamais baser un code sur de tels phénomènes qui pourraient fort bien changer ou disparaître dans une version future.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Jeu : Le guillemet diabolique !!! Empty
MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Jeu : Le guillemet diabolique !!! Empty

Revenir en haut Aller en bas
 
Jeu : Le guillemet diabolique !!!
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» comprend pas l'erreur d'un guillemet.
» Le guillemet récalcitrant.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: