Seite 1 von 1

spaß mit DIM (gesucht: hilfe mit arrays)

Verfasst: 20.03.2010 02:59
von broozar
hallo allesamt,

da ich nicht aus dem BASIC-umfeld komme, ist mir die behandlung von DIMs nicht vertraut. ich brauche grundlegende hilfe zu basis-funktionen wie array durchsuchen, index anhand eines wertes wieder geben, sortieren nach kriterien (das ist auch schon das einzige, was ich finden konnte), und so weiter, was man aus anderen sprachen so kennt. die hilfe-datei war nicht sonderlich aufschlussreich.

vielen dank im voraus

Re: spaß mit DIM (gesucht: hilfe mit arrays)

Verfasst: 20.03.2010 03:33
von ts-soft
wenn Du mit den anderen Variablen klarkommst, gibts bei Arrays IMHO nichts besonderes:

Code: Alles auswählen

EnableExplicit

Dim myarray.s(9) ; stringarray mit 10 elementen, 0 - 9

myarray(0) = "Hans"
myarray(1) = "Otto"
myarray(5) = "Paul"
myarray(9) = "Erich"

Define i, j
j = ArraySize(myarray()); gibt den Wert bei der Dimensionierung an, Elemente sind 1 mehr, da 0 basiert

For i = 0 To j
  If myarray(i) <> ""
    Debug Str(i) + " element = " + myarray(i)
  EndIf
Next
Simple iteration durchs array mit Vergleich auf Inhalt und Ausgabe im Debugger.
Bei mehreren Dimension werden die Schleifen dann verschachtelt.

Strukturiert usw. funktioniert genauso wie bei normalen Variablen. Dim ist die lokale Definition und
mit Global wirds Global :wink:
Besonderheit gibts nur bei Arrays in Strukturen, aber die sind ja nicht gefragt.

Gruß
Thomas

Re: spaß mit DIM (gesucht: hilfe mit arrays)

Verfasst: 20.03.2010 03:42
von mk-soft
Hi,

aus welchenumfeld kommst du den?

Arrays mit Dim haben eine feste Anzahl von Elementen die über ein Index angesprochen werden.
Diese können auch mehrere Dimensionen haben.
Mit Redim kann ein Array auch in der Grösse verändert werden

Gegenüber eine Struktur mit Arrays haben die mit Dim immer ein Element mehr.

Dim zahlen.l(10) haben einen Index von 0 bis 10

Structure zahlen
ID.l[10] ; habe einen Index von 0 bis 9
EndStructure

Das Element aus den Array wird immer über den Index angesprochen

Code: Alles auswählen

Global Dim text.s(10)

; Array füllen
For index = 0 To 10
  text(index) = "Index " + Str(index)
Next

; Array durchsuchen
r1 = -1
For index = 0 To 10
  If text(index) = "Index 5"
    r1 = index
    Break
  EndIf
Next
; Ergebnis
If r1 >= 0
  Debug "Gefunden am Index " +Str(r1)
Else
  Debug "Nicht gefunden"
EndIf


Re: spaß mit DIM (gesucht: hilfe mit arrays)

Verfasst: 20.03.2010 11:25
von broozar
danke euch beiden,

ich komme von php und python, und gerade in php gibt es ja unmassen an array-funktionen, die einem das leben erleichtern. ( http://de.php.net/manual/en/book.array.php ) ich portiere gerade ein pyGTK-tool nach pb und habe mich daher nach äquivalenten zu diversen tuple-, list- und dict-operationen umgesehen.

so wie ich das aus euren beispielen lese, muss ich ein großteil davon selber mit for-loops realisieren, das ist genau das, was ich wissen wollte.

Re: spaß mit DIM (gesucht: hilfe mit arrays)

Verfasst: 20.03.2010 11:33
von Josh
broozar hat geschrieben:... und habe mich daher nach äquivalenten zu diversen tuple-, list- und dict-operationen umgesehen
schau dir mal die LIST's und MAP's in der hilfe an.