Difference between revisions of "X File"

From GiderosMobile
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
<!-- GIDEROSOBJ:file -->
 
<!-- GIDEROSOBJ:file -->
'''<translate>Supported platforms</translate>:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]]<br/>
+
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
'''Available since:''' Gideros 2011.6<br/>
=== <translate>Description</translate> ===
+
 
<translate>file object is usually returned by [[Special:MyLanguage/io.open|io.open]] used to manipulate (read and write) files in lua</translate>
+
=== Description ===
=== <translate>Examples</translate> ===
+
A '''file''' object is usually returned by [[io.open]] used to manipulate (read and write) files in lua.
'''Copy a file'''<br/>
+
 
<source lang="lua">local function copy(src, dst)
+
'''NOTE:''' this page and other related '''file''' methods use an X before the name because wiki forbids creating pages starting with '''file'''
 +
 
 +
=== Examples ===
 +
<syntaxhighlight lang="lua">
 +
--function to copy file
 +
local function copy(src, dst)
 
local srcf = io.open(src, "rb")
 
local srcf = io.open(src, "rb")
 
local dstf = io.open(dst, "wb")
 
local dstf = io.open(dst, "wb")
local size = 2^13     -- good buffer size (8K)
+
 
 +
local size = 2^13 -- good buffer size (8K)
 
while true do
 
while true do
 
local block = srcf:read(size)
 
local block = srcf:read(size)
Line 18: Line 24:
 
srcf:close()
 
srcf:close()
 
dstf:close()
 
dstf:close()
end</source>
+
end
 +
 
 +
--function to check if file exists
 +
local function exists(file)
 +
local f = io.open(file, "rb")
 +
if f == nil then return false end
 +
f:close() return true
 +
end
 +
 
 +
--usage
 +
if not exists("|D|database.db") then
 +
copy("database.db", "|D|database.db")
 +
end
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Methods</translate> ===
+
=== Methods ===
[[Special:MyLanguage/file:close|file:close]] ''<translate>closes file</translate>''<br/><!-- GIDEROSMTD:file:close -->
+
[[x_file:close|file:close]] ''closes file''<br/><!--GIDEROSMTD:file:close() closes file-->
[[Special:MyLanguage/file:flush|file:flush]] ''<translate>saves any written data to file</translate>''<br/><!-- GIDEROSMTD:file:flush -->
+
[[x_file:flush|file:flush]] ''saves any written data to file''<br/><!--GIDEROSMTD:file:flush() saves any written data to file-->
[[Special:MyLanguage/file:lines|file:lines]] ''<translate>returns iterator function to return lines, nil ends</translate>''<br/><!-- GIDEROSMTD:file:lines -->
+
[[x_file:lines|file:lines]] ''returns an iterator function''<br/><!--GIDEROSMTD:file:lines() returns an iterator function-->
[[Special:MyLanguage/file:read|file:read]] ''<translate>reads file according to given formats, returns read values or nil</translate>''<br/><!-- GIDEROSMTD:file:read -->
+
[[x_file:read|file:read]] ''reads file according to given formats, returns read values or nil''<br/><!--GIDEROSMTD:file:read(format1,...) reads file according to given formats, returns read values or nil-->
[[Special:MyLanguage/file:seek|file:seek]] ''<translate>sets file pos, whence="set"|"cur"|"end", defaults "curr",0, returns file pos</translate>''<br/><!-- GIDEROSMTD:file:seek -->
+
[[x_file:seek|file:seek]] ''sets file seek pos''<br/><!--GIDEROSMTD:file:seek(whence,offset) sets file seek pos, whence="set"|"cur"|"end", defaults "curr",0, returns file pos-->
[[Special:MyLanguage/file:write|file:write]] ''<translate>writes strings or numbers to file</translate>''<br/><!-- GIDEROSMTD:file:write -->
+
[[x_file:write|file:write]] ''writes strings or numbers to file''<br/><!--GIDEROSMTD:file:write(value1,...) writes strings or numbers to file-->
 +
 
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Events</translate> ===
+
=== Events ===
=== <translate>Constants</translate> ===
+
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 08:54, 4 November 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2011.6

Description

A file object is usually returned by io.open used to manipulate (read and write) files in lua.

NOTE: this page and other related file methods use an X before the name because wiki forbids creating pages starting with file

Examples

--function to copy file
local function copy(src, dst)
	local srcf = io.open(src, "rb")
	local dstf = io.open(dst, "wb")

	local size = 2^13 -- good buffer size (8K)
	while true do
		local block = srcf:read(size)
		if not block then break end
		dstf:write(block)
	end
	srcf:close()
	dstf:close()
end

--function to check if file exists
local function exists(file)
	local f = io.open(file, "rb")
	if f == nil then return false end
	f:close() return true
end

--usage
if not exists("|D|database.db") then
	copy("database.db", "|D|database.db")
end

Methods

file:close closes file
file:flush saves any written data to file
file:lines returns an iterator function
file:read reads file according to given formats, returns read values or nil
file:seek sets file seek pos
file:write writes strings or numbers to file

Events

Constants