Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[VB] array van lengte nul niet mogelijk?

DarkScribe
7 antwoorden
  • onderstaande compileert uiteraard niet, maar de bedoeling is duidelijk:

    Dim arrayOfInt(0 To -1) As Integer

    bvd
  • [code:1:6e9bba7c1a]Option Explicit

    Private Type NAWType
    Voornaam as String
    Achternaam as String
    Leeftijd as Integer
    Adres as String
    Woonplaats as String
    End Type

    Private NAW() as NAWType[/code:1:6e9bba7c1a]

    Heeft bovenstaand array nu wel of geen lengte? Is het een array per definitie? Of is het alleen maar een declaratie?

    Wanneer je er getallen inzet, dan heeft de array wel degelijk een lengte. 'Dim NAW(0 TO 0)' heeft al een lengte van 1 keer het array, 'Dim NAW(0 TO -1)' heeft zelfs een lengte van twee keer het array. Ik zit nu niet aan mijn computer waar ik mee programmeer maar ik denk dat dit wel degelijk compileert. Misschien moet het worden 'Dim NAW(0 to -1 STEP -1)' maar ik kan dit niet controleren.

    Wel een interessante vraag, overigens.
  • het is een variabele (stukje geheugen) gereserveerd voor het opslaan v/e array van 0 ints :smile:

    ik heb op de pc waar ik nu achterzit vb niet geinstalleerd (voel d'r eerlijk gezegd ook weinig voor om dat nu te doen), maar vanmorgen op m'n werk was ik een tijdje aan 't knoeien in versie 6 v/deze ontwikkelomgeving en het lukte me maar niet om het in m'n vorige post gevraagde voor elkaar te krijgen…

    ik meen te herinneren dat de decleratie (0 To -1) niet geaccepteerd werd, de preciese foutmelding, en code, ben ik helaas vergeten.
  • Zit nu achter de goede computer, en heb het bovenstaande geprobeerd. Het blijkt dat je met een array niet achteruit kan tellen maar negatieve getallen zijn geen probleem.

    ReDim NAW(0 To 6) Gaat prima
    ReDim NAW(6 To 0) Gaat niet
    ReDim NAW(-4 To 4) Gaat prima
    ReDim NAW(-4 To -2) Gaat prima
    ReDim NAW(0 To -1) Gaat niet

    De bijbehorende foutmelding heeft het over subscripts die 'out of range' zijn. En dat STEP gebeuren in een array kent VB helemaal niet, ook een ReDim NAW(1 To 9 Step 2) geeft een foutmelding.

    In ieder geval, jouw vraag krijgt het antwoord nee, er bestaat niet iets als een array met lengte nul.
  • dat je in vb arrays negatief kan indexeren had ik vandaag idd ook opgemerkt, maar een array van lengte nul bestaat dus weer niet… vreemd

    bedankt voor de moeite.
  • Volgens mij bestaat er wel een array met lengte nul. Als een dynamische array declareert met (Dim Array() as …) dan is de lengte nul. Om een array die geherdimensioneerd is met redim weer een lengte van nul te geven gebruik je Erase.
  • Ik dacht dat ik dat al geprobeerd had (weet 't niet zeker meer). Erase kende ik niet, ga 't morgen proberen.

Beantwoord deze vraag

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