mikkokh Posted February 1, 2016 Share Posted February 1, 2016 (edited) Is there Bug in FileOpen() in AutoIt v3.3.14.2, or have I missed something? Bellow has simple test script... It keeps running after Input file has ended. No any changes in @error. $hInputFile = FileOpen("input.txt") If $hInputFile = -1 Then _ Exit While 1 $sInputData = FileRead($hInputFile) $lastError = @error Switch $lastError Case 1 consoleWrite("File read failed!" & @CRLF) Exit Case -1 ConsoleWrite("Done." & @CRLF) ExitLoop Case Else ; ConsoleWrite($sInputData) ConsoleWrite($lastError & ", ") EndSwitch WEnd Edited February 1, 2016 by Melba23 Amended title! - miXza-81 - Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 1, 2016 Moderators Share Posted February 1, 2016 mikkokh, Of course it keeps running - you get @error = 0, which means the file read was successful. and so your loop never ends. 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...
mikkokh Posted February 1, 2016 Author Share Posted February 1, 2016 So, how I would to know when file read is EOF? Help file says: @error: 1 = if file not opened in read mode or other error -1 = if end-of-file is reached - miXza-81 - Link to comment Share on other sites More sharing options...
Developers Jos Posted February 1, 2016 Developers Share Posted February 1, 2016 You want to use FileReadLine() Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 1, 2016 Moderators Share Posted February 1, 2016 mikkokh, If @error is 0 then the read was successful - end of story. I believe you get the -1 @error comes if you opened the file in binary and then asked for a certain number of bytes to be read - if this was not achievable because AutoIt hit an EOF marker (usually 0x00) before that value you get the error. M23 Jfish 1 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...
mikkokh Posted February 1, 2016 Author Share Posted February 1, 2016 (edited) I have used FileRead() to read ASCII data from Input file and send it all via COM port to VFD display. I think, if I use FileReadLine() for this job, @CR and @CRLR are handled same way, so display does not receive them like it should to do. I have noticed that when I use @extended to monitor when value is 0, I could stop script after whole file is EOF. I think I should use that way in this case. Thanks, and sorry that I bothered you both. Edited February 1, 2016 by mikkokh - miXza-81 - 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