Modify ↓
Opened 18 years ago
Closed 18 years ago
#149 closed Bug (No Bug)
FileRead does not return EOF but does return @Error =0, an undocumented state
| Reported by: | oblique | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.2.10.0 | Severity: | |
| Keywords: | FileRead error | Cc: |
Description
;FileRead(filehandle or "filename" [, count])
;Failure(s):
;EOF is not set when using 'filename' (default is to read entire file which I would expect to set EOF
;function returns @error = 0 which is an undocumented value
;########
;Code below will demonstrate the problem, and can be used to test that the problem has been fixed.
;any text file can be used to demonstrate the problem
;########
;prove FileOpen is good, and EOF is found
$file = FileOpen("anytext.txt", 0)
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
While 1
$chars = FileRead($file, 10000)
If @error = -1 Then ExitLoop
MsgBox(0, "Char read and EOF set:", $chars)
Wend
FileClose($file)
;show error
$fileR = FileRead("anytext.txt")
MsgBox(0,"Entire file is read", "Chars:"&@CRLF&$fileR)
Select
Case @error = -1
MsgBox(0,"","pass; SPECIAL: @Error="&@error&" -1 = EOF is reached")
Case @error = 1
MsgBox(0,"","FAIL; SPECIAL: @Error="&@error&" 1 = file not opened in read mode or other error, NOT POSSIBLE IN THIS TEST")
Case @error = 2
MsgBox(0,"", "FAIL; SPECIAL: @Error="&@error&" 2 = count not defined for file open in raw read mode, NOT POSSIBLE IN THIS TEST")
Case Else
MsgBox(0,"","FAIL; SPECIAL: @Error="&@error&" UNEXPECTED - @Error is set to 0 not -1 when FileRead is executed (default is entire file)")
EndSelect
Exit}}}
Attachments (0)
Change History (2)
comment:1 Changed 18 years ago by Valik
comment:2 Changed 18 years ago by Jpm
- Resolution set to No Bug
- Status changed from new to closed
In fact your fileread is reading the entire file so as the reading is successful @error is set to 0. NOBUG
if you were using the count EOF can be signalled if you try to read after the last data.
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Note: See
TracTickets for help on using
tickets.

Your test is never going to return anything other than 0 because you destroy @error.
Anyway, ignoring that. Do you really need the function to set @error to -1 when you don't use a file handle? It seems kind of pointless to me.