spaß mit DIM (gesucht: hilfe mit arrays)

Anfängerfragen zum Programmieren mit PureBasic.
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

spaß mit DIM (gesucht: hilfe mit arrays)

Beitrag 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
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
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: spaß mit DIM (gesucht: hilfe mit arrays)

Beitrag 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
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

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

Beitrag 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

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

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

Beitrag 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.
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

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

Beitrag 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.
Antworten