Je voudrais diviser des chaînes d'octets, par exemple "AAFF10DC", avec des espaces, de sorte qu'elle devienne "AA FF 10 DC".Comment diviser des chaînes d'octets avec un espace dans AutoIt?
Comment faire cela dans AutoIt (v3)?
Je voudrais diviser des chaînes d'octets, par exemple "AAFF10DC", avec des espaces, de sorte qu'elle devienne "AA FF 10 DC".Comment diviser des chaînes d'octets avec un espace dans AutoIt?
Comment faire cela dans AutoIt (v3)?
C'est sorta laid, mais cela fonctionne:
$string = "AAFF10DC"
$strArray = StringSplit($string, "") ; No delimiter will separate all chars.
$strResult = ""
If IsEvenNumber($strArray[0]) Then
For $i = 1 to $strArray[0] Step 2
$strResult = $strResult & $strArray[$i] & $strArray[$i+1] & " "
Next
MsgBox(0, "Result", $strResult)
Else
MsgBox(0, "Result", "String does not contain an even number of characters.")
EndIf
Func IsEvenNumber($num)
Return Mod($num, 2) = 0
EndFunc
Global $s_string = "AAFF10DC"
MsgBox(64, "Info", _str_bytesep($s_string))
Func _str_bytesep($s_str, $s_delim = " ")
If Not (Mod(StringLen($s_str), 2) = 0) Then Return SetError(1, 0, "")
Return StringRegExpReplace($s_str, "(..(?!\z))", "$1" & $s_delim & "")
EndFunc
est juste une autre façon de le faire. Pour des quantités énormes de données d'octets, je ne suggérerais pas d'utiliser cette méthode.