HEX 2 ASCII ?
HEX 2 ASCII ?
Hi,
wie kann ich mit PB HEX zu ASCII wandeln?
wie kann ich mit PB HEX zu ASCII wandeln?
Ascii Zahl :
Ascii Zeichen:
oder habe ich jetzt was falsch verstanden ?
oder so?
oder ?
Code: Alles auswählen
Hex = $B0
Debug Str(Hex)
Code: Alles auswählen
Hex = $B0
Debug Chr(Hex)
oder so?
Code: Alles auswählen
Debug Val("$B0")
Code: Alles auswählen
Debug Chr(Val("$B0"))
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Also z.b. habe ich sowas:
Dies müßte ich nun in 2 byte stücken nach Ascii wandeln.
Code: Alles auswählen
HEX = $696D6C5666374861645137307A6C466C516E6F2F73736937614A616C734E4C765830636751345930544E543232345A6775396C6C43683957374361656D58726333464D79484C704672413D3D0D0A
Code: Alles auswählen
Procedure Hex2Dec(N.s)
For i = 1 To Len(N)
d = (d << 4) + Asc(UCase(Mid(N,i,1)))-48 - 7 * (Asc(UCase(Mid(N,i,1)))>>6)
Next
ProcedureReturn d
EndProcedure
string.s = "696D6C5666374861645137307A6C466C516E6F2F73736937614A616C734E4C765830636751345930544E543232345A6775396C6C43683957374361656D58726333464D79484C704672413D3D0D0A"
out.s = ""
For i = 1 To Len(string)/2 Step 2
out = out + Chr(Hex2Dec(Mid(string, i, 2)))
Next i
Debug out
Wie liegt der Hex-Wert denn vor? Als String oder ist das wirklich eine numerische Zahl? Wenn das eine Zahl ist, dann müsste die ja gigantisch sein. Die passt doch in keinen Quad.
Liegt der Hex-Wert als String vor, ginge das hiermit ganz gut:Der Reguläre Ausdruck liest immer 2 Character ein, egal ob Buchstabe oder Ziffer und ignoriert dabei das Dollarzeichen. Dazu muss der String natürlich eine gerade Anzahl an Character haben, damit ein einzelnes, übriggebliebener Character nicht ignoriert wird.
Sollte der auch noch berücksichtigt werden, nimmst du diesen Regulären Ausdruck:
Liegt der Hex-Wert als String vor, ginge das hiermit ganz gut:
Code: Alles auswählen
HEX.s = "$696D6C5666374861645137307A6C466C516E6F2F73736937614A616C734E4C765830636751345930544E543232345A6775396C6C43683957374361656D58726333464D79484C704672413D3D0D0A"
CreateRegularExpression(0, "[A-F\d]{2}")
Dim stueckchen.s(0)
anzahl=ExtractRegularExpression(0, HEX, stueckchen())
For n=1 To anzahl
Debug stueckchen(n-1)
Next
Sollte der auch noch berücksichtigt werden, nimmst du diesen Regulären Ausdruck:
Code: Alles auswählen
[A-F\d]{1,2}
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
@ Dante:
Du weißt, dass Hex2Dec() obsolet ist, seit Val() ebenfalls Hex- und Binär-Werte unterstützt? Val() ist perfomancemäßig noch nicht von einer Hex2Dec()-Variante geschlagen worden.
Das hier reicht also:
Du weißt, dass Hex2Dec() obsolet ist, seit Val() ebenfalls Hex- und Binär-Werte unterstützt? Val() ist perfomancemäßig noch nicht von einer Hex2Dec()-Variante geschlagen worden.
Das hier reicht also:
Code: Alles auswählen
string.s = "696D6C5666374861645137307A6C466C516E6F2F73736937614A616C734E4C765830636751345930544E543232345A6775396C6C43683957374361656D58726333464D79484C704672413D3D0D0A"
out.s = ""
For i = 1 To Len(string)/2 Step 2
out = out + Chr(Val("$"+Mid(string, i, 2)))
Next i
Debug out
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- HeX0R
- Beiträge: 3040
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Zumindest von einem Mod hätte ich erwartet, dass er weiß, dass Cross-Foren-Beiträge
(solange es keine Programmvorstellungen o.ä. sind) so ziemlich das letzte sind
(solange es keine Programmvorstellungen o.ä. sind) so ziemlich das letzte sind

{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
Das hab ich schon bei meinem letzten Post gesehen. Konnte aber leider meine Hilfe bis dato nicht mehr zurücknehmen.
Was solls, nächstes mal, weiß er ja, wo er fragen kann; d. h. wenn er überhaupt mal antwortet.
Was solls, nächstes mal, weiß er ja, wo er fragen kann; d. h. wenn er überhaupt mal antwortet.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End