| problème avec fonction print | |
|
|
|
Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: problème avec fonction print Lun 23 Aoû 2010 - 9:26 | |
| Bonjour, Je ne comprend pas pourquoi la 3eme ligne plante. Quelqu'un a déjà rencontré ce problème ? - Code:
-
dim a$ : a$="toto" print "Fonction ";a$ print "Fonction(";a$
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 9:35 | |
| - Code:
-
dim a$ : a$="toto" print "Fonction "+a$ print "Fonction("+a$
C'est le point virgule qui cloche | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 9:44 | |
| Bonjour Jean Claude, Je crois que cela va plus loin que ça..... il y a interprétation de la chaine de caractère. c'est du même acabit que les quottes dans une chaine de caractère. Pourquoi la 2eme ligne fonctionne avec le point virgule ? C'est la parenthèse ouvrante qui se trouve dans la chaine qui pose problème: - Code:
-
dim a$ : a$="toto" print "Fonction ";a$ : ' <- ok print "Fonction()";a$ : ' <- ok print "Fonction(";a$ : ' <- erreur print "Fonction)";a$ : ' <- erreur end
Normalement dans les autres basic, le point virgule est censé être un moyen pour afficher à la suite, des variables de différents type du genre : print "chaine";var_numerique;" chaine" c'est une sorte de raccourci qui permet d'éviter de faire : print "chaine"+str$(numerique)+" chaine" Il est vrai que dans mon exemple, c'est 2 chaines de caractère... De meme que la virgule doit générer une tabulation: print "coucou","c'est moi!" doit donner à l'écran : - Code:
-
coucou c'est moi ! bon, comme dans l'autre post, je peut toujours utiliser une list avec add_item... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 10:32 | |
| - Citation :
- Normalement dans les autres basic, le point virgule est censé être un moyen pour afficher à la suite, des variables de différents type
Oui, mais pas avec Panoramic Jack nous a dit qu'il ne souhaitait pas améliorer PRINT et même à la limite de la supprimer. Donc je pense que le sujet est clos. Et avec alpha je m'en tire très bien. A+ | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 11:09 | |
| - Citation :
- Jack nous a dit qu'il ne souhaitait pas améliorer PRINT et même à la limite de la supprimer.
Oui, c'est vrai, mais là, il y a un vrai bug que je vais corriger. PRINT et INPUT font partie des instructions BASIC et comme elles existent, elles doivent fonctionner correctement. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 11:44 | |
| Bonjour Jack, C'est vrai que je n'ai pas encore l'habitude d'utiliser des alpha (comme le dis jean claude) ou des List comme moyen d'affichage et que l'usage du print est peut être un mauvais reflexe... Mais si tu estimes que tu perd ton temps sur ce type de debug cela ne me gênera nullement... surtout que tu dois avoir une liste 'todo' déjà bien longue... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 12:16 | |
| Attention ! Il ne faut surtout pas supprimer la commande print ! C'est actuellement le seul moyen de placer du texte dans un picture ! S'il est vrai que print est n'est pas facilement utilisable pour produire une impression sur papier (il y a d'autres moyens pour cela, ne serait-ce que file_writeln ou les fonctions d'impression plus puissantes dans ma DLL), c'est une instruction utile pour produire rapidement un affichage de mise au point dans une form (faire form 111 : print_target_is 111 : print "On affiche dans la form 111 !"), mais surtout print est indispensable pour les picture. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 12:20 | |
| Heu... je n'ai pas dis qu'il fallait supprimer le print mais que le debug de la fct n'était pas forcement necessaire quand, suivant l'usage que l'on en fait, il y a d'autres moyens pour contourner ces anomalies.
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 13:13 | |
| Pas de panique Klaus, non seulement Jack ne va pas supprimer PRINT, il va aussi corriger les Bugs de l'instruction. Alors, "elle est pas belle la vie" ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 13:43 | |
| Vu comme ça, ça me va. C'est vrai que je suis un peu "allergique" à tout ce qui est suppression ou réduction de fonctionnalité - moi qui n'arrête pas de vouloir en rajouter, avec mes moyens... | |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 15:12 | |
| bonjour, Puisqu'on parle des Print, il serait bon aussi que ITEM_READ$(N,l) est son pendant, c'est à dire ITEM_READ(N,l) pour relever directement la valeur des nombres qui sont dans les listes.
Mon programme, sur lequel j'essaye de gagner par tout les moyens en vitesse, est bourré de val(item_read$(xxx,val(item_read$(yyy,........ C'est vraiment "casse-bonbon" ! On peut différencier une valeur d'une chaine avec input, print, read$, même si j'ai bonne mémoire avec file_readln(), mais toutes les listes, il faut convertir. Complication de programmation, et ralentissement de la machine.
Jack si tu me lis, je pense qu'un moment ou un autre tu seras obligé d'y passer. Je sais, encore un truc! |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 15:28 | |
| @cosmos70: Je pense que ce n'est pas si simple que ça. Actuellement le Item_Add est implicitement un Item_Add$ Pour pouvoir stocker des valeurs réellement numérique il faudrait avoir: Item_Add / Item_Add$ Item_read / Item_read$ Item_Insert / Item_Insert$
Sans compter que tu perds la compatibilité du Item_Add avec les vieux prog.. mais bon, cela peut s'envisager... Puis il fadrait avoir un descripteur pour chaque item de manière à savoir à quel type de variable on a affaire...
| |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 16:48 | |
| Je suis pas tout à fait d'accord avec toi. Quand tu fais une ligne de data normalement, comme exemple: - Code:
-
dim j$,j%,j
memo 1 :print_target_is 1
Data popotin, 123,54.27 ,-128.75 read j$:print j$ read j%:print j% read j:print j read j:print j Tu vois bien que comme input lorsque tu entres une réponse, dans les autres instructions, cela ne pose pas de problème. En rentrant un nombre dans input, c'est d'abord du texte. Qu'elle est la différence? De plus dans une liste, on ne stocke pas une variable sous forme numérique comme pour une variable, mais comme un fichier, à mon avis. |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 17:26 | |
| En revenant de Nantes (non ça c'est la chanson), je continu.
Le fait de faire cette nouvelle fonction, je ne vois pas en quoi, les programmes antérieurs pourrait en pâtir? que l'on fasse: a%=val(item_read$(machin,truc)) ou a%=item_read(machin,truc), cela revient au même, vu que les anciens programmes, ont la première définition.
On fait l'instruction que l'on veut dans l'ensemble de ce qui va avec. Je ne vois pas pourquoi il faudrait faire item_add$ pour du texte et item_add pour un nombre. Si tu fais item_add N, 128.5, il est stocké comme texte, il n'y a pas d'erreur (à moins de metre du texte à côté). Si tu veux stocker des nombres qui sont formatés, là il vaut mieux prendre un tableau. J'étais partant au départ, mais la gestion est plus stricte, parce que insérer un nombre dans un tableau, ou l'enlever nécessite un codage, et je pense que l'un dans l'autre, le déplacement d'un tableau, ou l'insertion dans une liste, la 2ème méthode est plus rapide (surtout si le tableau est long. |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 18:46 | |
| Je reviens sur ce que j'ai dis, je pense que tu as raison. De toute manière dans un list, les item sont stockés comme des chaines de caractère. Reste à avoir la fct de transposition (lecture) adequate... Un petit truc marrant : dans l'exemple que tu as donné, rajoute un signe + devant 54.27 et regarde ce que cela donne... Quelque part la syntaxe des data me gêne : je m'attendrai à avoir popotin entre-guillemet...surtout si tu veux dans ta chaine des caractères de ponctuation. Les objets FAM que nous prépare Klaus, devrai t'interresser... | |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 20:02 | |
| Puisque tu es dans les particularités de data, regarde ceci: https://panoramic.1fr1.net/un-bug-dans-panoramic-f3/probleme-avec-les-read-et-data-t366.htmle programme: - Code:
-
dim a%,a$,texte$(10),valeur(10) , i,t$ data "a%",a%, "a$" ,a$ , "texte$(2)", texte$(2),"valeur(5)" , valeur(5)
a%=10:a$=" montre la chaine" :texte$(2)="tableau ligne 2" valeur(5)=3.1416 read t$:print t$;"=";:read i:print i read t$:print t$;"=";:read t$:print t$ read t$:print t$;"=";:read t$:print t$ read t$:print t$;"=";:read i:print i end
Salut Georges qui nous regarde |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème avec fonction print Lun 23 Aoû 2010 - 23:04 | |
| C'est curieux, ça ! D'après la doc, les data sont une suite de constantes, et non de variables. Ca peut conduire vers des effets bizarres car les valeurs lues par "read" peuvent changer d'un passage à l'autre. Est-ce voulu ? Ce n'est sûrement pas dans l'esprit "Basic". | |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 0:27 | |
| Ca m'arrangeais à l'époque, car par ce procédé, je m'était les variables du basic en data, et ainsi par une simple boucle, je lisais les valeurs. J'avais montré l'exemple, et personne n'a suivi! |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mar 24 Aoû 2010 - 1:23 | |
| C'est effectivement curieux, c'est une possibilité que je ne connaissais pas. - Code:
-
dim i$ , a$ data a$ a$="Tagada-Tsoin-Tsoin" read i$ print i$ a$="Bonjour" restore read i$ print i$ Et cela donne : - Citation :
- Tagada-Tsoin-Tsoin
Bonjour | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 3:23 | |
| Je reste sans voix.... vraiment très étrange ses data.... et je ne vois toujours pas comment pano s'y retrouve également pour différentier les différentes données... (cf A la recherche d'un trésor, de jjn4) | |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 7:14 | |
| Avec cette possibilité, si vous mettez toutes les variables en data (programmation), si voulez connaitre les valeurs de vos variables, vous faites un détour où vous mettez par lecture des datas, tout dans un memo. Pour récupérer les variables, par exemple (repris directement de mon code en ce moment) - Code:
-
file_load 46,"C:\TESTE\voir.bas" :' à mettre à jour ' list 46 et list 100 ' 46 étant la récupération du programme ' 100 celui de la list des dim à récupérer
for a%=1 to count(46) a$=trim$(item_read$(46,a%)) if upper$(left$(trim$(a$),4))="DIM " a$=trim$(right$(a$,len(a$)-4)) b%=instr(a$,":") if b%>0 then a$=trim$(left$(a$,b%-1)):' on arrète avant l'instruction suivante (encore faut-il ne pas remettre un dim derrière !!! b$=a$ repeat b%=instr(a$,",") if b%>0 b$=trim$(left$(a$,b%-1)) if instr(b$,"(")>0 then item_add 100,b$ :' on évite les tableaux a$=trim$(right$(a$,len(a$)-b%)) else b$=a$ end_if until b%=0 end_if next a% sort 100
puisque j'en suis là, pour récupérer les labels: ' ici 47 est la liste de classement des labels: - Code:
-
' recherche des labels for a%=1 to count(46) a$=item_read$(46,a%) if right$( trim$(a$),1)=":" if instr(trim$(a$)," ") =0 then item_add 47,a$ end_if next a% |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 10:07 | |
| Quand je vois ton code pour récupérer les labels, cela donne envie d'avoir une fct sendMessage() que l'on pourrait envoyer à l'éditeur pano pour venir positionner directement le curseur sur le label sélectionné... <<soupir >> | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 10:56 | |
| Très intéressant, ta démonstration de chargement des dim". | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 11:10 | |
| Il y a encore plus bizarre avec les data ! On peut même y placer une fonction telle que text$(n) ! Mais un ne peut pas placer item_read$(n,i)... Exemple: - Code:
-
dim a1$, a2$, x$, y$, z$
list 1 : top 1,10 : left 1,10 item_add 1,"abcde" item_add 1,"12345"
edit 3 : top 3,150 : left 3,10 : text 3,"xxxxx"
memo 2 : top 2,10 : left 2,200
data a1$, a2$, text$(3), item_read$(1,1)
a1$ = item_read$(1,1) a2$ = item_read$(1,2) read x$ read y$ read z$
item_add 2,"x="+x$ item_add 2,"y="+y$ item_add 2,"z="+z$
end
| |
|
| |
Invité Invité
| Sujet: Re: problème avec fonction print Mar 24 Aoû 2010 - 13:57 | |
| Je me sers tellement peu souvent des datas, que tel que cela fonctionne, ça me convient, et j'en tire les avantages. |
|
| |
Contenu sponsorisé
| Sujet: Re: problème avec fonction print | |
| |
|
| |
| problème avec fonction print | |
|