From 570d65cd98ac7bbae9958342671e341cff73a8a0 Mon Sep 17 00:00:00 2001 From: Marcel Admiraal Date: Mon, 24 May 2021 18:56:34 +0100 Subject: [PATCH] Clarify that eof_reached() cannot be used to check if more data is available --- doc/classes/File.xml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/classes/File.xml b/doc/classes/File.xml index 22067305230..b6df0a7d1e7 100644 --- a/doc/classes/File.xml +++ b/doc/classes/File.xml @@ -60,8 +60,20 @@ - Returns [code]true[/code] if the file cursor has read past the end of the file. - [b]Note:[/b] This function will still return [code]false[/code] while at the end of the file and only activates when reading past it. This can be confusing but it conforms to how low-level file access works in all operating systems. There is always [method get_length] and [method get_position] to implement a custom logic. + Returns [code]true[/code] if the file cursor has already read past the end of the file. + [b]Note:[/b] [code]eof_reached() == false[/code] cannot be used to check whether there is more data available. To loop while there is more data available, use: + [codeblocks] + [gdscript] + while file.get_position() < file.get_length(): + # Read data + [/gdscript] + [csharp] + while (file.GetPosition() < file.GetLength()) + { + // Read data + } + [/csharp] + [/codeblocks]