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 |
|
|
| [Résolu] Pourquoi item_add n'ajoute pas un caractère? | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 8:38 | |
| Bonjour, J'étais parti plusieurs jours sans ordi. Je reprend un programme de teste pour mise au point, et j'ai une incompréhension sur un code. Le contenu d'une chaîne ne s'ajoute pas dans un list, et c'est à la ligne 74. Dans les choix des conditions, c'est les lignes qui sont marqué: '3)' pour les retrouver. - Code:
-
label fin , teste , err height 0, screen_y : width 0,900 dim a$,chaine$,p% , i% ,j% , q% , a% , k% , l% , l1% , b$ , t$ : t$ = chr$(13) a$ = string$(200,"-") chaine$ =" for a% = 1 to 10:print a% + " +chr$(34) + "ceci est un essai de chaine" + chr$(34) + " : next a%" caption 0,chaine$ : font_name 0,"Consolas" : font_size 0,8 :font_bold 0
left 0,300 list 10 : left 10,550: width 10,300 : height 10,600 : font_size 10,10 memo 11:width 11,598:height 11,height(0)-80:bar_both 11 :color 11,230,230,255 print_target_is 11 print chaine$ : print
on_close 0,fin gosub teste end ' ==============
teste: ' on_error_goto err i% = 1 : j% = 1 : k% = 1 :l% = 1 repeat if i% > 0 then i% = instr_pos(chaine$," ",i%+1) : ij(i%) :' message "i%=" + str$(i%) if j% > 0 then j% = instr_pos(chaine$,":",j%+1) : ij(j%) if k% > 0 then k% = instr_pos(chaine$,"=",k%+1) : ij(k%) if l% > 0 l% = instr_pos(chaine$,chr$(34) , l% + 1) ij(l%) if l% > 0 l1% = instr_pos(chaine$,chr$(34), l%+1) : l% = l1% : if l1% = 0 then i% = 0 : j% = 0 : l% = 0 :' sorti, restant chaine end_if end_if if scancode = 27 then exit_repeat until ( i% = 0 and j% = 0 and l% = 0 ) or scancode = 27 clear 11 i% = 1 : j% = 0 : p% = 0 : l% = 0 caption 0,a$
repeat
p% = instr(a$,"*") ' message chaine$ + t$ + str$(p%) if p% > 0 if mid$(chaine$,p%,1) = " " if count(10) > 1 b$ = item_read$(10,count(10)) item_delete 10,count(10) : item_add 10,b$ + left$(chaine$,p%) print a$:print chaine$ : print "1) p%=",p%," a$=",a$ chaine$ = right_pos$(chaine$,p% + 1) a$ = right_pos$(a$,p%+1) print upper$(chaine$) else item_add 10," " print a$ : print chaine$ print "1.1) p%=",p%," a$=",a$ a$ = right_pos$(a$,2) chaine$ = right_pos$(chaine$,2) print upper$(chaine$) end_if else if p% > 1 print a$ :print chaine$:print "2) p%=",p%," a$=",a$ item_add 10,left$(chaine$,p%-1) + "<== " + str$(p%) chaine$ = right_pos$(chaine$,p%+1) a$ = right_pos$(a$,p%+1) print upper$(chaine$) else print a$ : print chaine$:print "3) p%=",p%," >",mid$(chaine$,p%,1) ,"< a$=",a$ ' pourquoi signe = ou autre n'est pas ajouté dans 10 ? item_add 10,left$(chaine$,p%) + "<== "+str$(p%) message "regardé si c'est affiché dans 10"+t$+left$(chaine$,p%)+t$+mid$(chaine$,p%,1) chaine$ = right_pos$(chaine$,2) a$ = right_pos$(a$,2) print upper$(chaine$) end_if end_if else ' message "p%=" + str$(p%) end_if ' if scancode = 27 then stop
until p% = 0 or scancode = 27 item_add 10, chaine$
Print "TERMINÉ" return ' ==================================================== err: clipboard_string_copy "ERREUR - ligne:"+ str$(error_line) + t$ + error_type$ message clipboard_string_paste$ stop return
' ====================================================
sub ij(a%) if a% > 0 if a% = 1 a$ = "*"+ right_pos$(a$,2) else a$ = left$(a$,a%-1) + "*" + right_pos$(a$,a%+1) end_if end_if caption 0,str$(p%) + " :" + str$(i%) + " "+str$(q%) + " :" + str$(j%) print a$ : print end_sub ' =========================== fin: terminate Normalement le signe '=' devrait être ajouté, et ce n'est pas le cas. Je prend mes désirs pour des réalités. Trop gourmand, le bonhomme.
Dernière édition par cosmos70 le Sam 8 Fév 2014 - 12:25, édité 1 fois |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 11:44 | |
| Bonjour Cosmos 70 Je pense que ITEM_ADD fait bien son boulot mais qu’une partie de la LIST 10 reste invisible. Modifie la ligne 9 comme ceci - Code:
-
list 10 : left 10,550+60: width 10,300 : height 10,600 : font_size 10,10 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 12:01 | |
| Ton code ne s'exécute malheureusement pas - trop d'erreurs. Il ne doit pas être complet. Mais voici un petit essai avec un LIST et un MEMO, et il n'y a aucun problème: - Code:
-
dim chaine$ full_space 0 list 1 : full_space 1 : height 1,200 memo 2 : full_space 2 : height 2,200 : top 2,210 chaine$ =" for a% = 1 to 10:print a% + " +chr$(34) + "ceci est un essai de chaine" + chr$(34) + " : next a%"
item_add 1,chaine$ item_add 2,chaine$
end
| |
| | | Invité Invité
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 12:24 | |
| Merci pour vos interventions. J'ai compris le problème, et c'est Papydall qui a raison. J'ai simplement inversé memo11 et list 10. Le memo 11 que j'ai ajouté pour ne pas écrire sur la form, comme je le faisais au départ, recouvrait le list 10 en partie.
Par contre même si c'est un début, je ne comprend pas ta réponse Klaus. Certes ce n'est pas complet, mais avant de continuer, je contrôle le résultat de départ, avant de rajouter les autres testes. Je ne vois pas (à part le recouvrement du memo sur le list), les erreurs que tu trouves. |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 12:28 | |
| Je suis moi aussi content qu'il n'y ait pas de bug dans ITEM_ADD. J'avais exécuté ton code mais je l'ai trouvé assez compliqué pour y débusquer facilement une erreur dans PANORAMIC. Puis j'ai effectué quelques test de ITEM_ADD et LEFT$ sans trouver aucune erreur sur un signe égal qui ne serait pas pris en compte.
Happy end ! _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Invité Invité
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 14:15 | |
| Merci Jack d'avoir bien voulu regardé mon problème. Effectivement cela ne parait pas évident de regardé un tel code. Lorsque je conçois un programme, je fais beaucoup de testes, avec des repères, et je tiens compte des résultats. Ce que j'aurai aimé, c'est de pouvoir inclure les guillemets en début et fin de chaîne, comme tout-autre caractère, car c'est parfois la galère pour y arrivé, vu que généralement ils sont effacés. Pour y arrivé, il faut inclure un espace devant, et selon le code, c'est pas toujours souhaitable, et même parfois problématique. Pour ici, ce ne sera pas le cas, car je modifie celui-ci par un autre caractère, et la lecture, il sera directement modifié en html comme guillemet (le caractère de remplacement sera remplacé par: """), c'est-à-dire hors d'un objet Panoramic. Cela a été demandé plusieurs fois, oui, ce sera une fois de plus. Qui sait, peut-être ce sera peut-être la bonne. Je ne vais pas dire pourquoi je procède sur ce programme ainsi, c'est hors sujet, et chacun a mieux à faire, que de lire mes propos. Merci pour vos interventions. |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 8 Fév 2014 - 20:19 | |
| @ Cosmos70,
Si tu veux inclure les " à une chaine texte, tu peux faire ceci
item_add x%, chr$(34)+"ma chaine de caractere"+chr$(34)
A moins que je sois hors sujet, ce qui est encore du domaine du possible... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 20:49 | |
| Pas tant que ça, Ygeronimi. Ca ne marche pas ainsi. Regarde: Tu vois, le problème est plus délicat que ça... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 22:39 | |
| Bonsoir à tous, Je n'ai pas essayé le programme de Cosmos, mais pour afficher les guillemets, j'utilise print: - Code:
-
memo 1 print_target_is 1 print chr$(34);"ma chaine de caractere";chr$(34) Néanmoins, on peut les afficher avec item_add comme ceci: - Code:
-
memo 1 item_add 1, chr$(34)+chr$(34)+"ma chaine de caractere"+chr$(34)+chr$(34)
A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 23:08 | |
| Oui, je sais... il y a une différence de traitement des chaînes de caractères entre PRINT et ITEM_ADD... | |
| | | Invité Invité
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 23:15 | |
| Oui mais il n'y a pas la solution avec item_add. item_add 1, chr$(34)+chr$(34)+"ma chaine de caractere"+chr$(34)+chr$(34) donne : ma chaine de caractere sans guillemet chez moi. Il me semblait bien avoir déja fait l'essai. Depuis 2008, bien des fois on a parlé de ce problème, sans réponse de Jack. Quant à PRINT dans un list ou memo, comment fait-on pour le placer à telle position d'index? |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Sam 8 Fév 2014 - 23:43 | |
| Effectivement Cosmos, pour un print c'est difficile de le positionner à l'index que l'on veut dans un list ou un memo, à moins que Jack nous fasse une instruction pour cela du genre: print_index N,L. Par contre j'essaierai une solution: Là où je veux mettre un print à l'index L de mon list, je ferais un item_insert N,L,"", puis je copierais mon list dans un dlist, je ferais clear sur le list, et je recopierai chaque item du dlist avec print dans le list en mettant un test sur la ligne vide pour y insérer ce que j'ai prévu d'intercaler. Ouf! Compliqué, n'Est-ce pas? Vaut mieux oublier. Bon, pour moi c'est l'heure de . A demain | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Dim 9 Fév 2014 - 0:13 | |
| Voici mon petit grain de sel. - Code:
-
Dim g$,a$ memo 1 : top 1, 10 : left 1, 300 g$ = chr$(34) a$ = g$ + "Salut tout le monde" + g$ + " " : print a$ item_add 1,a$ a$ = ltrim$(a$) : print a$ item_add 1,a$
| |
| | | Invité Invité
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Dim 9 Fév 2014 - 0:35 | |
| Oui c'est ok. C'est une chose qu'on a constaté. On peut afficher les guillemets que si il y au moins un espace devant ou derrière (ou les deux). Mais j'estime que ce n'est pas correct de procéder ainsi. Majoritairement c'est sans importance qu'il y ait un espace devant ou non, mais parfois, il faut une représentation stricte du contenu, et l'espace est de trop. Tous les basics que j'ai utilisé jusqu'à présent, si ma mémoire ne fait pas défaut, permettaient la représentation normale d'une chaine avec les guillemets. Panoramic étant voulu comme langage basic, devrait avoir cette caractéristique. La question est: Pourquoi le guillemet serait un caractère qui ne doit pas être affiché de part et d'autre d'une chaine? Pour moi cela n'a pas de sens. Mais comme je ne suis pas de ce monde (quelle bénédiction d'avoir cosmos comme surnom! Cela me permet d'échapper aux problèmes terriens), et bien mes propos peuvent être dites de manière anodine! Je vais rejoindre les étoiles. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? Dim 9 Fév 2014 - 0:42 | |
| Habitant du cosmos, le terrien que je suis, je te dis que je partage parfaitement ton avis.
D’après Wikipédia : Le mot COSMOS vient du grec et désigne un monde clos qui a un ordre. | |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu] Pourquoi item_add n'ajoute pas un caractère? | |
| |
| | | | [Résolu] Pourquoi item_add n'ajoute pas un caractère? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |