[VB] Spaties/letters filteren

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Over het filteren van spaties of specifieke letters bestaan een aantal topics, die ik doorgelezen heb. Helaas wordt me daar nog niet alles helemaal duidelijk. Ik heb, met behulp van die topics, de volgende code in elkaar geprutst:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Public Function checkPostcode(test As String, mandatory As Boolean)
    If (mandatory = False) Then
        checkPostcode = True
        Exit Function
    End If
    For i = 0 To Len(test)
        Select Case Mid(test, i, 1)
        Case " ": Next
        Case Else: a = Mid(test, i, 1)
    Next
    MsgBox a
End Function


Wat de functie moet doen, is controleren of de ingevoerde string een correcte postcode is. Niet of deze overeenkomt met de opgegeven plaats, maar simpelweg of deze bestaat uit 4 cijfers en 2 letters. Daartoe wil ik eerst alle spaties er uit krijgen.

Als totale VB6 newbie moet ik zeggen dat ik 't best een lastig taaltje vindt in vergelijking tot java/c++. Ik zie wat er fout is, weet waarom, maar de oplossing hiervoor ontgaat me.

Case " ": Next werkt natuurlijk niet, aangezien die Next op geen enkele For slaat. Wat ik wil doen met deze functie is de string doorlopen en ieder karakter, indien dit geen spatie is, in een nieuwe string zetten. Wat moet ik dan bij die case van spatie neerzetten?

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


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

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Dim code as string = "test test"
code = Replace(code," ","")
If Not Len(code) = 6 Then
    ' ongeldig postcode
End if
For I = 0 to 3
    If Not IsNumeric(Mid(code , i, 1) Then
        ' ongeldig postcode
    End if
Next
'etc.

:P

[ Voor 89% gewijzigd door gorgi_19 op 19-12-2003 12:19 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Dus ik zit weer eens veel te moeilijk te doen is de conclusie... :|

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


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

gorgi_19

Kruimeltjes zijn weer op :9

Kaastosti schreef op 19 december 2003 @ 12:18:
Dus ik zit weer eens veel te moeilijk te doen is de conclusie... :|
Erhm.. Ja :P :+ De laatste had ik geen zin meer om te doen. Eenvoudige methode: maak van de letters een UCase en controleer of deze in een bepaalde ASCII-reeks ligt.

[ Voor 29% gewijzigd door gorgi_19 op 19-12-2003 12:20 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Dan blijft er voor mij tenminste nog wat over om te puzzelen :) Bedankt voor de hulp! Misschien nog 1 vraagje... ik wil dat de functie een boolean returned (of de postcode ok is of niet). Return true oid werkt in ieder geval niet. Moet ik zelf een waarde aan de functie toekennen en 'm daarna afsluiten of iets in die richting?

[ Voor 59% gewijzigd door Kaastosti op 19-12-2003 12:28 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


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

gorgi_19

Kruimeltjes zijn weer op :9

Kaastosti schreef op 19 december 2003 @ 12:25:
Dan blijft er voor mij tenminste nog wat over om te puzzelen :) Bedankt voor de hulp! Misschien nog 1 vraagje... ik wil dat de functie een boolean returned (of de postcode ok is of niet). Return true oid werkt in ieder geval niet. Moet ik zelf een waarde aan de functie toekennen en 'm daarna afsluiten of iets in die richting?
Om eerlijk te zijn heb ik nooit met VB6 gewerkt, dus ik zou er geen antwoord op kunnen geven.

Ik gok:
Visual Basic 6:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim code as string = "test test"
code = Replace(code," ","")
If Not Len(code) = 6 Then
        checkPostcode = False
        Exit Function
End if
For I = 0 to 3
    If Not IsNumeric(Mid(code , i, 1) Then
        checkPostcode = False
        Exit Function

    End if
Next
'etc.

[ Voor 4% gewijzigd door gorgi_19 op 19-12-2003 12:36 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
/me is niet helemaal zeker of vb regexps ondersteund

het gebruik van een reguliere expressies kan ook een fraaie oplossing zijn...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Heh voor iemand die nog nooit met VB6 heeft gewerkt doe je het toch heel aardig :) Ik ga eens wat dingen proberen dan maar. Nogmaals bedankt voor de suggesties beiden.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


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

gorgi_19

Kruimeltjes zijn weer op :9

FvKnijff schreef op 19 december 2003 @ 12:39:
/me is niet helemaal zeker of vb regexps ondersteund

het gebruik van een reguliere expressies kan ook een fraaie oplossing zijn...
Dat doen ze niet standaard... :) Tenzij je een componement van de Scripting engine importeert :)

[ Voor 11% gewijzigd door gorgi_19 op 19-12-2003 12:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 12-10-2025

Denhomer

Doh !

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Public Function checkCode(ByVal code As String) As Boolean
        checkCode = True
        Dim i
        code = Replace(code, " ", "")
        If Not Len(code) = 6 Then
            checkCode = False
            Exit Function
        End If
        For i = 1 To 4
            If Not IsNumeric(Mid(code, i, 1)) Then
                checkCode = False
                Exit Function
            End If
        Next
        ' nog een testje voor de letters
    End Function

let vooral op de as boolean achter de functiedeclaratie dat is het return type

[ Voor 22% gewijzigd door Denhomer op 19-12-2003 12:48 ]

Pagina: 1