Seite 1 von 1

Procedur fehlerhaft ?

Verfasst: 02.02.2005 20:24
von saimen
Beim Aufruf folgender Procedur, kommt die Fehlermeldung
"holedatensatz() is not a function ..."
die Variablen sind alle ok.
Wo ist der Fehler?

[code]
zieldatensatz$ = holedatensatz(zielid$)

Procedure.s holedatensatz(dieid$)
ProcedureReturn zieldatensatz$
EndProcedure
[/code]

Verfasst: 02.02.2005 20:30
von freedimension
Prozeduren müssen vor ihrem ersten Aufruf deklariert sein, entweder direkt oder über das Schlüsselwort "Declare"

Verfasst: 02.02.2005 22:20
von Falko
Oder man schreibt erst die Procedure und führt sie nachher aus. Bei Pascal wird es so gemacht, wie du das in deinem Beispiel gemacht hast.

Code: Alles auswählen

;Erst die Proceduren definieren

Procedure.s holedatensatz(dieid$) 
    ProcedureReturn zieldatensatz$ 
EndProcedure 

;ab hier dann ausführen

zieldatensatz$ = holedatensatz(zielid$)
Wenn du aber von eine Procedure eine Andere ausführen willst,
bleibt dir der Weg über Declare..., wie freedimension schon weiter oben
geschrieben hat, nicht erspart.

Verfasst: 02.02.2005 22:32
von saimen
habs jetzt an den anfang gestellt, und es läuft.

Wo wir gearde dabei sind. kann man eigentlich als Rückgabewert auch listen zurückgeben? oder ist man auf ienfache Variablen beschränkt?

Verfasst: 02.02.2005 22:55
von Andre
Arrays (Dim) und Listen (Newlist) sind in PureBasic immer global.
Daher ist auch kein gesondertes Zurückgeben dieser vorgesehen/notwendig.

Verfasst: 03.02.2005 01:45
von freedimension
Falko hat geschrieben:Oder man schreibt erst die Procedure und führt sie nachher aus. Bei Pascal wird es so gemacht, wie du das in deinem Beispiel gemacht hast.

Code: Alles auswählen

;Erst die Proceduren definieren

Procedure.s holedatensatz(dieid$) 
    ProcedureReturn zieldatensatz$ 
EndProcedure 

;ab hier dann ausführen

zieldatensatz$ = holedatensatz(zielid$)
Wenn du aber von eine Procedure eine Andere ausführen willst,
bleibt dir der Weg über Declare..., wie freedimension schon weiter oben
geschrieben hat, nicht erspart.
Deklaration als Begriff beschränkt sich nicht auf den gleichnamigen Befehl in PB - mit "entweder direkt" meinte ich die Möglichkeit die Prozedur vor dem ersten Aufruf zu schreiben.