login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > Overig


Gegevens:
Geschreven door:
nemesiskoen
Moeilijkheidsgraad:
Normaal
Hits:
13484
Punten:
Aantal punten:
 (4)
Aantal stemmen:
5
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (0)
 


Tutorial:

WSH - VBS 3 Loops en Arrays

1. Wat?
2. For
3. Do While
4. Arrays
5. Arrays + Loops
 top
1. Wat?

Ik ga in deze tutorial uitleggen hoe je met loops en arrays werkt in VBS.
Zoals je misschien al weet worden Loops gebruik om iets te herhalen en arrays gebruikt om meerdere gegevens in te steken.
Eerst ga ik 2 verschillende loop-vormen uitleggen, daarna de basis van arrays, en dan de combinatie van de 2.
 top
2. For

Dit is de eerste loop-vorm die ik ga bespreken.
In VBS is deze veel minder gecompliceerd dan in PHP, JavaScript, C++, en ga zo maar door.
Met de For loop geven we een variabele op zoals met select.
Dan gaan we zeggen wat de beginwaarde is van deze variabele.
Daarna zeggen we wat de eindwaarde is.
De for loop gaat elke keer nakijken of er al aan de eindwaarde is voldaan, zoniet dan telt hij een waarde bij de variabele bij, of trekt deze af.
En dan geven we aan met het Next statement dat we verder gaan.
Algemeen is dit:
For variabele = beginwaarde To eindwaarde
  Doe Iets
Next

Een klein praktijk voorbeeldje:
Dim teller

For teller = 1 To 6
  WScript
.Echo teller ,"e keer"
Next

We declareren eerst de variabele teller.
Daarna gaan we via de For loop de variabele teller een waarde geven, namelijk 1.
Dan zeggen we tot (to) welke waarde de variabele moet gaan (de eindwaare), in ons geval 6.
We laten de computer telkens de huidige waarde weergeven.
En dan gaan we verder via Next.
 top
3. Do While

Do While in VBS gelijkt sterk op die in PHP of andere talen.
Je zegt welke voorwaarde een variabele moet hebben, zolang aan die voorwaarde voldaan wordt dan gebeurt er iets, anders stopt de loop en gaat het script door.
Algemeen:
Do While voorwaarde
  ACTIE
Loop

Een klein praktijk voorbeeldje wat hetzelfde doet als met onze for loop.
Dim teller

teller
= 1

Do While teller < 7
  WScript
.Echo teller,"e keer"
  
teller = teller + 1
Loop

We declareren eerst de variabele teller, en geven hem daarna de waarde 1.
De waarde weergeven werd automatisch in de for loop gedaan, met Do While moet je dat zelf doen.
Daarna zeggen we dat het script tussen Do While en Loop zich moet herhalen zolang teller kleiner is dan 7 (dus 6).
Vervolgens geven we de huidige waarde weer en tellen we 1 waarde bij Do While op.
Zoals je misschien wel kan zien heb je met Do While meer speling, je kan bv. een oneindige loop maken, wat met de For loop onmogelijk is in VBS.
 top
4. Arrays

Voor de mensen die niet weten wat een array is:
Een array is een variabele die meerdere gegevens kan bevatten, je gaat elk gegeven "indexeren" om deze later makelijk terug te vinden.
Je kan er getallen, woorden, zinnen, enz. in op slaan.
Dit is handig bij het ingeven van gegevens, zodat je niet telkens opnieuw een nieuw script moet openen maar dat je een loopje maakt, en alle gegevens in een array steekt.
Een array declareer je zo:
Dim rij(5)
Dim dit_is_ook_een_rij(10)

Mijn eerste rij kan 5 gegevens bevatten, mijn 2e kan er 10 bevatten.
Maar hoe steek ik nu meerdere gegevens in een rij.
Je gaat steeds via de index gegevens ingeven, je zegt in welk gedeelte van de rij je gegeven staat.
Zoals hier:
Dim rij(5)

rij(1) = "halo"
rij(2) = "dit is een zin"
rij(3) = "hey"
rij(4) = "hoi"
rij(5) = "blaat... blaat... blaat"

WScript.Echo rij(1)
WScript.Echo rij(2)
WScript.Echo rij(3)
WScript.Echo rij(4)
WScript.Echo rij(5)

Eerst declareren we de array rij, en geven hem de mogelijkheid 5 gegevens te bevatten.
Daarna gaan we een voor een elke index af (1, 2, 3, 4 en 5) en steken er gegevens in.
Vervolgens gaan we deze gegevens weergeven via de object-methode WScript.Echo.
Het is nogal vrij stom zo als je geen loops gaat gebruiken, want je kan evengoed 5 variabelen aanmaken en hier gegevens insteken.
Maar met loops bespaar je je heel wat typ werk.
 top
5. Arrays + Loops

We gaan hier even terug op een kleine functie die ik in mijn eerste tutorial heb besproken.
Namelijk inputbox(), deze functie wordt gebruikt voor input te ontvangen.
We laten de gebruikers hun namen invullen en geven deze daarna weer:

Dim naam
(5)

naam(1) = inputbox("Geef uw naam")
naam(2) = inputbox("Geef uw naam")
naam(3) = inputbox("Geef uw naam")
naam(4) = inputbox("Geef uw naam")
naam(5) = inputbox("Geef uw naam")

WScript.Echo "naam 1",naam(1)
WScript.Echo "naam 2",naam(2)
WScript.Echo "naam 3",naam(3)
WScript.Echo "naam 4",naam(4)
WScript.Echo "naam 5",naam(5)

Eerst declareren we de rij naam, en geven deze de mogelijkheid 5 gegevens (in dit geval namen) te bevatten.
Vervolgens laten we deze ingeven via een inputbox en daarna geven we ze weer.
Dit script verschilt niet veel van het vorige, alleen worden hier de gegevens ingegeven.
Stel ik wil 100 namen laten ingeven, dat gaat er misschien een beetje over om dit 100 keer te typen, dus gaan we een loop gebruiken.
We herhalen eigelijk toch altijd maar 1 en dezelfde actie, alleen veranderd de index van de rij.
En laat het nu zo wezen dat we deze kunnen meegeven via de loop.
Dan ziet dat er zo uit:
Dim naam(5), i

For i = 1 To 5
    naam
(i) = inputbox("Geef uw naam")
Next

For i = 1 To 5
    WScript
.Echo "naam ",i, naam(i)
Next

Dit ziet er al heel wat korter en sneller te verwerken uit.
Laten ik even uitleg geven.
Eerst de declaratie van de rij + een index_variabele: i (de index_variabele kan elke naam hebben dat je wilt).
Daarna laten we onze for loop startern, met als beginwaarde 1 en als eindwaarde 5, dus we gaan iets 5 keer herhalen.
Namelijk het ingeven van de namen: we indexeren onze rij met i, deze verschilt van 1 tot 5.
Daarna doen we dit gewoon nog eens maar dan voor het weergeven.
En klaar!!!

Ik hoop dat je iets hebt bijgeleerd, of er toch iets aan hebt gehad, als je toch nog vragen hebt mail me of stuur een pm.


« Vorige tutorial : WSH - VBS 2 If en Select Volgende tutorial : WSH - VBS 4 + Batch »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.014s