'For' nicht mit indizierter Variable möglich

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

'For' nicht mit indizierter Variable möglich

Beitrag von 7x7 »

PB 4.40

Code: Alles auswählen

Dim a(10)

For a(10)=1 To 20
    Debug a(1)
Next a(10)
Dieser Code crasht.
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: 'For' nicht mit indizierter Variable möglich

Beitrag von STARGÅTE »

Es sollte auch nicht möglich sein,
hier fehlt halt die Fehlermeldung wie es bei Strukturen kommt:

Code: Alles auswählen

a.Point
For a\x = 1 To 20
 For a\y = 1 To 20
 
 Next 
Next
---------------------------
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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: 'For' nicht mit indizierter Variable möglich

Beitrag von DrShrek »

Code: Alles auswählen

Dim a(10)

For a(10)=1 To 20
    Debug a(1)
Next a(10)

Code: Alles auswählen

a.Point
For a\x = 1 To 20
For a\y = 1 To 20

Next 
Next
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?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: 'For' nicht mit indizierter Variable möglich

Beitrag von 7x7 »

STARGÅTE: Die frage ist hier ob es sinnvoll wäre...
Die Frage nach dem Sinn begleitet uns das ganze Leben :mrgreen:

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.
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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:

Code: Alles auswählen

     ;
     ; macht irgend was
     ;
Ü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
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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.
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Little John

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Little John

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: 'For' nicht mit indizierter Variable möglich

Beitrag 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.
Antworten