Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0195: Hex-Viewer

 von 

Beschreibung 

Ein kleiner Hex-Viewer, der Strings sowohl in 8-Bit als auch in 16-Bit darstellen kann, zudem werden im Text gefundene ASCII Zeichen als Text dargestellt.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

IsCharAlphaNumericA (IsCharAlphaNumeric)

Download:

Download des Beispielprojektes [2,08 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Optionsfeld-Steuerelement "Option2"
' Steuerelement: Optionsfeld-Steuerelement "Option1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Textfeld "Text1"

Option Explicit

Private Declare Function IsCharAlphaNumeric Lib "user32" _
        Alias "IsCharAlphaNumericA" (ByVal cChar As Byte _
        ) As Long

Dim Res As Byte

Private Sub Form_Load()
  Option1.Caption = "8 Byte"
  Option1.Value = True
  Option2.Caption = "16 Byte"
  Command1.Caption = "In Hex Umwandeln"
  Res = 8
End Sub

Private Sub Option1_Click()
  Res = 8
End Sub

Private Sub Option2_Click()
  Res = 16
End Sub

Private Sub Command1_Click()
  Dim aa$, bb$, cc$, x%, Erg$, aVal As Byte
  
    aa = "Dies ist ein Teststring der in Hex umgewandelt " & _
         "wird die Zeichen 1234567890 werden ebenfalls du" & _
         "rch die IsCharAlphaNumeric rechts erkannt"
         
    x = Res - Len(aa) Mod Res
    If x <> Res Then aa = aa & Space(x)
    
    For x = 1 To Len(aa)
      bb = Mid$(aa, x, 1)
      
      If bb = Chr$(0) Then
        aVal = 0
      Else
        aVal = (Asc(bb))
      End If
      
      If IsCharAlphaNumeric(aVal) Then
        cc = cc & bb
      Else
        cc = cc & "."
      End If
      
      Erg = Erg & Hex(aVal)
      If x Mod Res <> 0 Then
        Erg = Erg & " "
      Else
        Erg = Erg & "    " & cc & vbCrLf
        cc = ""
      End If
      
    Next x
    If cc <> "" Then Erg = Erg & "    " & cc
    Text1.Text = Erg
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von am 13.01.2006 um 11:05

Von Jens am 24.09.2005 um 10:52
@Stemprede und alle anderen, die sich fragen, wie das umwandeln von Hex->Dec funktioniert... ganz einfach mit der Format-Funktion

Dim sHexWert As StringsHexWert = "FF"Debug.Print Format("&H" & sHexWert, "0")

Kommentar von zerocool am 13.01.2006 um 11:05

'Dieser Source stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm ---------
' Steuerelement: Optionsfeld-Steuerelement "Option2"
' Steuerelement: Optionsfeld-Steuerelement "Option1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Textfeld "Text1"

Option Explicit

Private Declare Function IsCharAlphaNumeric Lib "user32" _
Alias "IsCharAlphaNumericA" (ByVal cChar As Byte _
) As Long

Dim Res As Byte

Private Sub Form_Load()
Option1.Caption = "8 Byte"
Option1.Value = True
Option2.Caption = "16 Byte"
Command1.Caption = "In Hex Umwandeln"
Res = 8
End Sub

Private Sub Option1_Click()
Res = 8
End Sub

Private Sub Option2_Click()
Res = 16
End Sub

Private Sub Command1_Click()
Dim aa$, bb$, cc$, x%, Erg$, aVal As Byte

aa = "Dies ist ein Teststring der in Hex umgewandelt " & _
"wird die Zeichen 1234567890 werden ebenfalls du" & _
"rch die IsCharAlphaNumeric rechts erkannt"

x = Res - Len(aa) Mod Res
If x <> Res Then aa = aa & Space(x)

For x = 1 To Len(aa)
bb = Mid$(aa, x, 1)

If bb = Chr$(0) Then
aVal = 0
Else
aVal = (Asc(bb))
End If

If IsCharAlphaNumeric(aVal) Then
cc = cc & bb
Else
cc = cc & "."
End If

Erg = Erg & Hex(aVal)
If x Mod Res <> 0 Then
Erg = Erg & " "
Else
Erg = Erg & " " & cc & vbCrLf
cc = ""
End If

Next x
If cc <> "" Then Erg = Erg & " " & cc
Text1.Text = Erg
End Sub
'---------- Ende Formular "Form1" alias Form1.frm ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Kommentar von Jens am 24.09.2005 um 10:52

@Stemprede und alle anderen, die sich fragen, wie das umwandeln von Hex->Dec funktioniert... ganz einfach mit der Format-Funktion

Dim sHexWert As String

sHexWert = "FF"
Debug.Print Format("&H" & sHexWert, "0")


Kommentar von Andre Geese am 20.12.2004 um 22:59

Wie kann ich denn Text in ein Hexwert umwandeln? also ich habe zum beispiel eine datei wo ich als Hexwert 00 01 04 rausbekomme nun möchte ich den Text (der aus 00 01 04 entsteht) ergänzen und als Hexwert zurückschreiben. aber ich habe da irgendwie keine Ideen.

Kommentar von arne am 23.09.2003 um 11:14

Gibt es eine Möglichkeit eine Bitmap als HEX-Code ausgeben zulassen?
Wenn ich aa durch ein Picture ersetze erhalte ich nur eine unvollständige Ausgabe (Vergleich => UltraEdit32).

Kommentar von Stampede am 01.08.2002 um 10:52

Sers Leute,
Gibt es eine möglichhkeit das ganze dann auch wieder andersrum zu rechnen? Also ich habe einen HEX Code und möchte dann wieder den normalen String haben????
wenn möglich, schriebt mir die antwort bitte an hackattack@uboot.com
mfg
thx schon mal...
Stampede