Vraag & Antwoord

Programmeren

VB6 Array vraagjes

Anoniem
RubeL
5 antwoorden
  • Hoi,

    Ik heb een paar vraagjes over arrays in Visual Basic 6.

    1: Hoe kun je kijken wat de minimum en de maximum index in een array is? (Je hebt bijvoorbeeld de array als volgt gedefinieerd: aDing(1 to 10), het minimum is dus 1 en het maximum 10, maar hoe kun je dit vanuit de code controleren?)

    2: Hoe kun je kijken hoe veel items er in de array zitten?

    3: Is het mogelijk om automatisch alles te laten opschuiven als er een item tussen uit wordt gehaald en zo ja hoe? (Ik bedoel dus dat er bv. 4 items in de array zitten en ik haal nr 2 er uit, dat nrs 3 en 4 dan eentje omhoog schuiven en dus nr 2 en 3 worden. Dit ziet er als volgt uit:
    ding 1
    ding 2
    ding 3
    ding 4

    je haalt ding 2 weg n dan krijg je

    ding 1
    ding 2
    ding 3

    ipv.

    ding 1

    ding 3
    ding 4

    Ik hoop dat iemand begrijpt wat ik bedoel :) )

    4: Hoe is het mogelijk om in 1 array 2 (of meerdere) intanties van 2 (of meerdere) verschillende classes (eventueel zelf geschreven) te stoppen?
    bijvoorbeeld array aDingen(1 to 10) met op index 1 een instantie van Ding en op index 2 een instantie van AnderDing, als je begrijpt wat ik bedoel.

    Nou, een hoop vragen, en hopelijk ook een boel antwoorden :D

    Adios,
    El Loco
  • [quote:7c387bc697="elloco"]
    1: Hoe kun je kijken wat de minimum en de maximum index in een array is? (Je hebt bijvoorbeeld de array als volgt gedefinieerd: aDing(1 to 10), het minimum is dus 1 en het maximum 10, maar hoe kun je dit vanuit de code controleren?)
    [/quote:7c387bc697]
    minimun = LBound(aDing)
    maximum = UBound(aDing)

    Dit zou fout gaan als de array niet geinitialiseerd is. (Ik kan dit zo ff niet verifieren)
    [quote:7c387bc697="elloco"]
    2: Hoe kun je kijken hoe veel items er in de array zitten?
    [/quote:7c387bc697]
    Goochelen met LBound(aDing) en UBound(aDing).
    Let op: Als ik me niet vergis, dan kan LBound(aDing) ook negatief zijn. (Ik kan dit zo ff niet verifieren)
    [quote:7c387bc697="elloco"]
    3: Is het mogelijk om automatisch alles te laten opschuiven als er een item tussen uit wordt gehaald en zo ja hoe? (Ik bedoel dus dat er bv. 4 items in de array zitten en ik haal nr 2 er uit, dat nrs 3 en 4 dan eentje omhoog schuiven en dus nr 2 en 3 worden. Dit ziet er als volgt uit:
    ding 1
    ding 2
    ding 3
    ding 4

    je haalt ding 2 weg n dan krijg je

    ding 1
    ding 2
    ding 3

    ipv.

    ding 1

    ding 3
    ding 4

    Ik hoop dat iemand begrijpt wat ik bedoel :) )
    [/quote:7c387bc697]
    Wellicht is daar een specifieke array functie voor?

    Anders zou je het in meerdere delen moeten opsplitsen met gebruik van een Redim. ofzo…
    [quote:7c387bc697="elloco"]
    4: Hoe is het mogelijk om in 1 array 2 (of meerdere) intanties van 2 (of meerdere) verschillende classes (eventueel zelf geschreven) te stoppen?
    bijvoorbeeld array aDingen(1 to 10) met op index 1 een instantie van Ding en op index 2 een instantie van AnderDing, als je begrijpt wat ik bedoel.
    [/quote:7c387bc697]
    Het "makkelijkst" is denk ik de inhoud van de array definieren als Object of Variant. En dan naar gelang typecasten ofzo.
  • 2: Hoe kun je kijken hoe veel items er in de array zitten?:

    ik ga ervan uit dat je hierme bedoelt of er iets in staat dus of er iets in array(1) iets staat:

    kan je makkelijk met een loop doen, dus:

    for i = lbound(array) to ubound(array)

    'in count komt dan dus het aantal lege plekken in de array te staan
    if array(i) = "" then count = count + 1

    'zo zie je hoeveel er vol zijn:
    if not array(i) = "" then count = count + 1

    next


    bij vraag 3 weet ik niks anders te bedenken dan alles gewoon te laten opschuiven, dus als je ding 2 weg haalt dat dan ding 3 naar ding 2 opschuift.. gewoon subje maken, kan hem nu wel maken alleen kan ik hem niet controleren.. dus.. als je hem alsnog wilt hebben moet je maar gillen :lol:

    vraag 4 kan volgens mij zo:

    'class heet hier cClass
    'of test(10) (wist je trouwens dat met option base in te stellen is waar de array begint? moet je bij option explicit zetten dus: option base 1 dan beint bij 1 option base 0 bij 0…)

    dim test() as new cClass

    nogmaals kan het niet testen.. moet je maar ff kijken of het werkt..

    Succes! :wink:
  • Allemaal heel erg bedankt voor de hulp. Alleen zit ik nu met een ander probleem (nou ja, probleem… :) ) Ik heb nu Visual Studio .NET 2003, dus het werkt nu allemaal weer iets anders…

    Gelukkig werkt de MSDN nu wel naar behoren (als ik bij een foutmelding op "Help" druk, krijg ik ook echt de helpfile te zien…)

    Adios,
    El Loco
  • in visual studio .net kun je projecten vanuit vb 6 overzetten naar vb .net

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.