Toon posts:

[VB6] Lengte van een array (niet de bounds)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is er een functie die de lengte van een array weergeeft in vb ? ik weet dat er in delphi eentje is maar in vb weet ik het niet zeker en die msdn help files zijn zo omslachtig om iets te zoeken ! Daarom vraag ik het eerst voor ik zelf functietje schrijf, kwestie van geen functie te maken die al bestaat :)

  • Anakin239
  • Registratie: September 2001
  • Laatst online: 14-09 13:28
Ubound

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Wat bedoel je precies met lengte?

Exact expert nodig?


Verwijderd

Bedoel je dit?
code:
1
2
3
Function ArraySize( arr() )
  ArraySize=UBound(arr) - LBound(arr) 
End Function

Verwijderd

Topicstarter
als je een array van bvb 100 elementen gedeclareerd hebt
maar je hebt maar aan de eerste 2 indexen een waarde gegeven
dat hij 2 terug geeft

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Die moet je zelf schrijven.
En dan is het nog de vraag van welk datatype je array is. Strings zijn alle items "" (leeg :P), maar het kan best zijn dat item 3 in je array ook leeg moet zijn. Variants zijn daar trouwens wel handig voor, kun je met IsEmpty checken of 'ie gezet is, maar ik denk dat het efficienter is om een array te nemen van het datatype dat je wilt hebben, en of een countertje bijhouden, of een 2e array met booleans. (Als je altijd op 0 begint, en je alleen wilt weten hoeveel waardes er echt gevuld zijn lijkt een tellertje me voldoende).

Exact expert nodig?


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 22:15

Sponge

Serious Game Developer

Waarom zou je dan niet gewoon redimmen?

Redim {preserve} myarray(2){as type}

en anders moet je idd maar een soort teller bij houden bij elke wijziging..

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op dinsdag 12 februari 2002 19:45 schreef 41.6C.6D.61.72 het volgende:
Waarom zou je dan niet gewoon redimmen?

Redim {preserve} myarray(2){as type}

en anders moet je idd maar een soort teller bij houden bij elke wijziging..
Da's afhankelijk waarvoor je het gebruikt natuurlijk :) Maar als je van 0-n gaat kun je idd gewoon redimmen of een teller bijhouden. Redimmen in grote blokken is dan wel weer sneller dan iedere loop een redim doen...

Exact expert nodig?


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 22:15

Sponge

Serious Game Developer

Zeker weten dat het sneller is.
Met een andere array kan het ook wel..

Redim myArray(100 To 500)

en dan gebruik je de Ubound en de LBound() om start en einde te krijgen...niet echt perfect..maar ja =-)
Pagina: 1