mikkokh

Bug in FileOpen()? - Not!

6 posts in this topic

#1 ·  Posted (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 by Melba23
Amended title!

- miXza-81 -

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


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

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 -

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

1 person likes this

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

#6 ·  Posted (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 by mikkokh

- miXza-81 -

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