Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fingerboarder
Anmeldungsdatum: 09.12.2006 Beiträge: 37
|
Verfasst am: 29.01.2007, 21:28 Titel: Arrays an Sub/Function übergeben |
|
|
Hallo!
Wie kann ich folgendes bewerkstelligen:
Ich habe ein UDT, das enthält mehrere Variablen.
Davon Dimensioniere ich ein Array
Code: | Dim As MeinType object(1 To 10) |
Nun möchte ich meine Funktion aufrufen, die ein Array entgegen nimmt.
Weiters soll nicht das object()-Array übergeben werden, sondern nur ein record davon als Array.
Code: | Type MeinType
a As Integer 'Das ist mein Type
b As String
End Type |
Es soll praktisch der b-String-Record als Array übergeben werden, also von allen object(1 to 10) als array.
------------------------------------------------------------------------------
Ich habe mir überlegt noch eine Hilfsfunction zu nehmen, die erstmal ein Array mit den Records zurückgibt. (Ist das möglich? Gibt es noch ALternativen?) |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 29.01.2007, 21:31 Titel: |
|
|
Hmm
Erstmal muss aus DIM nun DIM SHARED werden.
so
Code: | function meinefunktion(object as MeinType)
print object.a
print object.b
return 0 'oder was auch immer
end function |
Ich habs nich getestet, sollte aber gehen hoff ich - bin grad beim essen, is auf die schnelle entstanden |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 29.01.2007, 22:51 Titel: |
|
|
Alternativer Ansatz wäre der mit Pointern:
Code: | #define NULL 0
Type MyType
a As Integer
b As String * 5
End Type
Declare Sub TuWas(Byval object As MyType Ptr, maxlength As Integer)
Sub TuWas(Byval object As MyType Ptr, maxlength As Integer)
Dim i As Integer
If object = NULL Then Exit Sub
For i = 0 To maxlength - 1
object[i].a += 1: object[i].b += "#"
Print object[i].a, STR$(object[i].b)
Next i
End Sub
Dim As MyType Ptr object
object = Allocate(Sizeof(MyType)*10)
If ( Object = NULL ) Then End
Clear *object, 0, Sizeof(MyType)*10
object[0].a = 100
TuWas (object, 10)
Deallocate (object): object = NULL
Sleep
End |
Edit: Ich werde das Beispiel nochmal überarbeiten. Es war zu fehlerhaft, um es auf die Menschheit loszulassen.
Ok.. korrigiert. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
|