VB6 Format()

Oberchefe

Level-3
Beiträge
3.333
Reaktionspunkte
739
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe folgendes Problem: Wandlung eines ASCII Zeichens in eine Hex-Zahl.
Generell funktioniert das folgende:

Code:
For i = 1 To Len(Text1.Text)

    V2 = V2 & Format(Asc(Mid(Text1.Text, i, 1)), "000") & ","
    V3 = V3 & " " & Format(Hex(Asc(Mid(Text1.Text, i, 1))), "00") & ","

Next
V2 ergibt die Dezimalwerte, V3 die Hexwerte. Hat aber ein Problem: bei einem Doppelpunkt steht in V3 statt "3A" "00" drin. Andere Zeichen (wie z.B. ";" ergeben erwartungsgemäße Ergebnisse ("3B"). Wird das "Format" entfernt scheint's zu funktionieren.

also:
Code:
V3 = V3 & " " & Hex(Asc(Mid(Text1.Text, i, 1))) & ","
Was mache ich (bzw. Herr Gates) falsch?
 
Hallo,
vermutlich arbeitet Format nur mit Zahlenwerten ...
ich würde dein Problem wie folgt lösen :
Code:
    V3 = V3 & " " & [COLOR=red]Right("00"[/COLOR] + Hex(Asc(Mid(Text1.Text, i, 1))),[COLOR=red] 2)[/COLOR] & ","
... dann hast du es doch auch ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Function:

Hallo,

hab mal eine Funktion rausgesucht:

Code:
    Public Function StringToHex(ByVal StrToHex As String) As String
        Dim strTemp As String
        Dim strReturn As String
        Dim I As Long
        For I = 1 To Len(StrToHex)
            strTemp = Hex$(Asc(Mid$(StrToHex, I, 1)))
            If Len(strTemp) = 1 Then strTemp = "0" & strTemp
            strReturn = strReturn & Space$(1) & strTemp
        Next I
        StringToHex = strReturn
    End Function

Gruß
Stefan
 
vermutlich arbeitet Format nur mit Zahlenwerten ...

und warum geht dann alles andere (also auch das Semikolon Hex 3b)?

Ich programmiere ungern was um ohne verstanden zu haben warum es so nicht geht, ich könnte das Problem auf eine andere Art und Weise in der Zukunft wieder bekommen und wieder auf die Schnauze fallen. Es hat auch eine ganze Weile gedauert bis raus war dass es es ein Problem damit gibt, die meisten Zeichen funktionieren ja wie erwartet.
Aber mir wird ja wohl nichts anderes übrig bleiben.

Danke für die Vorschläge!
 
Zurück
Oben