Jump to content

[SOLVED] AutoIt Binary funcs into C#

Recommended Posts

Hello. You can use power of C# byte[] functions.



static void Main(string[] args)

            var str = "Hello World";
            var bytes = Encoding.ASCII.GetBytes(str);

            string hexstr = BitConverter.ToString(bytes);
            Console.WriteLine(hexstr.Replace("-","") + " = " + Encoding.ASCII.GetString(bytes));
            Console.WriteLine("BinaryLen: " + (bytes.Length));

           //BinaryMid($dBinary, 1, 5)
            byte[] bytesMid = new byte[5];
            Array.Copy(bytes,0, bytesMid, 0, bytesMid.Length);
            hexstr = BitConverter.ToString(bytesMid);
            Console.WriteLine("BinaryMid(bytes, 1, 5)");
            Console.WriteLine(hexstr.Replace("-", "") +" = " + Encoding.ASCII.GetString(bytesMid));
            Console.WriteLine("BinaryLen: " + (bytesMid.Length));

            //BinaryMid($dBinary, 7, 5)
            bytesMid = new byte[5];
            Array.Copy(bytes, 6, bytesMid, 0, bytesMid.Length);
            hexstr = BitConverter.ToString(bytesMid);
            Console.WriteLine("BinaryMid(bytes, 7, 5)");
            Console.WriteLine(hexstr.Replace("-", "") + " = " + Encoding.ASCII.GetString(bytesMid));
            Console.WriteLine("BinaryLen: " + (bytesMid.Length));




Link to post
Share on other sites
  • Colduction changed the title to [SOLVED] AutoIt Binary funcs into C#

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Pickpocketz88
      Func _Binary($Int) ;Uncomment To Only Accept Integers #cs If IsInt($Int) = 0 Then Return 0 EndIf #ce If $Int < 0 Then ;Negative Numbers Will Break The Function Return 0000 EndIf Local $Integer = $Int Dim $Bin[1] = [Mod($Integer, 2)] Local $Counter = 1 Do $Integer = Floor($Integer / 2) _ArrayAdd($Bin, Mod($Integer, 2)) Until $Integer = 0 _ArrayReverse($Bin) ;Reverses The Array Because As Is, The Product Is Backwards ;A Loop To Remove Any Preceding 0's or Add 0's To Keep At Least Four Digits Select Case $Int <= 1 $Integer = "00" & _ArrayToString($Bin, "") Case $Int = 2 Or $Int = 3 $Integer = "0" & _ArrayToString($Bin, "") Case $Int >= 8 $Integer = StringTrimLeft(_ArrayToString($Bin, ""), 1) Case Else $Integer = _ArrayToString($Bin, "") EndSelect ;You Can Comment It Out Without Anything Else Having A Problem Return $Integer EndFunc I made this because I was writing something that I could use to play with Bitwise Operations and using Binary() by itself wasn't helping.
      It's very basic and will only take positive integers because that's all I needed but I'm sure with a little tweaking you could make it fit with negative and float types.
      It returns a string essentially but doesn't pose a problem when just changing numbers into binary digits.
      Example: If you were to do _Binary(5) you would get "0101" and _Binary(8) would return "1000"
      Between this last sentence and here I've changed this about a half dozen times to refine it a bit because without it checking if your number is < 0 it would break if a negative number was inserted and it wouldn't even have a problem if you put in Float Values, Regular or Special Characters but that negative value will do the trick lol.
      Anyway, I hope someone finds some use of this and thank you for reading!
    • By TheDcoder
      See this thread for info:
    • By Stew
      (Edited from original.  Please note that I AM NOT AN AUTOIT EXPERT.  I write code using Autoit frequently but I am no expert, especially when it comes to I/O.  So any remarks that start with "Why did you..." can be answered by referring to the first sentence.  This project was done in Autoit because of an interface I built to display the data.)
      Attached is a program and ascii input file I wrote to read stock price data, convert it to binary and then read it back into the program in binary.  The goal was to show increased performance for reading the files in binary and provide a demo on how to read/write binary for int32, int64, double and strings for anyone who might find it helpful.  The results on my PC show the following:
      Time to read ascii file only: 456.981951167202
      Ascii read & process time: 6061.83075631701
      Binary write file time: 14787.9184635239
      Time just to read binary file: 42.418867292311
      Binary read and process time: 4515.16129830537
      A couple things to note:
      1) The 32 MB ascii file took 10x longer to read than the 15 MB binary file.  Not entirely sure why.  Both were read into a buffer.
      2) The Binary write takes a long time but I made no effort to optimize this because the plan was to write this file one time only so I don't mind if it takes longer to write this file.  I care much more about how long it takes to read the file because I will be reading it many times.
      3) There was a modest gain in converting the ascii file to binary in terms of file size and reading speed.
      So big picture... not sure it's worth the effort to convert the files to binary even though most of the data is numerical data in the binary file.  That was actually surprising as I expected there would be more of a difference.  Any ideas on how to get the binary data to read at a faster rate would be great.
    • By FMS
      I'm trying to read a binary file to an array but couln't get it to work.
      Also I coul not find any help in the forum around this subject whish was helpfull.
      Is there any way it could be done?
      I tried a lot of ways but maybe somebody know's the right way?
      #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 #include <File.au3> #include <Array.au3> #include <AutoItConstants.au3> Local $in=FileOpen("TEST_labels.idx1-ubyte",16) ; 16+0=Read binary Local $data = FileRead($in) Local $FileArray = BinaryToString($data,4) ;~ $FileArray = StringSplit($BinarydData, @CRLF, 1+2) ;~ Local $FileArray = StringRegExp($BinarydData, "[^\r\n]+", 3) FileClose($in) _ArrayDisplay($FileArray,"$FileArray","",32) MsgBox($MB_SYSTEMMODAL, "", "$FileArray = " & $FileArray )  
    • By Dragonfighter
      I'm searching a way to do xor and shift and if possible also other operations. Thanks in advance for the replies.
  • Create New...