Integer in einen String

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von alchimist.

    Integer in einen String

    Hi
    Ich will mehrere Integer in einen String schreiben, der sich dann später mit Zlib komprimieren lässt. Das Problem ist, das die Integer dabei immer in Ascii umgewandelt werden (aus 0x0004 wird z.B. 0x0034).
    Kennt wer eine Lösung?
    Ich hoffe ich habs einigermaßen verständlich erklärt ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „StNick“ ()

    Hi!

    VB-Strings sind keine ASCII-Strings sondern Unicode-Strings. Im Normalfall verwendet man für zips auch keine Strings sondern Bytes-Arrays, nen Integer irgendwo in nen Byte-Array zu kopieren geht am besten via CopyMemory-/RTLMoveMemory-API


    so long..
    Andy
    Ich hab auch ehrlich gesagt nich so recht ne AHnung wie ichs erklären soll :P
    Alsooooo...
    Vielleicht schaffe ichs mit einem Beispiel:

    Visual Basic-Quellcode

    1. Dim myByte as Byte
    2. Dim myStr as String
    3. myByte = 41 ' myByte ist logischerweise 1 Byte lang
    4. myStr = "lol" ' myStr ist nun 3Byte lang
    5. myStr = myStr & myByte ' Hier nach ist myStr 5Byte lang, weil hier myByte (0x41) zu 0x3431 umgewandelt wird

    Bei dem Beispiel sähe Die Lösung dann so aus, das ich
    myStr = myStr & myByte
    austausche mit:
    myStr = myStr & Chr(myByte)
    Aber was mache ich, wenn statt dem Byte ein Integer oder ein Long mit einem Wert über 255 da ist?

    Ich hoffe jetzt verstehst du mein Problem. ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „StNick“ ()

    @Mad Andy
    Mir wäre neu, das in VB 6.0 alle Strings Unicode sein sollen, verwechselst du das mit .net?

    @StNick
    myByte = 41 ist NICHT gleich 0x41, denn die 41 ist dezimal und da ist der Hexwert 0x29 !
    Wenn du String und Byte zusammenfügen willst dann so:
    myStr & chr(myByte)
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Hallo zusammen,
    Original von Agent
    @Mad Andy
    Mir wäre neu, das in VB 6.0 alle Strings Unicode sein sollen, verwechselst du das mit .net?

    hier mal ein kleiner Quelltext zu dem Problem:

    Visual Basic-Quellcode

    1. Dim strTmp1 As String, strTmp2 As String
    2. strTmp1 = "H"
    3. strTmp2 = StrConv(strTmp1, vbFromUnicode)
    4. MsgBox "strTmp1 = ""H""" & vbCr _
    5. & "LenB(strTmp1) = " & LenB(strTmp1) & vbCr & vbCr _
    6. & "LenB(StrConv(strTmp1, vbFromUnicode)) = " & LenB(StrConv(strTmp1, vbFromUnicode)) & vbCr & vbCr _
    7. & "strTmp2 = StrConv(strTmp, vbFromUnicode)" & vbCr _
    8. & "LenB(strTmp2) = " & LenB(strTmp2)


    Gruß Markus