Pagina 1 van 1

Array probleem

Geplaatst: 06 mei 2004, 16:39
door Stino

Code: Selecteer alles

dim maintYear() as Integer
...
...Redim Preserve maintyear(int)...
...
If intNumber > UBound(maintYear) Or intNumber < LBound(maintYear) then Exit Sub


De code op de ... leest een bestand, en stopt de inhoud daarvan in die array. Als het bestand leeg is, heb ik hetvolgende probleem: Subscript out of range als ik UBound(maintYear) opvraag. Wat kan ik hier eventueel aan doen?

Geplaatst: 06 mei 2004, 17:35
door ubremoved_539
Zelf bijhouden hoe groot je array is ?

Trouwens een "Redim Preserve"... als dat geen performance killer is.

Linked lists heb je waarschijnlijk niet ?

Geplaatst: 06 mei 2004, 20:35
door Stino
Damnit, dat ik daar niet aan gedacht heb. Ik hield al bij hoe groot hij was om te ReDimmen, en kan dat dus ook gebruiken om te kijken of hij leeg is...

Thanks r2504.

Over die ReDim Preserve en performance killer...ik sta altijd open voor andere oplossingen :p

Geplaatst: 06 mei 2004, 23:43
door ubremoved_539
Het is echter wel gek dat die U/LBound functies de mist ingaan. (maar gebruik al enkele jaren geen VB meer)

Het probleem bij Redim preserve is dat er veel geheugen moet gecopieerd worden intern... meer alloceren is namelijk iets dat niet mogelijk is. Het zijn net dergelijke bewerkingen die enorm traag gaan (hoe snel intern geheugen ook mag wezen)

Ideale technieken zijn deze die geheugen alloceren voor zover het nodig is... per element dus, en extra geheugen (welk niet aaneensluiten is) bij alloceren per entry. Nooit linked lists gezien in de cursus C ?

Enfin... de tijd is voorbij dat je echt moeite moest doen voor performance... vandaar misschien ook dat Windows zo traag is :lol: