VB For Next zählt index doppelt hoch

Gast #3630811
Lesenswert?

Hallo,

ich hab da ein Problem mit VB12.

Die Zählvariable wird in der zweiten For .. Next Schleife zweimal 
hochgezählt. Das der Debugger zumindest an.
1
    Private Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)
2

3
        Dim recBuffer(200) As Char
4
        Dim i As Integer
5
        Dim sp As SerialPort = CType(sender, SerialPort)
6
        Dim BytesToRead As Integer
7

8
        i = 0
9

10
        For i = 0 To 200
11
            recBuffer(i) = vbNullChar
12
        Next
13

14
        BytesToRead = sp.BytesToRead
15
        sp.Read(recBuffer, 0, BytesToRead)
16

17
        i = 0
18

19
        For n As Integer = 0 To BytesToRead - 1 Step 1
20
            inBuffer(RXinPtr) = recBuffer(n)
21
            n = n + 1
22
            If inBuffer(RXinPtr) = vbLf Then
23
                NewSerialData = True
24
            End If
25
            RXinPtr = RXinPtr + 1
26
            If RXinPtr > 200 Then
27
                RXinPtr = 0
28
            End If
29
        Next
30

31
    End Sub

Woran kann das liegen?
Gast #3630819
Lesenswert?

Andre schrieb:
> Woran kann das liegen?

 n = n + 1

das macht kann sinn in einer schleife, dann das macht die schleife von 
selber.


Es auch auch kein sinn das Array vorher leer zu machen, wennn du es 
gleich danach mit Daten befüllst.

Und die Prüfst auch nicht wie viele Daten gelesen wurden, du geht 
einfach davon aus das Read alles liest - das muss aber nicht so sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren