Jump to content
mikkokh

Bug in FileOpen()? - Not!

Recommended Posts

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 by Melba23
Amended title!

Share this post


Link to post
Share on other sites

mikkokh,

Of course it keeps running - you get @error = 0, which means the file read was successful. and so your loop never ends.

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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 by mikkokh

Share this post


Link to post
Share on other sites

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

×
×
  • Create New...