Types als parameter übergeben (problem)
Übersicht

horstböhseBetreff: Types als parameter übergeben (problem) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!!
Ich hänge mal wieder beim Verstehen der internen Behandlung von BlitzBasic-Type-Listen. Ich habe folgendes Verdeutlichungs-Programm geschrieben: Code: [AUSKLAPPEN] Type bla Field x Field y End Type Global var.bla=New bla var\x=2 var\y=3 For i= 0 To 4 funk(var) Next Function funk(s.bla) For s=Each bla Print s\x Next End Function Eigentlich müssten doch jetzt auf dem Bildschirm 5 Zahlen ausgegeben werden, oder? Es werden aber nur 2 ausgegeben!! Ich kann mir aber absolut nicht erklären, warum! Ich hoffe, es kann mir jemand helfen!! |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht, wieso du in der Function eine For...Each-Schleife verwendest. Lass die doch einfach weg, dann gehts. | ||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie gesagt, ich habe dieses Programm nur zum Testen geschrieben!!
Wenn die Liste nun mehr als einen Eintrag hat, dann soll damit 5mal die gesamte Liste ausgegeben werden!! Somit komme ich nicht an der For Each Schleife vorbei!! Aber trotzdem danke für den Vorschlag! |
||
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
|
||
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, so kann mans natürlich machen!! Danke
Aber was mich interessieren würde, warum funktioniert es nicht, die variable lokal zu über geben. Das wäre für mein eigentliches Problem die elegantere Lösung!! Und eigentlich muss es doch so auch funktionieren!! Dachte immer, BB verwaltet Listen wie verkettete Listen in C++! In jeder TypeVariablen ist auch eine Zahl gespeichert! Dachte, das ist eine Art Referenz auf den Datensatz!! |
||
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab mir grad das Tutorial zu Types durchgelesen, und demnach muss das so funktionieren!!
Ich fange bei diesen Types noch an zu verzweifeln!! |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht genau was du willst...
Wozu übergibst du die Type-Variable an die Funktion, und machst dann eine For-Each-Schleife? Übergeb die Variable doch einfach an die Funktion und gib die var\x ohne For-Each aus. |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In wirklichkeit ist es auch nicht nur eine variable, sondern in der liste befinden sich mehrere!!
Wenn ich die Liste manuell mit FIRST und dann AFTER durchgehe, funktioniert das ganze!! Aber es muss doch auch so mit FOR EACH gehen, oder? Denn FOR EACH macht meines Erachtens auch nichts anderes, als die Liste mit AFTER durchzugehen, oder? Meine Frage zielt quasi nicht in die Richtung, wie ich mein Beispiel anders machen kann, damit es die gleiche Ausgabe liefert, sondern ich würd gern wissen, warum das mit FOR EACH nicht geht, obwohl es das doch müsste! |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm... interessant ist ja, dass er die Zahl immerhin zweimal ausgibt. Ich hätte ja jetzt auf einmal oder 5mal getippt, aber zweimal?
Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du sprichst mir aus der Seele!!
Ich hab auch keinen Plan, was das sein kann!! Vielleicht kennt sich ja jemand mit der Internerna von BB aus und kann mir die Frage beantworten! |
||
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
BlitzBasic: [AUSKLAPPEN]
BlitzBasic: [AUSKLAPPEN] Type bla |
||
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm, sieht für mich so aus, also ob die FOR EACH - Funktion ganz schön viel Misst baut, oder?
Muss ich das wohl doch manuell mit after machen, was? |
||
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Muss ich das wohl doch manuell mit after machen, was? Nein Du muss doch keine lokale variabel über geben. Mit den Globalen Variabeln geht es doch. Wo für benutzt du globale Variabeln, wenn du die globale Variabeln in Funktion nicht nutzt? Welchen Sinn soll das haben? |
||
horstböhse |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich wollte es eigentlich auch mit lokalen machen, mir ist auch grad aufgefallen, dass ich hier die Version mit der globalen gepostet habe, aber auch mit einer lokalen Variablen tritt das Problem auf, hab ich schon ausprobiert!!!
Ich finde das Übergeben von lokalen Variablen an Funktionen besser, da dann die FUnktionen eigenständiger sind, und mann nicht jedesmal, wenn man irgendwas an der globalen Variablen ändert, das in allen Funktionen ändern muss! |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, auf jeden Fall ist das ein offizieller Bug, bestätigt von Marc:
http://www.blitzbasic.com/Comm...opic=51198 Und Marc schreibt auch, dass es wohl bald eine neue Version geben wird! ![]() Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group