Novembre 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 le caractère "=" dans un paramètre de SUB | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Bug avec le caractère "=" dans un paramètre de SUB Lun 16 Déc 2013 - 19:24 | |
| On ne peut pas placer un signe "=" dans un paramètre passé comme constante, à une sub. Exécutez le code suivant: - Code:
-
test("a - b") test("a = n") end
sub test(c$) message c$ end_sub Le premier appel passe, le second plante. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Lun 16 Déc 2013 - 20:11 | |
| Effectivement il y a un problème, Comme çà, çà marche: - Code:
-
dim a$ a$="a = n" test(a$) END sub test(c$) message c$ end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Lun 16 Déc 2013 - 20:52 | |
| Oui, je sais, Jean-Claude. Cela prouve que le parser syntactique a un problème avec la reconnaissance des chaînes de caractères, speécifiquement dans un appel à une SUB. C'est clairement eun cas pour Jack. Certes, pas prioritaire à mon avis. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 1:24 | |
| Ce problème a été soulevé ici. Mais il est clair qu’il n’a pas été corrigé. | |
| | | Invité Invité
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 2:39 | |
| A propos des variables locales, je viens de déboguer mon problème. J'avais une répétition de code que je ne comprenais pas, et ayant un programme qui fait plusieurs choses à la fois, je ne trouvais pas ce qui se passait. J'avais dans une sub un code du genre: - Code:
-
for a% = 1 to ... formater(item_read$(35,a%) ... next a% end_sub et pour formater: - Code:
-
sub formater(a$) dim_local a%,b$,c$ ,v% for a% = 1 to len(a$) b$ = mid$(a$,a%,1) v% = instr(lettre$,b$) if v%>0 then c$ = c$+item_read$(3,v%):else: c$=c$+b$ next a% retour$ =c$ end_sub Et bien la variable locale a% de la sub qui appelle formater(a$) n'était pas respectée, et devait reprendre la valeur de celle de formater(.) Si je m'en souvient bien, je crois que c'est un bug de Delphi (effet de bord). Là je ne m'y attendais pas. J'ai mis une autre variable. Mais peut-être y-at'il un nombre d'imbrication (ou d'un même variable qui sans être imbriquée, est utilisée) à ne pas dépasser. Dans ce cas, j'aimerais savoir quel est ce nombre. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 16:19 | |
| @Cosmos70 - Cosmos70 a écrit:
- Et bien la variable locale a% de la sub qui appelle formater(a$) n'était pas respectée, et devait reprendre la valeur de celle de formater(.)
Je n’ai pas compris ce que tu veux dire. A mon avis, il n’y a pas de problème avec les variables locales, à moins que je n’aie pas vu ce qui m’a échappé. Le code suivant utilise une variable globale A% et une variable locale A%. A l’intérieur de la SUB qui déclare la variable locale, c’est cette dernière qui est prioritaire : la variable globale de même nom n’est ni prise en compte ni modifiée. A l’extérieur de la SUB, la variable locale n’est plus définie : elle n’existe plus et c’est la variable globale de même nom qui est prise en compte par le programme. - Code:
-
dim a%,x%
list 1 : list 2 : left 2,140 : width 2,440 item_add 1,"Salut tout le monde" item_add 1,"Hello everybody" item_add 1,"Hallo jedermann" item_add 1,"Ciao tutti" item_add 1,"Hola todo el mundo" item_add 1,"Assalamou allaykom"
print_y_locate 100 print "Valeurs de la variable globale A% (numéro d'article en cours de la liste)" print_y_locate 140 print "Valeurs de la variable locale A% (numéro de caractère de l'article en cours)"
for a% = 1 to count(1) print_locate (a%-1)*100,120 : print "a% = " + str$(a%) Aerer(item_read$(1,a%)) next a% end rem ============================================================================ SUB Aerer(a$) dim_local a%,b$,c$,space$ space$ = string$(5," ") : x% = x% + 1 for a% = 1 to len(a$) b$ = mid$(a$,a%,1) : c$ = c$ + space$ + upper$(b$) print_locate (x%-1)*100,150+15*a% print "a% = " + str$(a%) + " " + b$ next a% item_add 2,c$ end_sub rem ============================================================================
Si tu veux bien poster un exemple pour montrer ce qui ne va pas , on verrait peut-être mieux. | |
| | | Invité Invité
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 19:01 | |
| Papydall, Je ne fais pas de rapport sans raison. La sub fonctionnait sans problème et j'ai été très surpris hier de voir que cela ne correspondait à rien. Bon je fais plusieurs choses. J'ai laissé quelques jours pour faire des testes avec la dll de Klaus, et voir la dernière version. Sur mon programme, il y a eu des ajouts ou des reprises à d'autres endroits, mais cette sub, avec celle qui est appelée n'a pas été touchée.
J'ai une variable locale dans une sub qui est a%, qui est aussi comme locale dans d'autres sub, ainsi comme global au départ pour des initialisations. Bon:
Dans cette sub, j'ai une boucle: for a%=1 to count(15, a%) formater(item_read$(15,a%) Donc là je vais à formater(a$) qui a aussi une boucle: for a% = 1 to len(a$) ... next a%
Donc je devrais avoir un retour, mais le a% en rouge de la première ne correspond plus au count(15), qui dans le cas ici donné, devait être de trois appels. Et j'en avais près de dix sans raison. D'ailleurs ayant défini une variable de remplacement pour celle en rouge, cela redevient normal. Preuve qu'il y a eu un problème. Si tu regardes la sub: formater(a$) que j'ai mis, tu trouves: dim_local a% qui est bien locale dans cette sub. La variable a% de formater(), a eu une influence sur la sub appelante.
Si tu regardes bien mon exemple publié la première fois, tu vois bien qu'il ne peut pas y avoir d’ambiguïté. Je dois avoir le même nombre de retour que le nombre d'item. Si il y en a beaucoup plus, c'est qu'il y a un problème, et comme je l'ai dit, avec une autre variable, le code est respecté. Il était aussi respecté précédemment les dix/quinze jours précédent. Il y a eu du complément ailleurs, alors je me demande si a un moment donné il y a une pile qui n'est pas débordée. Je rajoute et c'est même sans intérêt, il n'y a aucun timer qui puisse modifier la variable.
Au final tu me donnes un exemple, mais cela ne sert à rien. C'est un problème ponctuel, et n'importe quel exemple que tu me montrera, ne me dira pourquoi cela c'est produit. Mais ne le prends pas mal pour autant. Ni toi, ni moi ne pouvons donner une réponse, et tu as essayé de te pencher sur le problème. Au moins je sais que tu regardes mes postes. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 21:14 | |
| Sans vraiment comprendre exactement ton problème, j'ai relevé un point précis qui me semble problèmatique: - Code:
-
for a%=1 to count(15, a%) Comment peux-tu changer la condition de fin selon la variation de ta vaiable de boucle ? Pour moi, c'est exclu ! | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 21:38 | |
| Le bug dans le passage d'une chaine de caractères à un SUB est résolu. Une nouvelle version instantanée est disponible sur le Webdav. - Code:
-
test("a = n") end
sub test(c$) message c$ end_sub Ce code s'effectue sans problème. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 21:55 | |
| - Cosmos70 a écrit:
- Au final tu me donnes un exemple, mais cela ne sert à rien. C'est un problème ponctuel, et n'importe quel exemple que tu me montrera, ne me dira pourquoi cela c'est produit. Mais ne le prends pas mal pour autant. Ni toi, ni moi ne pouvons donner une réponse, et tu as essayé de te pencher sur le problème. Au moins je sais que tu regardes mes postes.
Ok, je ne le prends pas mal (ce n’est pas de mon habitude). Mais je ne comprends pas - Code:
-
for a%=1 to count(15, a%) formater(item_read$(15,a%) La fonction COUNT(n) nécessite un seul argument qui est le numéro de l’objet système désigné par n. C’est quoi le a% dans count(15,a%) ? Et je pense qu’il manque une parenthèse fermante à formater(item_read$(15,a%)). Sans doute, il doit y être ainsi puisque « tu ne fais pas de rapport sans raison ». Salut. | |
| | | Invité Invité
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 23:17 | |
| Vingt d. vous etes ch. ! Je donne une explication, et en même temps je tape des lignes de codes. Je peux faire des erreurs, et oublier une parenthèse. C'est l'explication qu'il faut regarder. C'est pas évident de contrôler quand on a pas une police plus lisible pour poster un code. Des fautes j'en vois pleins sur des erreurs de frappe, et je comprend. Comprenez aussi que l'explication que je donne est plus importante, qu'un paramètre en trop sur une ligne. Vous comme moi vous connaissez la syntaxe du code, et pouvez suivre l'exemple donné. Ouf! Désolé, c'est pas un coup de gueule, seulement un échappatoire. - Citation :
- Sans doute, il doit y être ainsi puisque « tu ne fais pas de rapport sans raison ».
Salut. Je prend note! @ Klaus - Citation :
- Sans vraiment comprendre exactement ton problème, j'ai relevé un point précis qui me semble problèmatique:
En dehors de l'erreur de retransmission avec le a% de trop, il a jamais été question de vouloir modifier la condition de la boucle. Le programme là fait lui-même dans ce cas sans raison, Sinon pourquoi je me serais permis de poster cette constatation, car c'est pas logique. Je vais être obligé de m'interdire de poster le moindre problème, je passe pour .. ... Je vais m'attribuer un bonnet d'âne pour votre plaisir. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mar 17 Déc 2013 - 23:51 | |
| Toutes mes excuses ! Ce n’était pas mon intention de te blesser.
Je suis de la génération du « s’il vous plait », et du « merci », du respect aux aînés, et du « je peux ? »; De saluer avec le sourire, d’aimer les personnes pour ce qu’elles sont et non pour ce qu’elles ont. De me rendre utile et d’apporter mon aide quand je peux. On m’a appris à traiter les gens aimablement et à leur dire bonjour, bonsoir.
Bonne nuit.
Dernière édition par papydall le Mer 18 Déc 2013 - 0:23, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mer 18 Déc 2013 - 0:06 | |
| Non, je ne suis pas blessé. J'essaye de répondre au plus vite, et le plus vite dur. Reprendre ce qui a été très certainement mal expliqué de ma part, ne me facilite pas les choses. J'essaye d'avancer, je remets la marche arrière à chaque fois. Bonsoir à toi aussi! |
| | | Invité Invité
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB Mer 18 Déc 2013 - 10:39 | |
| @Papydall cette fois-ci J'ai mis un post à côté (sans plaisir, évidemment), c'est simplement qu'à la relecture je me suis rendu compte que mes propos pouvaient être mal pris. Moi aussi j'ai appris la politesse, et je le suis parfois pas sans m'en rendre compte. Salutation. A propos: j'ai promis au d'être gentil! J'ai pas oublié. |
| | | Contenu sponsorisé
| Sujet: Re: Bug avec le caractère "=" dans un paramètre de SUB | |
| |
| | | | Bug avec le caractère "=" dans un paramètre de SUB | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |