[Prog] vB6 Tellen

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

!nFerNo

vB6 Tellen

Post#1 » Mon Nov 28, 2005 10:53 pm

Dit heeft te maken met mijn school, en kwist ni waar anders dit te posten :P
Maar ik vind dit dus totaal ni eh.......
Ik zie geen fout :/
ik heb mijn on error gecomment zoda ik een fout zie, maar die is enkel voor een lege string bestandsnaam en pad

Code: Select all

'Form om alle leerlingen per geboortejaar te tellen
Private Sub Form_Load()

'Declaraties
Dim intTellerStats
Dim arrStats(1983 To 2000)
Dim strDummy As String
Dim intAantal As Integer

    
'De jaartallen liggen vast tussen 1983 en 2000
    For intTellerStats = 1983 To 2000
'On Error GoTo error
    Open strBestandsPad & strBestandsNaam For Input As #1
    Do While Not EOF(1)
    Input #1, strDummy
        If Right(strDummy, 4) = intTellerStats Then
            intAantal = intAantal + 1
        End If
    Loop
    
'Deze array maakt het makkelijker en sneller om de label te vullen
    arrStats(intTellerStats) = "Er zijn " & intAantal & " leerlingen in het jaar " _
    & intTellerStats
    lblStats = lblStats & arrStats(intTellerStats) & vbCrLf
    Close
    Next intTellerStats
'Exit Sub
'error:
'MsgBox "Er is een fout opgetreden. Open of creëer een bestand.", vbCritical + vbOKOnly, "File"
End Sub
wat is hier fout aan?
de fout is dat dit niet gebeurt, alhoewel ik het met een break stap voor stap heb nagekeken met het jaar 1986
dus ze waren allebei 1986 maar toch telde intAantal niet op

dit wilt niet werken

Code: Select all

        If Right(strDummy, 4) = intTellerStats Then
            intAantal = intAantal + 1
        End If
edit:
een strDummy ziet er als volgt uit:

Code: Select all

666 ER                             SDFG                 1986

User avatar
j0lle
WOZ
Posts: 396

Post#2 » Mon Nov 28, 2005 11:10 pm

zet is ff
debug.print strdummy
en
debug.print right(strdummy , 4)
achter
intAantal = intAantal + 1

en post dan ff de inhoud van u debug window

User avatar
j0lle
WOZ
Posts: 396

Post#3 » Mon Nov 28, 2005 11:22 pm

k after some msn chatter we fixed it :-)

twas een type mismatch probleem.
dus integer nemen van de right(strDummy, 4)
en het sluitrecord uitsluiten, anders weer type mismatch :)

!nFerNo

Post#4 » Mon Nov 28, 2005 11:24 pm

Code: Select all

'Form om alle leerlingen per geboortejaar te tellen
Private Sub Form_Load()

'Declaraties
Dim intTellerStats
Dim arrStats(1983 To 2000)
Dim strDummy As String
Dim intAantal As Integer
Dim strLeerling As String
Dim strKomen As String

    
'De jaartallen liggen vast tussen 1983 en 2000
    For intTellerStats = 1983 To 2000
    intAantal = 0
    
On Error GoTo error

    Open strBestandsPad & strBestandsNaam For Input As #1
    
    Do While Not EOF(1)
    
        Input #1, strDummy
        
'"ZZZ" niet meetellen, dit geeft nl. problemen
        If Not Left(strDummy, 3) = "ZZZ" Then
            If Int(Right(strDummy, 4)) = intTellerStats Then
                intAantal = intAantal + 1
                
'Vanwege een fout eerder in het programma, nakijken in de immediate
                Debug.Print strDummy
                Debug.Print Right(strDummy, 4)
            End If
        End If
    Loop
    
'Deze array maakt het makkelijker en sneller om de label te vullen
    If intAantal = 1 Then
        strLeerling = " leerling"
        strKomen = " komt "
    Else
        strLeerling = " leerlingen"
        strKomen = " komen "
    End If
    
    arrStats(intTellerStats) = "Er" & strKomen & intAantal & strLeerling & " uit het jaar " _
    & intTellerStats
    
    lblStats = lblStats & arrStats(intTellerStats) & vbCrLf
    
    Close
    Next intTellerStats

Exit Sub
error:
MsgBox "Er is een fout opgetreden. Open of creëer een bestand.", vbCritical + vbOKOnly, "File"
End Sub
werkende code :)
edit: wat properder gemaakt :)
Last edited by !nFerNo on Tue Nov 29, 2005 12:29 am, edited 1 time in total.

!nFerNo

Post#5 » Mon Nov 28, 2005 11:41 pm

Image

User avatar
j0lle
WOZ
Posts: 396

Post#6 » Mon Nov 28, 2005 11:50 pm

if intaantal = 1 then strshit = "leerling" else strshit = "leerlingen"
;-)

!nFerNo

Post#7 » Tue Nov 29, 2005 12:22 am

endif

Code: Select all

    If intAantal = 1 Then
        strLeerling = " leerling"
        strKomen = " komt "
    Else
        strLeerling = " leerlingen"
        strKomen = " komen "
    End If
    
    arrStats(intTellerStats) = "Er" & strKomen & intAantal & strLeerling & " uit het jaar " _
    & intTellerStats

Boendie

Post#8 » Thu Dec 01, 2005 11:37 pm

wat haat ik toch sequentiele bestanden

ge zult blij zijn as ge me databases begint te werke das veel makkelijker en leuker om mee te werke :wink:

User avatar
Shinta
WOZ
Posts: 1122

Post#9 » Fri Dec 02, 2005 4:16 pm

wat haat ik VB tog ;)

!nFerNo

Post#10 » Fri Dec 02, 2005 6:09 pm

ik vind mezelf toch al vrij 1337 omdat ik tenminste 1 language ken :p
ik ben atm met PHP5 bezig :)
best wel leuk, ik kan al for lussen maken en variabele declarere *yeuy*

!nFerNo

Post#11 » Fri Dec 02, 2005 6:11 pm

Code: Select all

'Form om alle leerlingen per geboortejaar te tellen
Option Explicit
Private Sub Form_activate()

'Declaraties
Dim intTellerStats As Integer
Dim arrStats(1983 To 2000) As Integer
Dim strDummy As String
Dim strLeerling As String
Dim intjaar As Integer
Dim booaanwezig As Boolean

'De jaartallen liggen vast tussen 1983 en 2000

On Error GoTo error
     
    Open strBestandsPad & strBestandsNaam For Input As #1
    Do While Not EOF(1)
        Input #1, strDummy
'"ZZZ" niet meetellen, dit geeft nl. problemen
        If strDummy < "ZZZ" Then
            intjaar = Right(strDummy, 4)
            arrStats(intjaar) = arrStats(intjaar) + 1
        End If
    Loop
    Close
    
    booaanwezig = False
    For intjaar = 1983 To 2000
    If arrStats(intjaar) > 0 Then
        strDummy = Str(intjaar) & " " & Str(arrStats(intjaar))
        lststats.AddItem strDummy
        booaanwezig = True
    End If
    Next intjaar
    If Not booaanwezig Then
        MsgBox "Er zijn geen gegevens om te tellen", vbOKOnly, "Gegevens"
    End If


Exit Sub
error:
MsgBox "Er is een fout opgetreden. Open of creëer een bestand.", vbCritical + vbOKOnly, "File"
Unload frmStats
End Sub
dit is trouwens nog ne variant da ik gemaakt heb op 't vorig, nu kijt 'm enkel de jare waar echt iets in zit na, bij de vorige kijkt 'm alles na

Boendie

Post#12 » Fri Dec 02, 2005 10:19 pm

den dennis beginnet te kunne :P

!nFerNo

Post#13 » Fri Dec 02, 2005 11:12 pm

:P

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 59 guests