Avril 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | | Calendrier |
|
| | Bug avec TEXT_WIDTH | |
| | Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Bug avec TEXT_WIDTH Lun 5 Déc 2011 - 13:26 | |
| Bonjour, Je ne sais pas pourquoi mes 2 lignes ne font pas la même longueur... - Code:
-
dim lg picture 1: 2d_target_is 1 2d_line 10,10,10+text_width("essai",1),10 lg=text_width("essai",1) 2d_line 10,20,10+lg,20
bizarre non ? | |
| | | bignono
Nombre de messages : 1127 Age : 66 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Bug avec TEXT_WIDTH Lun 5 Déc 2011 - 13:45 | |
| Bonjour Nardo, Bizarre, en effet d'autant plus que si tu mets "essai" dans txt$, dans les 2 cas la ligne est de même longueur. - Code:
-
dim lg,lg2,txt$ picture 1: 2d_target_is 1 2d_line 10,10,10+text_width("essai",1),10 lg=text_width("essai",1) 2d_line 10,20,10+lg,20 txt$="essai" 2d_line 10,30,10+text_width(txt$,1),30 lg2=text_width(txt$,1) 2d_line 10,40,10+lg2,40 Ça, c'est un bug!! A bientôt | |
| | | JL35
Nombre de messages : 7093 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bug avec TEXT_WIDTH Lun 5 Déc 2011 - 13:46 | |
| Zarbi | |
| | | Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Re: Bug avec TEXT_WIDTH Mar 6 Déc 2011 - 8:53 | |
| - Citation :
- Ça, c'est un bug!!
Oui. En interne, lorsque les fonctions TEXT_HEIGHT et TEXT_WIDTH sont dans une commande (ici 2D_LINE), les chaines de caractères sont transformées en majuscules avant traitement. C'est donc "ESSAI" et non pas "essai" qui est pris en compte dans l'exemple text_width("essai",1). Je vais corriger ce bug. En fait, toute fonction qui manipule des caractères et qui se trouve dans une commande a sa chaine de caractères transformée en majuscules. Cela n'était pas gênant jusqu'à l'arrivée de ces deux fonctions TEXT_HEIGHT et TEXT_WIDTH pour lesquelles une chaine en majuscule et la même chaine en minuscule ne donnent pas le même résultat... Merci de m'avoir fait découvrir ce bug qui a échappé jusqu'à présent à tous les tests que j'effectue avant de sortir une version. | |
| | | Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bug avec TEXT_WIDTH Mar 6 Déc 2011 - 19:06 | |
| De rien Jack ! Par contre, tu es sûr que le problème ne vient que du fait que le traitement est réalisé en majuscule ? car dans les 2 cas je devrai rencontrer la même erreur... or il y a bien une différence entre ces 2 lignes : 2d_line 10,10,10+text_width("essai",1),10 lg=text_width("essai",1) : 2d_line 10,20,10+lg,20 | |
| | | Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Re: Bug avec TEXT_WIDTH Mar 6 Déc 2011 - 20:58 | |
| Non et voici pourquoi. Dans ta première ligne, TEXT_WIDTH est dans une commande: 2D_LINE, et toutes les chaines de caractères qui sont contenues dans les paramètres de la commande sont converties en majuscules. J'appelle paramètres les termes X1,Y1,X2,Y2 de la commande 2D_LINE X1,Y1,X2,Y2 Tandis que dans ta deuxième ligne, TEXT_WIDTH n'est pas dans une commande, mais dans une affectation: variable = expression, expression étant constituée d'une fonction. Dans ce cas, si la fonction contient une chaine de caractères, celle-ci n'est pas convertie en majuscules, et le résultat est donc exact. Je résume. 1er cas: COMMANDE paramètre1, paramètre2, ... dans paramètre n, on a une fonction qui traite une chaine de caractères. Cette chaine de caractères est convertie en majuscules. Ce qui donne un résultat faux pour TEXT_WIDTH. 2ème cas: VARIABLE = EXPRESSION dans EXPRESSION, on a une fonction qui traite une chaine de caractères. Celle-ci n'est pas convertie en majuscules. Ce qui donne un résultat exact pour TEXT_WIDTH. Regarde cet exemple complètement farfelu, mais syntaxiquement correct: - Code:
-
dim lg picture 1: 2d_target_is 1 2d_line 10,10,10+text_width("essai",1)+message_information_ok("texte minuscule"),10 lg=text_width("essai",1)+message_information_ok("texte minuscule") 2d_line 10,20,10+lg,20 J'ai introduit une deuxième fonction de chaine de caractères (message_information_ok) dans la commande 2D_LINE et dans l'affectation de la variable lg. Lors de l'exécution de la commande, la fenêtre message affiche des majuscules, ce qui n'est pas ce qu'on attend. Lors de l'exécution de l'affectation, la fenêtre message affiche des minuscules, ce qui est correct. Ce bug, qui n'a l'air de rien, va demander pour sa correction une modification profonde de l'analyseur (parser) des paramètres des commandes de PANORAMIC. Et ça, c'est une tâche importante. Pour le faire, puis pour le tester. Ca tombe bien, je me demandais justement ce que j'allais bien pouvoir faire pour passer le temps ... Je suis déjà en train de casser pas mal pour coder les procédures et les fonctions. Et maintenant, le parser doit être modifié. Ce soir, c'est la totale... | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Bug avec TEXT_WIDTH Mar 6 Déc 2011 - 21:44 | |
| Hallo Jack, so wie ich verstanden habe, ist es eine Menge Arbeit. Lass dir Zeit und mach es in deinem Tempo. Ich habe ein Weihnachtsgeschenk für dich. Severin Bonjour Jack, comme je l'ai compris, il ya beaucoup de travail. Prenez votre temps et faites à votre propre rythme. J'ai un cadeau de Noël pour vous. Severin | |
| | | Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bug avec TEXT_WIDTH Mar 6 Déc 2011 - 22:56 | |
| Oui, je vois ce que tu veux dire...toucher au parser ce n'est pas facile, c'est vraiment une chose à "manier avec des pincettes"... Allé, courage ! Ne te met pas la pression, franchement c'est super ce que tu as fait jusqu’à présent !!! | |
| | | Contenu sponsorisé
| Sujet: Re: Bug avec TEXT_WIDTH | |
| |
| | | | Bug avec TEXT_WIDTH | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |