pseakins Posted September 15, 2015 Share Posted September 15, 2015 (edited) On 8/19/2015 at 8:46 AM, junkew said: You are messing with binary and text (assuming no CRLF lines are in the binary) I had a similar problem a few years ago with a tool I was writing. Thing is, there really is no distinction between "binary" and "text. A byte is just a byte - it can be any value between 0x00 and 0xFF (0 to 255). The content of a file should make no difference to a fileread function. I should be able to open any file and receive the entire content unchanged in a string buffer which I can then examine and manipulate, character by character. However, AutoIT will not allow me to do this. Instead I have to open it in "binary" mode and then perform some pretty complex hoop-jumping in order to achieve my requirements. To make matters worse there is an incredible overhead in "binary" mode, so iterating through the buffer is tediously slow. I get the impression that a FileRead() in "binary" mode results in a character by character translation of the the actual bytes in the buffer from their raw character value to an Ascii representation of the hex values of the byte. So, a file with a single byte, say the letter "A" , is converted to "41" and stored in memory in hex as 0x41 including the actual "0x" characters - so the single "A" occupies 4 bytes in memory "30783431" - hence the incredible overhead. I just don't get why this is done. When I started coding, referring to Ralf Brown's interrupt list a file is opened with INT 21 0F (open file with file handle) and then read with INT 21 14 (sequential read from FCB). Surely there must be a way to do this is AutoIt - does anyone know how how to make a system call or something to give me the raw file content? Any help would be appreciated. Text added: I have an answer to the above question which I will post below when time permits. Edited February 25, 2016 by pseakins The internal representation was shown wrongly. The single char "A" occupies 4 bytes in memory, not 16 as I had incorrectly stated. Phil Seakins Link to comment Share on other sites More sharing options...
jchd Posted September 15, 2015 Share Posted September 15, 2015 Read file in binary mode if the file is binary, else text mode, period. Your rant is pure uneducated BS since you clearly don't understand what you're talking about. Overhead my ass: this is over your head. mikell 1 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...
pseakins Posted September 15, 2015 Author Share Posted September 15, 2015 Read file in binary mode if the file is binary, else text mode, period. Your rant is pure uneducated BS since you clearly don't understand what you're talking about. Overhead my ass: this is over your head.I've been coding since I built my first Motorola 6800 based uProcessor board back in ~1976. I know exactly what I am talking about. Phil Seakins Link to comment Share on other sites More sharing options...
jchd Posted September 15, 2015 Share Posted September 15, 2015 If you know that much, why on Earth are you asserting such nonsense without any truth and ground? Writing that there is no such thing as binary vs. text read doesn't display the experience you expect us to believe you actually have. Your invention about binary representation is a fairy tale.Again what you call "raw file content" is just a binary read whatever language you decide to use and AutoIt is no exception. Being a simple interpretor, AutoIt may not compete with faster languages but it doesn't incur any "binary overhead" and never did what you pretend it does.If you have issues achieving what you want, post minimal failing reproducer and you'll quickly get polite help. But please don't publickly assert things like what you wrote above, which only make you look like you have absolutely no clue. 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...
Moderators Melba23 Posted September 15, 2015 Moderators Share Posted September 15, 2015 Hi,I have split the above from the original thread as it was rapidly moving into "hijacking" mode. Please do continue the discussion here - and I agree that a reproducer would seem to be the best way forward.M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
jchd Posted September 15, 2015 Share Posted September 15, 2015 Thanks M23! 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...
pseakins Posted October 1, 2015 Author Share Posted October 1, 2015 Hi,I have split the above from the original thread as it was rapidly moving into "hijacking" mode. Please do continue the discussion here - and I agree that a reproducer would seem to be the best way forward.M23I really don't care for cyber bullying, there's no need for personal attacks in an intelligent forum. I have actual work to do and will post a reproducer as soon as I find time to complete it. A quick test has already shown (to me) binary mode taking over 9 seconds to analyse byte by byte a 2MB file which can be analysed byte by byte in a fraction of a second in non binary mode. (Fraction being less than one second shown by _NowCalc()). _FileReadToArray() vs FileRead() opened in mode 16. Phil Seakins Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 1, 2015 Moderators Share Posted October 1, 2015 pseakins,I see no "cyber-bullying" here - just a heated discussion. When you do find time to post a reproducer let us know - I for one would be really interested in seeing it.M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area 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