Invité Invité
| Sujet: Bug avec le signe '=' dans les paramètres d'appel d'un SUB Mer 23 Jan 2013 - 1:10 | |
| Je viens d'être confronté à un bug dans les paramètres d'appel d'une chaine. Le programme suivant montre le problème pris sur mon code, et adapté pour l'exemple. J'ai une chaine de caractère, dont je me sers du signe '=' comme séparateur. Exemple que j'ai mis: "Légume Amandine = patate" (pas très original, mais il faut un exemple). Si le signe est dans la chaine, il y a blocage pour l'appel d'un SUB avec illégal name variable. - Code:
-
dim texte$(10),nb_coord%,a%,a$ dlist 1 ' on rempli directement pour ne pas se servir de fichier item_add 1,"légume Amandine = patate" item_add 1,"fruit Reinette = pomme" item_add 1,"légume Charlotte = patate" GRID 2:GRID_COLUMN 2,3:GRID_COLUMN_WIDTH 2,120:width 2,370 GRID_ROW 2,100 :GRID_ROW_HEIGHT 2,20:height 2,300
for a%=1 to count(1) a$=item_read$(1,a%) explode(" ",a$ ) GRID_WRITE 2,a%+1,2,texte$(1) ' ligne de remplacement >1)légume 2)Amandine 3)patate faut prendre le 3ème paramètre explode(" ",a$) ' alors que la ligne d'origine : ' explode("= ",a$) >1)légume Amandine 2)patate (séparateur '=' ) ' provoque une erreur (27) Illegal name variable line 20 GRID_WRITE 2,a%+1,3,texte$(4) next a% end sub EXPLODE(separ$,copie$) dim_local explode%, v_explode% for explode%=1 to 10:texte$(explode%)="":next explode% : explode%=1 if right$(copie$,1)<> separ$ then copie$ = copie$ +separ$ repeat v_explode%=instr(copie$, separ$ ) if v_explode%>0 then texte$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 until v_explode%=0:Nb_coord%=explode%-1 END_SUB Il faut retirer l'apostrophe en ligne 20, pour provoquer l'erreur. |
|
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 signe '=' dans les paramètres d'appel d'un SUB Mer 23 Jan 2013 - 2:09 | |
| salut Cosmos 70 Le bug est confirmé et on en a déjà parlé. Pour remédier à ceci : remplacer le signe = par chr$(61) et ça marchera ! voir ici : https://panoramic.1fr1.net/t2492-24i1-i2-sub-chaine-en-parametre-alteree - Code:
-
DIM chaine$ : chaine$="es=sai" test(chaine$) ' test("es=sai") : ' <-- Erreur test("es"+chr$(61)+"sai") : ' <-- ça passe END SUB test(c$) print "param:";c$ END_SUB
| |
|
Invité Invité
| Sujet: Re: Bug avec le signe '=' dans les paramètres d'appel d'un SUB Mer 23 Jan 2013 - 5:42 | |
| Bonjour, Je ne me souvenais pas du tout de cela!. Qu'en au remplacement je sais ce qu'il faut faire. Il m'a semblé que c'était un bug grave et j'ai pensé qu'il fallait le signaler. Dans le cas présent pour mon code, je ne joue pas avec des patates, mais les arguments après '=' ne sont là pour l'instant que pour y voir clair pour la suite de mon code. Bonne chance à Jack. Il y a un vrai soucis avec les chaines de caractères entre-guillemets, car dans ce cas, il y a plein de confusions avec des parties de code dedans. J'ai du faire pleins de découpe de texte rassemblé, pour que Panoramic fonctionne et ne soit pas mis en défaut. |
|
Contenu sponsorisé
| Sujet: Re: Bug avec le signe '=' dans les paramètres d'appel d'un SUB | |
| |
|