Array-Größe

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Array-Größe

Beitrag von bluejoke »

Hallo!

Ich hab in der Hilfe nix über das nachträgliche herausfinden der Anzahl der Einträge in einem Array gefunden. Also ich hab irgendwo beispielsweise ein
Dim MeinArray.s(10)
kann mich im Programm aber nicht mehr daran erinnern, das das Teil 10 Einträge hat.
Wie find ich das heraus?

Danke
Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Code: Alles auswählen

Dim Array.s(10)

Debug PeekL(@Array()-8)-1
"-1" weil es intern 11 Elemente sind (von 0 bis 10)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
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

Beitrag von ts-soft »

Das Teil hat 11 Einträge :D
Nimm doch immer Konstanten, satt Zahlen, die kannste dir vielleicht merken.

Mit normallen mitteln ist dies meines Wissens nach nicht möglich
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
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Mhh, OK.
Ich wollte es vor allem für irgendwelche Prozeduren wissen,
bei denen der Rückgabewert schon besetzt ist.
Globale Werte hasse ich, Konstanten bringen mir bloß was, wenn zur Zeit der Kompilierung weiß, wieviele Elemente es werden.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
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

Beitrag von NicTheQuick »

Globale Variablen würdest du vielleicht nicht hassen, wenn du sie richtig benennen würdest.
Zumindest ich habe keine Probleme mit globalen Variablen, weil sie sehr nützlich sein können.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Oh, ich glaube wir brauchen uns hier ja nicht übr Namenskonventionen unterhalten, es geht mir eben vor allem um die Nutzbarkeit der Procedures in anderen Programmen, ohne nach den passenden Variablen suchen zu müssen. Das sollte eben durch die Parameter gehen, die mitgegeben werden oder zurückkommen.
Da finde ich auch eine Lösung mit Zeigern auf Variablen besser als globale Variablen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
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

Beitrag von NicTheQuick »

Befehle wie [c]UBound()[/c] oder [c]LBound()[/c] wäre da sicherlich praktisch. Aber soviel ich weiß, kennt Fred schon diesen Wunsch.
[c]LBound()[/c] ist natürlich unnützlich, da der unterste Index immer 0 ist, aber [c]UBound()[/c] könnte Fred durchaus mal einführen. Aber so wie es scheint, hängt er ja momentan ziemlich stark an der Entwicklung von PureBasic.
Also abwarten und Tee trinken.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

@Deem: Sorry, habs irgendwie verplant:
Vielen Dank! Das funktioniert ausgezeichnet!
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten