Opened on Jun 21, 2017 at 9:09:58 PM
Closed on Jun 22, 2017 at 9:34:46 PM
Last modified on Jul 1, 2017 at 4:28:04 PM
#3557 closed Bug (No Bug)
Can't concatenate other strings to BinaryToString
| Reported by: | Relive | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.14.2 | Severity: | None |
| Keywords: | binarytostring, string, concatenate | Cc: |
Description
msgbox(0, '', BinaryToString(0x41) & chr(117)) ; Spells "Au" msgbox(0, '', Chr(116) & Chr(111) & BinaryToString(0x49) & chr(116)) ; Spells "toIt" msgbox(0, '', 'Auto' & BinaryToString(0x49) & chr(116)) ; Spells "AutoIt"
Any kind of string concatenation after BinaryToString() is "cut off".
Attachments (0)
Change History (3)
comment:1 by , on Jun 22, 2017 at 9:34:46 PM
| Resolution: | → No Bug |
|---|---|
| Status: | new → closed |
comment:2 by , on Jul 1, 2017 at 1:11:09 AM
This ticket may need to be reopened as I may have found a bug in BinaryToString(). Inserting 0x41 and 0x49 to BinaryMid() to extract 1 byte each, which is seemingly redundant, but actually fixed the problem.
msgbox(0, '', BinaryToString(BinaryMid(0x41, 1, 1)) & chr(117)) ; Spells "Au" msgbox(0, '', Chr(116) & Chr(111) & BinaryToString(BinaryMid(0x49, 1, 1)) & chr(116)) ; Spells "toIt" msgbox(0, '', 'Auto' & BinaryToString(BinaryMid(0x49, 1, 1)) & chr(116)) ; Spells "AutoIt"
The binary values written this way have hidden padded zeros and BinaryToString() has some parsing bug. In another view, when doing Binary(73), it returns 0x49000000. But I specifically wrote "0x49" in my argument, and thus this ticket was submitted.
comment:3 by , on Jul 1, 2017 at 4:28:04 PM
No, you submitted BinaryToString(0x49) and not BinaryToString("0x49") as explained in my previous answer.
Please post in the help forum (not here) which "parsing bug" you found in BinaryToString().

You are misusing the parameter to BinaryToString.
msgbox(0, '', BinaryToString("0x41") & chr(117)) ; Spells "Au" msgbox(0, '', Chr(116) & Chr(111) & BinaryToString("0x49") & chr(116)) ; Spells "toIt" msgbox(0, '', 'Auto' & BinaryToString("0x49") & chr(116)) ; Spells "AutoIt"Please, next time, post in the Help forum before creating a ticket.