| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| Fingerboarder 
 
 
 Anmeldungsdatum: 09.12.2006
 Beiträge: 37
 
 
 | 
			
				|  Verfasst am: 29.01.2007, 20: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, 20: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, 21: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 |  | 
	
		|  | 
	
		|  |