Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von ts-soft »

pcfreak1201 hat geschrieben:Hallo!
Ich habe gerade noch einen nicht dokumentierten "Problemfall" gefunden:

Code: Alles auswählen

NewList lstFolders.s()
Wie definiere ich denn eine Liste - und auch wenn ich sie nicht brauche - eine Map?
Define, Dim und Pointer funktionieren schon mal nicht :-)

Grüße und einen guten Rutsch,

Stefan
Du hast doch in Deinem Beispiel bereits eine Liste definiert. NewList bzw. NewMap definiert eine Liste oder Map.
Ein vorangestelltes Global macht sie, na was schon :mrgreen: , Global.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
pcfreak1201
Beiträge: 38
Registriert: 17.12.2011 13:01
Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
Wohnort: Arnsberg

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von pcfreak1201 »

Nee, ich meinte doch per

Code: Alles auswählen

Define
definieren. Ich habe dann aber gesehen, daß in der Hilfe der Rückgabewert der Map auch nur ein String war,
also habe ich für meine Liste auch "nur" einen String definiert - das passt nur mit meinem "C-Weltbild" nicht zusammen.
Ich war davon ausgegangen, daß es sich um einen Pointer handeln müßte, nicht um einen String ...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von ts-soft »

pcfreak1201 hat geschrieben:Nee, ich meinte doch per

Code: Alles auswählen

Define
Es gibt kein Define für Maps und Listen, hierfür gibt es das Keyword NewList und NewMap!
Es gibt auch kein Define für Arrays, hierfür ist Dim zuständig!
Definitionen haben auch keine Rückgabe, egal ob Define, NewList oder Dim, da mußt Du nochmal
sagen, was Du meinst und Dein C-Weltbild solltest du nur unter C nutzen, wir sind hier bei Basic!

Gruß und guten Rutsch
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
mirca
Beiträge: 169
Registriert: 13.11.2011 16:05

GELÖSCHT

Beitrag von mirca »

GELÖSCHT
Zuletzt geändert von mirca am 17.10.2013 11:08, insgesamt 1-mal geändert.
Benutzeravatar
pcfreak1201
Beiträge: 38
Registriert: 17.12.2011 13:01
Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
Wohnort: Arnsberg

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von pcfreak1201 »

Hallo Thomas!

Ich bezog mich immer noch auf die Verwendung von

Code: Alles auswählen

EnableExplizit
- und hier kommt man mit NewList eben nicht weiter, da dem Compiler
ein Define des Rückgabewertes der Liste fehlt.
In meinem Fall ist es ein String, also ein

Code: Alles auswählen

Define lstFolders.s
vor dem

Code: Alles auswählen

NewList lstFolders.s()
ist nötig, um den Compiler ruhig zu stellen :-)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von ts-soft »

Code: Alles auswählen

EnableExplicit
NewList lstFolders.s() 
reicht aus, einen zusätzlichen String brauchste nicht zu definieren. Nun glaub das doch bitte :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von NicTheQuick »

Interessanter ist eher, dass PB nicht meckert, wenn man folgendes macht:

Code: Alles auswählen

EnableExplicit

NewList bla()
Sollte es hier nicht meckern, weil der explizite Datentyp fehlt? So wird eben automatisch Integer genommen, aber will man das so oder nicht?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von ts-soft »

Wenn er dort meckern würde, würde dies den Default-Typ adabsordum führen :mrgreen:
Ist schon richtig so.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
pcfreak1201
Beiträge: 38
Registriert: 17.12.2011 13:01
Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
Wohnort: Arnsberg

Re: Datentypen von (PB-)Funktionsrückgaben / EnableExplizit

Beitrag von pcfreak1201 »

Moin!

Ich habe keine Ahnung, was ich da gemacht habe, daß der Compiler gemeckert hat -
aber ich glaube Dir jetzt Thomas :allright:
Define auskommentiert und alles ist bestens!?
Antworten