komisches Verhalten bei array of structure

  • VB.NET
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    komisches Verhalten bei array of structure

    Hi,

    ich habe diese Funktion hier:

    Quellcode

    1. Dim ausgang = SearchVatCode("4", "5", "6")


    Damit fülle ich ausgang auf, alles funktioniert bestens. SearchVatCode gibt diesen Structure zurück:

    Quellcode

    1. Structure zuordnung
    2. Dim id As String
    3. Dim vatcode As String
    4. Dim bez As String
    5. End Structure


    und ic habe das hier:

    Quellcode

    1. Dim i As Integer = 9
    2. Dim j As Integer = 9
    3. For m = 0 To ausgang.Count - 1
    4. frmMain.lblBelfprogress.Text = ausgang(m).bez & " - " & ausgang(m).vatcode
    5. Debug.Print(ausgang(m).vatcode)
    6. Do While ws.Cells(j, 2).Text <> "**"
    7. Application.DoEvents()
    8. Do While Not ws.Cells(i, 14).Text = ""
    9. If ws.Cells(i, 22).Text = ausgang(m).vatcodeThen
    10. drSor = dsAfabevallas.Tables(0).NewRow
    11. drSor(0) = ws.Cells(i, 15).Text
    12. drSor(1) = ws.Cells(i, 22).Text
    13. drSor(2) = Math.Round(GetNumber(ws.Cells(i, 33).Text), 0)
    14. drSor(3) = Math.Round(GetNumber(ws.Cells(i, 34).Text), 0)
    15. drSor(4) = ws.Cells(i, 37).Text.ToString.Substring(0, 8)
    16. drSor(5) = ReverseDate(ws.Cells(i, 11).Text).ToShortDateString
    17. drSor(6) = ws.Cells(i, 36).Text
    18. drSor(7) = ws.Cells(i, 39).Text
    19. drSor(8) = ws.Cells(i, 19).Text
    20. dsAfabevallas.Tables(0).Rows.Add(drSor)
    21. End If
    22. i = i + 1
    23. j = j + 1
    24. frmMain.pbBelfprogress.Position = i
    25. If frmMain.pbBelfprogress.Position > 0 Then frmMain.pbBelfprogress.Position = frmMain.pbBelfprogress.Position - 1
    26. Loop
    27. 'sum sor
    28. If Not ws.Cells(i, 33).Text = "" Then
    29. i = i + 2
    30. j = j + 2
    31. frmMain.pbBelfprogress.Position = i
    32. If frmMain.pbBelfprogress.Position > 0 Then frmMain.pbBelfprogress.Position = frmMain.pbBelfprogress.Position - 1
    33. End If
    34. Loop
    35. Next


    In der Zeile Debug.Print werden die Werte ausgegeben, die ich erwarten.

    Wenn ich aber diese Zeile unter der do while platziere, dann bekomme ich nur leere Werte. Ich habe keine Ahnung, was hier los ist.

    Vielleicht hat hier jemand eine Idee?

    danke

    vb_fan schrieb:

    Quellcode

    1. If Not ws.Cells(i, 33).Text = "" Then
    Wenn Du so was lesen willst, schreib lieber:

    Quellcode

    1. If ws.Cells(i, 33).Text <> "" Then
    oder

    Quellcode

    1. If Not String.IsNullOrEmpty(ws.Cells(i, 33).Text) Then
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!