Seite 1 von 2
'For' nicht mit indizierter Variable möglich
Verfasst: 29.01.2010 02:13
von 7x7
PB 4.40
Dieser Code crasht.
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 29.01.2010 02:47
von STARGÅTE
Es sollte auch nicht möglich sein,
hier fehlt halt die Fehlermeldung wie es bei Strukturen kommt:
---------------------------
PureBasic
---------------------------
Zeile 2: For/Next akzeptiert nur nicht-strukturierte Variablen als Zähler.
---------------------------
OK
---------------------------
Die frage ist hier ob es sinnvoll wäre oder möglich sowas zuzulassen ...
Sowas lohnt ja nur wenn man sehr tiefe (verschachtelte) Schleifen hat, und dort nicht jeden Index definieren will.
Klar ist, das es hier eine eindeutige Fehlermeldung geben sollte wie bei Strukturen, und der Compiler nicht einfach crasht.
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 29.01.2010 08:44
von DrShrek
Fehlermeldung ist sicherlich nicht verkehrt.
Mich würde aber auch interessieren warum Ihr das so wie in Euren Beispielcodes machen wollt.
Was bezweckt Ihr damit?
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 29.01.2010 10:02
von 7x7
STARGÅTE:
Die frage ist hier ob es sinnvoll wäre...
Die Frage nach dem Sinn begleitet uns das ganze Leben
STARGÅTE:
...oder möglich sowas zuzulassen
Ob der in PB intern verwendete Pointer auf eine normale oder indizierte Variable zeigt, ist doch gehüpft wie gesprungen. Ich sehe da keine Probleme. Auch nicht bei Strukturen. Aber ich lasse mich gerne belehren
Dr. Shrek:
Mich würde aber auch interessieren warum Ihr das so wie in Euren Beispielcodes machen wollt
STARGÅTE hat schon ein Beispiel genannt: "wenn man sehr tiefe (verschachtelte) Schleifen hat, und dort nicht jeden Index definieren will"
Ich wollte dies machen:
Code: Alles auswählen
For Idx=0 To MDev
For z(Idx)=0 To 99
;
; macht irgend was
;
Next z(Idx)
Next Idx
Geht nur über Sekundärvariablen.
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 29.01.2010 14:19
von DrShrek
Code: Alles auswählen
For Idx=0 To MDev
For z(Idx)=0 To 99
;
; macht irgend was
;
Next z(Idx)
Next Idx
Das Du so etwas machen wolltest ist mir schon klar.
Aber was bringts?
Bzw zeig doch mal den OrginalSource der für das hier steht:
Übrigends wenn Du es so macht dann gehts (bzw das ist der Code der das gleich macht wie Deine For Schleife):
Code: Alles auswählen
For Idx=0 To MDev
For Idy=0 To 99
z(Idx)=Idy
;
; macht irgend was
;
Next Idy
Next Idx
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 30.01.2010 11:20
von 7x7
Dr. Shrek hat geschrieben:Übrigends wenn Du es so macht dann gehts (bzw das ist der Code der das gleich macht wie Deine For Schleife):
Code: Alles auswählen
For Idx=0 To MDev
For Idy=0 To 99
z(Idx)=Idy
;
; macht irgend was
;
Next Idy
Next Idx
7x7 hat geschrieben:Geht nur über Sekundärvariablen.
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 30.01.2010 11:33
von Little John
Dr. Shrek hat geschrieben:Das Du so etwas machen wolltest ist mir schon klar.
Aber was bringts?
Dem schließe ich mich an.
Gruß, Little John
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 30.01.2010 11:56
von NicknameFJ
Little John hat geschrieben:Dr. Shrek hat geschrieben:Das Du so etwas machen wolltest ist mir schon klar.
Aber was bringts?
Dem schließe ich mich an.
Gruß, Little John
7x7 hat ja kein Problem mit dem Code, in dem Sinne dass er nicht weiß wie er sein programmiertechnisches Problem lösen soll. Es geht ihm auch nicht darum ob seine Lösung sinnvoll ist oder nicht.
Fakt ist, wie Stargate bereits anmerkte, dass der Compiler bei dem gezeigten Code nicht einfach abstürzen darf.
Grüße
NicknameFJ
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 30.01.2010 12:10
von Little John
NicknameFJ hat geschrieben:Fakt ist, wie Stargate bereits anmerkte, dass der Compiler bei dem gezeigten Code nicht einfach abstürzen darf.
Das sehe ich auch so.
Unabhängig davon äußerte ich, dass ich ebenso wie Dr. Shrek nicht verstehe, welchen Vorteil 'For' mit einer indizierten Variable bringen soll.
Re: 'For' nicht mit indizierter Variable möglich
Verfasst: 30.01.2010 13:37
von Josh
Little John hat geschrieben:Unabhängig davon äußerte ich, dass ich ebenso wie Dr. Shrek nicht verstehe, welchen Vorteil 'For' mit einer indizierten Variable bringen soll.
was es bringen sooll, hast du dir eigentlich schon selbst beantwortet:
Dr. Shrek hat geschrieben:Code: Alles auswählen
For Idx=0 To MDev
For z(Idx)=0 To 99
;
; macht irgend was
;
Next z(Idx)
Next Idx
Übrigends wenn Du es so macht dann gehts (bzw das ist der Code der das gleich macht wie Deine For Schleife):
Code: Alles auswählen
For Idx=0 To MDev
For Idy=0 To 99
z(Idx)=Idy
;
; macht irgend was
;
Next Idy
Next Idx
eine zeile weniger und wenn es den code auch nur ein kleinstes bischen übersichtlicher macht, kann es nicht schaden. ich bin auch nicht der meinung, dass es jetzt mit aller gewalt in pb eingebaut werden muss, aber wenn es unter umständen wirklich so einfach ist,
7x7 hat geschrieben:Ob der in PB intern verwendete Pointer auf eine normale oder indizierte Variable zeigt, ist doch gehüpft wie gesprungen. Ich sehe da keine Probleme. Auch nicht bei Strukturen. Aber ich lasse mich gerne belehren
dann sehe ich auch keinen grund, warum es nicht als alternativvorschlag zu der fehlenden fehlermeldung gemacht werden sollte. wenn ich mir den aufwand einer fehlermeldung in mehreren sprachen vorstelle, dann kann das zulassen dieser funktion sogar weniger arbeit sein.