Einige alte Methoden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Einige alte Methoden

    Hallo.

    Ich habe hier einige alte Methoden. Eventuell kann mir jemand sagen, ob es
    da neuere Möglichkeiten gibt, dies zu realisieren:

    'Big Endian Konvertierung

    VB.NET-Quellcode

    1. Private Function ConvertToInteger(startIndex As Integer, Size As Integer) As ULong
    2. If Size > 8 Or Size = 0 Then Return Nothing
    3. Dim retVal As ULong = 0
    4. For i As Integer = 0 To Size - 1
    5. retVal = ((retVal << 8) Or db_bytes(startIndex + i))
    6. Next
    7. Return retVal
    8. End Function


    'Nummer-Odd Prüfung

    VB.NET-Quellcode

    1. Private Function IsOdd(value As Long) As Boolean
    2. Return (value And 1) = 1
    3. End Function



    VB.NET-Quellcode

    1. Private Function GVL(st As Integer) As Integer
    2. If st > db_bytes.Length Then Return -1
    3. For i As Integer = st To st + 8
    4. If i > db_bytes.Length - 1 Then
    5. Return Nothing
    6. ElseIf (db_bytes(i) And &H80) <> &H80 Then
    7. Return i
    8. End If
    9. Next
    10. Return st + 8
    11. End Function



    VB.NET-Quellcode

    1. Private Function CVL(st As Integer, endIndex As Integer) As Long
    2. endIndex = endIndex + 1
    3. Dim retus(7) As Byte
    4. Dim Length As Integer = endIndex - st
    5. Dim Bit64 As Boolean = False
    6. If Length = 0 Or Length > 9 Then Return Nothing
    7. If Length = 1 Then
    8. retus(0) = CByte((db_bytes(st) And &H7F))
    9. Return BitConverter.ToInt64(retus, 0)
    10. End If
    11. If Length = 9 Then Bit64 = True
    12. Dim j As Integer = 1
    13. Dim k As Integer = 7
    14. Dim y As Integer = 0
    15. If Bit64 Then
    16. retus(0) = db_bytes(endIndex - 1)
    17. endIndex = endIndex - 1
    18. y = 1
    19. End If
    20. For i As Integer = (endIndex - 1) To st Step -1
    21. If (i - 1) >= st Then
    22. retus(y) = CByte(((db_bytes(i) >> (j - 1)) And (&HFF >> j)) Or (db_bytes(i - 1) << k))
    23. j = j + 1
    24. y = y + 1
    25. k = k - 1
    26. Else
    27. If Not Bit64 Then retus(y) = CByte(((db_bytes(i) >> (j - 1)) And (&HFF >> j)))
    28. End If
    29. Next
    30. Return BitConverter.ToInt64(retus, 0)
    31. End Function



    Danke im Voraus!

    Daniel Baumert schrieb:

    VB.NET-Quellcode

    1. If st > db_bytes.Length Then Return -1
    2. For i As Integer = st To st + 8
    Dieser Test reicht nicht, Du musst

    VB.NET-Quellcode

    1. If st + 8 > db_bytes.Length Then Return -1
    machen.
    Meinst Du ggf.

    VB.NET-Quellcode

    1. For i As Integer = st To st + 7
    , also 8 Umläufe?
    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!