Deze voorbeeldcode helpt u te zien waarvoor arrays kunnen worden gebruikt en toont ook een lus in actie.

Stel dat u wilt dat de gebruiker een zin invoert en vervolgens wilt laten weten hoe vaak ze elke letter van het alfabet hebben gebruikt. Dus als de gebruiker heeft getypt:

Ik heb mijn kat opgegeten.

U zou een pagina retourneren die zei:

a: 2
c: 1
e: 1
i: 1
m: 1
t: 2
y: 1

OK, stap één. U wilt 26 verschillende items tellen, één voor elke letter van het alfabet. Dit schreeuwt bijna uit rangschikking. Begin dus met een

Dim LetterCount (26)
voor CurrLtr = 1 tot 26
LetterCount (CurrLtr) = 0
De volgende

Dat is een goed voorbeeld van een volgende lus. OK, tot nu toe zo goed. Je hebt 26 plekken op nul, klaar om te beginnen met tellen. Ga nu je weg door de zin om te zien wat erin zit. Laten we zeggen dat je deze zin CurrText noemt.

Eerst wil je elke letter in de zin controleren. Ik doe dit met een do-while-lus, zodat je kunt zien hoe dat werkt. Dus je zou beginnen met:

SenLen = len (CurrText)
CurrCtr = 1
doen terwijl CurrCtr <= SenLen
CurrLtr = left (CurrText, 1)

Je hebt de volgende letter op volgorde. Nu heeft elke letter natuurlijk een ascii-waarde. Die variëren van 65 voor A tot 90 voor Z. Case doet er toe. Vervolgens zet je de hoofdletter in hoofdletters om er zeker van te zijn dat hij tussen 65 en 90 valt en 64 af te trekken zodat A = 1 en Z = 26.

CurrLtr = ucase (CurrLtr)
CurrLtrA = asc (CurrLtr)
CurrLtrA = CurrLtrA - 64

Dus nu heb je een cijfer van 1 tot 26 dat aangeeft welke letter dit is. De volgende stap is natuurlijk eenvoudig. Je verhoogt gewoon die emmer! Als je wilt, kun je ervoor zorgen dat je elke niet-letter negeert, als je je zorgen maakt dat ze in de stream komen.

als CurrLtrA> 0 en CurrLtrA <65 dan
LetterCount (CurrLtrA) = LetterCount (CurrLTrA) + 1
stop als

En nu het einde van de lus, raak je de letter kwijt waar je net aan werkte, zodat wanneer je in de lus rondgaat, de eerste letter in de zin de volgende in volgorde is.

CurrText = Right (CurrText, len (CurrText) - 1)
CurrCtr = CurrCtr + 1
lus

Dus nu zit je array vol met cijfers variërend van 0 tot wat dan ook, elk geeft aan hoe vaak die letter is gevonden. U kunt ze op elke gewenste manier weergeven. Als u een lus en de CHR-functie wilt gebruiken, die de letter met een bepaalde ASCII-code toont, kunt u het volgende doen:

voor CurrLtr = 1 tot 26
response.write "De brief"
CurrAscii = CurrLtr + 64
CurrLtrA = chr (CurrAscii)
response.write CurrLtrA & "werd gevonden"
response.write LetterCount (CurrLtr) & "tijden.
"
De volgende

Kom zeker langs op onze forums of schrijf als je vragen hebt!

Inleiding tot ASP Ebook

Download dit e-boek voor alles wat u moet weten over het leren van ASP - van een stapsgewijze zelfstudie tot functielijsten, voorbeeldcode, veelvoorkomende fouten en oplossingen en nog veel meer! 101 pagina's.