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
» Demande pour Jack concernant PanExpress
par Jack Aujourd'hui à 7:48

» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» 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 | 
 

 Jeu : Le guillemet diabolique !!!

Aller en bas 
AuteurMessage
Nardo26

avatar

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

MessageSujet: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

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

MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

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

Moi, je dis que Klaus commence fort pour un retour ^^ Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

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

Tu avais un bon joueur en face ^^
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: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Nardo26

avatar

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

MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Invité
Invité



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

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

avatar

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

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

J'aime bien "Titi"

C'est que j'ose pas utiliser "toto"...
Quoique j'ai vu que Jack à corrigé ce problème
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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

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

MessageSujet: Re: Jeu : Le guillemet diabolique !!!   Ven 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Jeu : Le guillemet diabolique !!!
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Jeu : Le guillemet diabolique !!!
» Texte entre guillemet CSS
» afficher les guillemets d'une chaine.
» POI avec ou sans "Guillemets"

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: