Seite 1 von 1

BinaryToString

Verfasst: 04.02.2015 12:57
von lite
Hallo

Gibt es etwas vergleichbares zu BinaryToString was es in Au3 gibt auch in PB ?
Der Befehl wandelt StringA in StringB um.

StringA= 303742433041303133413444463939397C
StringB= 07BC0A013A4DF999|

Grüße
Lite

Re: BinaryToString

Verfasst: 04.02.2015 13:16
von ts-soft
lite hat geschrieben:Der Befehl wandelt StringA in StringB um.
Gute Beschreibung :lol:

Es gibt verschiedene Routinen um z.B. Hex in Dezimal oder umgekehrt zu wandeln.

Code: Alles auswählen

Debug Val("$F1")
Debug Hex(241)
Genau dasselbe wie in AutoIT wird es wohl eher nicht geben, hab die Funktion aber auch nicht so recht verstanden.

Gruß
Thomas

Re: BinaryToString

Verfasst: 04.02.2015 13:16
von NicTheQuick
Das hat aber nichts mit Binary zu tun, was da gemacht wird, sondern wandelt einen Hex-String in einen normalen String um.

Code: Alles auswählen

Procedure.s HexToString(hex.s)
	Protected length.i = Len(hex)
	Protected result.s = Space(length / 2)
	Protected *c.Character = @result
	Protected i.i
	For i = 1 To length Step 2
		*c\c = Val("$" + Mid(hex, i, 2))
		*c + SizeOf(Character)
	Next
	
	ProcedureReturn result
EndProcedure

Define StringA.s, StringB.s
StringA = "303742433041303133413444463939397C"
StringB = "07BC0A013A4DF999|"

Debug HexToString(StringA)

Re: BinaryToString

Verfasst: 04.02.2015 13:29
von Shardik

Code: Alles auswählen

StringA$ = "303742433041303133413444463939397C"

For i = 1 To Len(StringA$) Step 2
  StringB$ + Chr(Val("$" + Mid(StringA$, i, 2)))
Next i

Debug StringB$ ; = "07BC0A013A4DF999|"

Re: BinaryToString

Verfasst: 04.02.2015 15:32
von Nino

Code: Alles auswählen

StringA$ = "303742433041303133413444463939397C"

For i = 1 To Len(StringA$) Step 2
   v = Val("$" + Mid(StringA$, i, 2))
   If v = 0
      Debug "Achtung, hier ist ein Problem!"
      StringB$ + "?"
   Else
      StringB$ + Chr(v)
   EndIf
Next i

Debug StringB$ ; = "07BC0A013A4DF999|"
:)

Re: BinaryToString

Verfasst: 04.02.2015 16:49
von lite
Gleich soviele Lösungen, danke Jungs ihr habt mir sehr geholfen.

Manchmal versteh ich das ganze auch nicht.

Lite