Procedur fehlerhaft ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Procedur fehlerhaft ?

Beitrag 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]
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Prozeduren müssen vor ihrem ersten Aufruf deklariert sein, entweder direkt oder über das Schlüsselwort "Declare"
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag 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?
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Arrays (Dim) und Listen (Newlist) sind in PureBasic immer global.
Daher ist auch kein gesondertes Zurückgeben dieser vorgesehen/notwendig.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Antworten