Was passiert bei Zuweisung von String an Byte-Array?

  • Sonstige

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

    Was passiert bei Zuweisung von String an Byte-Array?

    Was genau passiert in VBA bei der Zuweisung eines Strings an ein Byte-Array?
    Beispielcode:

    Visual Basic-Quellcode

    1. Sub Foo()
    2. Dim A As String
    3. A = "A€"
    4. Dim B() As Byte
    5. B = A
    6. Dim Breakpoint As Integer
    7. Breakpoint = 0
    8. End Sub

    Setzt man am Ende einen Haltepunkt und fügt eine Überwachung für B hinzu, kommt {65, 0, 172, 32} (also ein Byte-Array) heraus.
    Es sieht so aus, als würde es sich um UTF-16 LittleEndian handeln (siehe unicode-table.com/de/20AC/), aber ich habe keine Dokumentation gefunden, die das bestätigt. docs.microsoft.com/en-us/dotne…ators/assignment-operator sagt auch nichts genaueres darüber aus.

    Also falls jemand einschlägige Dokumentation dazu kennt, immer her damit.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Also bei mir meckert die IDE bei der Zuweisung in Zeile #5: Der Wert vom Typ "String" kann nicht in "1-dimensionales Array von Byte" konvertiert werden.
    Edit: Upps - Sorry, du meinst das Ganze in VBA...
    Zumindest ergibt folgende Anweisung das gleiche Ergebnis:

    VB.NET-Quellcode

    1. B = StrConv(A, vbUpperCase)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()