SlowCoder74 Posted March 16, 2012 Share Posted March 16, 2012 I've written a program that automatically converts a registry export file (.reg) into an AutoIT script for easy import into an existing AutoIT program. The exported binary values are listed like ... "hex:31,32,33,34,80,ff" for their string equivalent of "1234" + chr(128) + chr(255). I need to convert this binary data into string. I'm sure this is a long shot, but ... Does AutoIT have a way to internally convert a binary registry value into its string equivalent? I'm not asking for a bunch of code. I'm just wondering if AutoIT has it built in. Link to comment Share on other sites More sharing options...
DW1 Posted March 16, 2012 Share Posted March 16, 2012 $bData = '0x3132333480ff' MsgBox(0,'test',BinaryToString($bData)) AutoIt3 Online Help Link to comment Share on other sites More sharing options...
SlowCoder74 Posted March 16, 2012 Author Share Posted March 16, 2012 (edited) Ok, my next issue ... Due to the fact that the output from my program is saved to a file, and must be user-readable, and that not all binary/expanded binary values are user readable, I've set up my program to create a string of chrs like such: Binary: chr(49) & chr(50) & chr(51) & chr(52) & chr(128) & chr(255) MultiString: chr(49) & chr(0) & chr(50) & chr(0) & chr(51) & chr(0) & chr(52) & chr(0) & chr(172) & chr(32) & chr(255) & chr(0) & chr(0) & chr(0) & chr(0) & chr(0) ExpandedString: chr(49) & chr(0) & chr(50) & chr(0) & chr(51) & chr(0) & chr(52) & chr(0) & chr(172) & chr(32) & chr(255) & chr(0) & chr(0) & chr(0) I think my Binary conversion is correct. But the Multi and Expanded strings are still problematic, as they have 2 values. For instance, decimal 172 and 32 somehow are calculated to create chr(128). Can someone explain how this is calculated? Edit: for clarification ... The values I saved to Registry were "1234" +chr(128)+chr(255). The data saved in the chr(128) position for Expanded and Multi strings is "AC 20", which when pulled from the registry and converted to decimal are "172 and 32". So I need to understand how I can calculate these values to equal back to 128. Another edit ... Here is the function I wrote to convert the information pulled from the registry export file. $BinaryData is the value data exactly as it was extracted from the file. e.g.: 31,32,33,34,80,ff for Binary (which works fine) 31,00,32,00,33,00,34,00,ac,20,ff,00,00,00 for ExString (which has 2 values for each character). func ConvertBinaryToStringOfChrs($BinaryData) $BinaryValues = stringsplit($BinaryData,",") $BinaryData = "" if $BinaryValues[0] > 0 Then for $intA = 1 to $BinaryValues[0] $BinaryData = $BinaryData & "chr(" & dec($BinaryValues[$intA]) & ") & " Next $BinaryData = stringleft($BinaryData,stringlen($BinaryData)-3) ;remove trailing " & " EndIf return $BinaryData EndFunc I realize the function is not yet working for multi character conversion, but that's not the issue. I just need to understand how I can combine the 2 characters for ExString into one correct value. Edited March 16, 2012 by SlowCoder74 Link to comment Share on other sites More sharing options...
jchd Posted March 16, 2012 Share Posted March 16, 2012 69255, SlowCoder74, Those binary strings are Unicode UTF-8. Lookup BinaryToString parameters to convert them correctly in all cases. This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now