# VB6 Format()



## Oberchefe (1 März 2011)

ich habe folgendes Problem: Wandlung eines ASCII Zeichens in eine Hex-Zahl.
Generell funktioniert das folgende:


```
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:

```
V3 = V3 & " " & Hex(Asc(Mid(Text1.Text, i, 1))) & ","
```
Was mache ich (bzw. Herr Gates) falsch?


----------



## Larry Laffer (2 März 2011)

Hallo,
vermutlich arbeitet Format nur mit Zahlenwerten ... 
ich würde dein Problem wie folgt lösen :
	
	



```
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


----------



## StefanK (2 März 2011)

*Function:*

Hallo,

hab mal eine Funktion rausgesucht:


```
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


----------



## Oberchefe (2 März 2011)

> 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!


----------

