Array Probleme...
Array Probleme...
Hallo,
habe ein 2-dimensionals Array was innerhalb einer Procedure gefüllt wird.
Da aus irgendeinen kosmischen Zufall die weitergabe eines Arrays aus einer Procedure nicht geht bzw. nicht hineinprogrammiert wurde. Warum auch immer.... (oder geht das mitlerweile ? Wenn ja... sagt mir wie...)
Bin ich ein wenig am "Verzweifeln"... das Array muss/kann/soll ich in einer anderen Procedure weiterverarbeiten.
subject_filtern() <- Array wird befüllt
event_show() <- Array soll weiter verarbeiten werden...
Irgendwo hab ich gelesen Arrays sollen Global sein ? hmm.. jedenfalls kann das nicht stimmten der jenige hat wohl gelogen....
Da der Compiler mir sagt das es mein Array gar nicht gibt ...
Allerdings wird das Array erst in der Procedure Deklariert.. und so soll es auch bleiben.
Nun versteh ich nicht ganz wie ich das Array in event_show() bringen soll...
Gibt da ne Möglichkeit mit Pointer ich glaube mich erinnern zu können sowas mal gelesen zu haben...
----------------------
Ich hoffe es gibt da einen Weg, der mir Hilft, in der jetzt vorherschenden Abgeschlossenen Sache das zu erledigen. Sonst muss ich Variablen übergeben und woanders wieder auseinnander nehmen obwohl es zu der Proc. gehört.
Bye
habe ein 2-dimensionals Array was innerhalb einer Procedure gefüllt wird.
Da aus irgendeinen kosmischen Zufall die weitergabe eines Arrays aus einer Procedure nicht geht bzw. nicht hineinprogrammiert wurde. Warum auch immer.... (oder geht das mitlerweile ? Wenn ja... sagt mir wie...)
Bin ich ein wenig am "Verzweifeln"... das Array muss/kann/soll ich in einer anderen Procedure weiterverarbeiten.
subject_filtern() <- Array wird befüllt
event_show() <- Array soll weiter verarbeiten werden...
Irgendwo hab ich gelesen Arrays sollen Global sein ? hmm.. jedenfalls kann das nicht stimmten der jenige hat wohl gelogen....
Da der Compiler mir sagt das es mein Array gar nicht gibt ...
Allerdings wird das Array erst in der Procedure Deklariert.. und so soll es auch bleiben.
Nun versteh ich nicht ganz wie ich das Array in event_show() bringen soll...
Gibt da ne Möglichkeit mit Pointer ich glaube mich erinnern zu können sowas mal gelesen zu haben...
----------------------
Ich hoffe es gibt da einen Weg, der mir Hilft, in der jetzt vorherschenden Abgeschlossenen Sache das zu erledigen. Sonst muss ich Variablen übergeben und woanders wieder auseinnander nehmen obwohl es zu der Proc. gehört.
Bye
Re: Array Probleme...
das gilt nur für PB3.94 und kleiner.Schlingel hat geschrieben:Irgendwo hab ich gelesen Arrays sollen Global sein ?
ab PB 4.x muss ein Array global deklariert werden, um es in allen Prozeduren
verwenden zu können. Alles weitere -> Siehe PB-Hilfe
Code: Alles auswählen
Global Dim myArray()
a²+b²=mc²
hmm... aber die Grenzen des Arrays werden ja erst in der Procedure bestimmt.... Ich will nicht im Deklarationbereich "Code" haben... da soll nur reine Deklaration sein xDab PB 4.x muss ein Array global deklariert werden, um es in allen Prozeduren
verwenden zu können
Aber anscheind komme ich nicht drumrum ...
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
was soll Count machen?
Max soll das maximum eines numerischen arrays ermitteln?
sowas ist doch extrem easy selber zu schreiben.
außerdem können arrays auch Strings oder structures beinhalten.
für sowas ist ein Max-befehl doch unsinnig..
Max soll das maximum eines numerischen arrays ermitteln?
sowas ist doch extrem easy selber zu schreiben.
außerdem können arrays auch Strings oder structures beinhalten.
für sowas ist ein Max-befehl doch unsinnig..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
nicht das maximum sondern das andere maximum... :P
es geht darum die größe des Arrays zu ermitteln...
hmm...
z.b. für eine For schleife
For i=0 to CountArray(Array())
next
Das ist ja wohl doch ein Sinnvolles Element...
Soweit ich mich erinnern kann, ist das auch in den meisten Sprachen schon Eingebaut .. auch in VB da gabs das auch dachte ich zumind.
Aber wenns sowas nicht gibt muss ich mir wohl oder übel was einfallen lassen...
es geht darum die größe des Arrays zu ermitteln...
hmm...
z.b. für eine For schleife
For i=0 to CountArray(Array())
next
Das ist ja wohl doch ein Sinnvolles Element...
Soweit ich mich erinnern kann, ist das auch in den meisten Sprachen schon Eingebaut .. auch in VB da gabs das auch dachte ich zumind.
Aber wenns sowas nicht gibt muss ich mir wohl oder übel was einfallen lassen...
- 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
Code: Alles auswählen
Macro Ubound(array)
(PeekL(@array - 8) - 1)
EndMacro
übergeben werden. Lbount wäre allerdings sinnlos, da Arrays in PB immer bei
0 beginnen

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
yo... und es ist auch eine frage des konzepts...
also, wenn ich ein festes Array habe, dann hab ich dort ja den entsprechenden wert,
wie groß mein Array ist, den verwende ich ja beim Dim, und der ändert sich nicht.
also um sowas zu machen:
benutzt man halt
wenn ich ein array des öfteren ReDim, dann habe ich auch dort den wert für das ReDim angegeben,
den kann ich dann auch dementsprechend mitführen, zurückgeben, was auch immer.
also, in den allermeisten fällen ist es ein zeichen für schlechte konzeption wenn man die größe seines Arrays erfragen muss.
wirklich variable datenbestände wird man eh nicht mit arrays lösen, sondern mit einer LinkedList.
dafür gibt es dann so schicke befehle wie ForEach, womit man jedes element der liste bearbeiten kann,
ganz unabhängig von der anzahl der elemente.
also, wenn ich ein festes Array habe, dann hab ich dort ja den entsprechenden wert,
wie groß mein Array ist, den verwende ich ja beim Dim, und der ändert sich nicht.
also um sowas zu machen:
Code: Alles auswählen
For i=0 to CountArray(Array())
Code: Alles auswählen
Dim Array( #ArraySize )
...
...
For i=0 to #ArraySize
den kann ich dann auch dementsprechend mitführen, zurückgeben, was auch immer.
also, in den allermeisten fällen ist es ein zeichen für schlechte konzeption wenn man die größe seines Arrays erfragen muss.
wirklich variable datenbestände wird man eh nicht mit arrays lösen, sondern mit einer LinkedList.
dafür gibt es dann so schicke befehle wie ForEach, womit man jedes element der liste bearbeiten kann,
ganz unabhängig von der anzahl der elemente.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.