Przejdź do zawartości

AutoIt/Łańcuchy binarne

Z Wikibooks, biblioteki wolnych podręczników.

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))