[ASP] Array vullen

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Hoi,

Ik blijf array's een beetje lastig vinden, maar ik heb er nu toch echt een nodig...

Alleen het vullen lukt me niet echt.

ik lees een dir uit en wil de filenames in een dynamische array stoppen:
code:
1
2
3
4
5
6
7
8
i = 0
Dim objFile
Dim strImage()
For Each objFile in objFolder.Files

    strImage() = objFile.Name
     i = i+1
Next

Dat werkt alleen niet.. hoe krijg ik nu die array gevuld?
ik weet het is simpel maar ik kan geen goed voorbeeld vinden :|

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Geen goed voorbeeld kunnen vinden?

Google doet wonderen... :)

Onder andere dit:
http://www.asp101.com/samples/array.asp

Daarnaast een hintje:
code:
1
2
3
4
5
6
Dim arrFilename()
Redim arrFileName(5) 'Verander de arraygrootte naar 5 units
Dim I
For I = 0 to 5
    arrFileName(I) = "Hoi, hier staat " & I
Next

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ja die had ik al gevonden
maar daar had ik dus verder niets aan omdat dat geen dynamische array's zijn....

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
code:
1
2
3
4
5
6
7
8
i = 0
Dim objFile
Dim strImage()
For Each objFile in objFolder.Files

    strImage() = objFile.Name
     i = i+1
Next
Maak er eens van:
code:
1
2
3
4
5
6
7
8
i = 0
Dim objFile
Dim strImage()
For Each objFile in objFolder.Files
    Redim Preserve strImage(i)
    strImage(i) = objFile.Name
     i = i+1
Next

Dit moet werken...

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ik wil dus alle resultaten uit mijn
For Each loop in een array proppen... aangezien dat nooit dezelfde aantallen zijn kan ik dus niet redimmen naar een vast getal...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
Ik ben het met ntgiant eens. je moet de array iedere keer een element groter maken, omdat de grootte van een array in ASP bekend moet zijn.

Problem Exists Between Chair And Keyboard


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Op dinsdag 16 juli 2002 12:53 schreef 4of9 het volgende:
ik wil dus alle resultaten uit mijn
For Each loop in een array proppen... aangezien dat nooit dezelfde aantallen zijn kan ik dus niet redimmen naar een vast getal...
:? Wrom nie?
Daar heb je juist ReDim voor i.c.m. preserve
Voor iedere nieuwe file pak je de huidige array en zet er eentje bij.

Je kan hem niet Dimmen.

Of het een efficiente methode is weet ik niet; het kan ook best zijn dat je eerst alle files moet tellen, dit aantal door middel van een Redim als arraygrootte moet nemen en vervolgens met een loop dat na te gaan. Lijkt me efficienter dan steeds de array te gaan redimmen met een preserve

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
het werkt niet...

krijg de volgende error...

Microsoft VBScript runtime error '800a0009'

Subscript out of range

/zoka/image.asp, line 36

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Op dinsdag 16 juli 2002 12:53 schreef 4of9 het volgende:
ik wil dus alle resultaten uit mijn
For Each loop in een array proppen... aangezien dat nooit dezelfde aantallen zijn kan ik dus niet redimmen naar een vast getal...
Met redim preserve maak je je array zo groot als i. Wanneer je dus de for in gaat maak je er de eerste keer een array met 1 item van, vervolgens zet je daar je naam en verhoog je i naar 1. Nu wordt er een redim gedaan en wordt je array 2 item, enz....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

En wat is lijn 36?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ow dat was een stukje code die niet helemaal klopte...

ff kijken of ik hem nu uit kan lezen

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Op dinsdag 16 juli 2002 12:58 schreef 4of9 het volgende:
ow dat was een stukje code die niet helemaal klopte...

ff kijken of ik hem nu uit kan lezen
Daar waren we al achter gekomen dat er iets niet klopt.. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

De Files collection bevat een .Count property, zodat je voor de loop het aantal files kunt uitlezen, 1 keer een ReDim doet, en daarna alles netjes in de loop uitleest en in de array stopt. Dat is veel efficienter, want ReDims, zeker in combinatie met Preserve, zijn geen zuinige operaties.

Overigens 4of9, een beetje debuggen moet je leren, en dat leer je alleen door oefenen. Als je alleen code van iemand anders C & P en er zit een fout in, moet je het niet direct opgeven en deerst zelf proberen de fout op te lossen.

Enjoy :)

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Op dinsdag 16 juli 2002 13:02 schreef MrX het volgende:
De Files collection bevat een .Count property, zodat je voor de loop het aantal files kunt uitlezen, 1 keer een ReDim doet, en daarna alles netjes in de loop uitleest en in de array stopt. Dat is veel efficienter, want ReDims, zeker in combinatie met Preserve, zijn geen zuinige operaties.

Overigens 4of9, een beetje debuggen moet je leren, en dat leer je alleen door oefenen. Als je alleen code van iemand anders C & P en er zit een fout in, moet je het niet direct opgeven en deerst zelf proberen de fout op te lossen.

Enjoy :)
Thx for alle help maar ik was dus echt al een uur aan het "debuggen" jammer dat het alleen maar slechter er van werd :)

ik ga weer verder prutsen

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Op dinsdag 16 juli 2002 13:04 schreef 4of9 het volgende:

[..]

Thx for alle help maar ik was dus echt al een uur aan het "debuggen" jammer dat het alleen maar slechter er van werd :)

ik ga weer verder prutsen
Uhm ... tussen het bericht met code van NTGiant en jouw melding dat het een error geeft zit slechts 4 minuten. :?

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
hmm ja dat kan wel kloppen... maar ik had daarvoor al van alles geprobeerd...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...

Pagina: 1