AutoIt/Łańcuchy binarne

Co to jest łańcuch binarny? edytuj

Łańcuch binarny to nazwa typu danych będących ciągiem wartości kolejnych bajtów. Jest on bardzo podobny do stringu, jednak w odróżnieniu od niego poszczególne elementy nie mają reprezentacji graficznej w postaci znaków.

Maksymalna wielkość łańcucha binarnego to 2147483647 bajtów.

Tworzenie łańcuchów binarnych edytuj

Łańcuch binarny można utworzyć przez konwersję ze stringu, lub wyrażenia liczbowego.

Można także wczytać z dysku dowolny plik binarny, np.:

$bVer = FileRead("Test.bin")

Dokładny opis w rozdziale: AutoIt/Czytanie i pisanie do plików.

Funkcje operujące na łańcuchach binarnych edytuj

Binary edytuj

Binary ( wyrażenie )

Funkcja zamienia dowolne wyrażenie na łańcuch binarny.


BinaryLen edytuj

BinaryLen ( binary )

Funkcja zwraca długość łańcucha binarnego (czyli ilość bajtów).


BinaryMid edytuj

BinaryMid ( binary, start [, count] )

binary - łańcuch przetwarzany

start - od którego elementu ma być tworzony łańcuch wynikowy

Opcjonalnie:

count - ilość bajtów łańcucha wynikowego (domyślnie do końca stringu)

Funkcja zwraca łańcuch binarny złożony z count bajtów łańcucha argumentu poczynając od pozycji start.

Jeżeli nie użyjemy argumentu count to łańcuch będzie zwrócony do końca.

Jeżeli count jest większe od długości pozostałej części łańcucha argumentu, to będzie on zwrócony do końca.

Jeżeli count = 0 to zwrócony będzie łańcuch pusty, count < 0 jest ignorowane.


BinaryToString edytuj

BinaryToString ( wyrażenie [, flaga] )

Funkcja zamienia łańcuch binarny na string. Jeżeli wystąpi błąd to funkcja zwraca pusty łańcuch, a makro @error przyjmuje wartość:

1 - gdy łańcuch wejściowy miał zerową długość

2 - łańcuch wejściowy miał nieparzystą liczbę bajtów, a miał być konwertowany jako UTF16 (UTF16 musi zawierać parzystą liczbę bajtów)

wyrażenie - wyrażenie zamieniane na string

flaga - (opcjonalnie) sposób kodowania znaków

1 - (domyślnie) ANSI

2 - UTF16 Little Endian

3 - UTF16 Big Endian

4 - UTF8

StringToBinary edytuj

StringToBinary ( wyrażenie [, flaga] )

Funkcja zamienia string na łańcuch binarny.

wyrażenie - wyrażenie zamieniane na string

flaga - (opcjonalnie) sposób kodowania znaków

1 - (domyślnie) ANSI

2 - UTF16 Little Endian

3 - UTF16 Big Endian

4 - UTF8

Łączenie łańcuchów binarnych edytuj

Łańcuch binarne możemy łączyć podobnie jak stringi za pomocą operatora &.


Przykład działania na łańcuchach binarnych edytuj

$bV1 = StringToBinary("A")
$bV2 = StringToBinary("B")
$bV3 = StringToBinary("C")

$bV = $bV1 & $bV2 & $bV3
MsgBox(0, "BinaryToString:", BinaryToString($bV))

$bV = Binary(0x414243)
MsgBox(0, "BinaryToString:", BinaryToString($bV))
MsgBox(0, "BinaryToString:", BinaryToString(BinaryMid($bV, 2, 1)))
MsgBox(0, "BinaryLen:", BinaryLen($bV))