Hallo allemaal,
ik kom even niet meer uit een deel van een functie om de invoer van een gebruiker voor voorletters in het formaat Letter.Letter. te zetten. Dus ab wordt A.B. maar ook a.b wordt A.B. en a..b wordt A.B. Alle soorten invoer wordt dus tot hetzelfde gemaakt.
Nu werkt ab en a.b goed. Echter a..b (meerdere punten ertussen kan ook) en a.b. werkt niet. a..b leidt tot de fout dat m'n array te klein is voor het aantal items dat er ingevoerd worden. Het probleem is alleen dat ik niet gevonden kan krijgen hoe hij aan die waarde komt.
a.b. krijgt aan het einde een punt teveel, dus a.b..
Dit is de code die hier voor zorgt:
Waarschijnlijk maak ik gewoon ergens een grote denkfout. Wie kan mij vertellen waar het hier fout gaat?
ik kom even niet meer uit een deel van een functie om de invoer van een gebruiker voor voorletters in het formaat Letter.Letter. te zetten. Dus ab wordt A.B. maar ook a.b wordt A.B. en a..b wordt A.B. Alle soorten invoer wordt dus tot hetzelfde gemaakt.
Nu werkt ab en a.b goed. Echter a..b (meerdere punten ertussen kan ook) en a.b. werkt niet. a..b leidt tot de fout dat m'n array te klein is voor het aantal items dat er ingevoerd worden. Het probleem is alleen dat ik niet gevonden kan krijgen hoe hij aan die waarde komt.
a.b. krijgt aan het einde een punt teveel, dus a.b..
Dit is de code die hier voor zorgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| ' Ingevoerde string in hoofdletters zetten
strUpX = UCase(X)
' Het vullen van de matrix met alleen de letters van de string
For intLoop = 1 To Len(strUpX)
' Grootte dynamisch array vaststellen aan de hand van het
' aantal ingevoerde karakters
ReDim Preserve arrChars(intCountItems)
intLoop2 = intLoop - 1
' String opsplitsen in karakters
strTempChar = Mid(strUpX, intLoop, 1)
' Als karakter geen letter is, karakter overslaan en met
' volgend karakter verder gaan
If strTempChar < "A" Or strTempChar > "Z" Then
blnSkipped = True
GoTo Nextitem
' Als karakter wel een letter is, kijken of vorig karakter
' overgeslagen is
Else
If blnSkipped = True Then
intLoop2 = intLoop2 - 1
'blnSkipped = False
End If
MsgBox (strTempChar)
arrChars(intLoop2) = strTempChar
intCountItems = intCountItems + 1
End If
Nextitem:
Next intLoop |
Waarschijnlijk maak ik gewoon ergens een grote denkfout. Wie kan mij vertellen waar het hier fout gaat?
Liefde maakt een smal bed breed!
Nu de dekens nog...