2010-06-03 6 views

Répondre

1

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 
1
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.

Questions connexes