Difference between revisions of "X File"

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

Revision as of 05:25, 7 December 2020

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 iterator function to return lines, nil ends
file:read reads file according to given formats, returns read values or nil
file:seek sets file pos, whence="set"|"cur"|"end", defaults "curr",0, returns file pos
file:write writes strings or numbers to file

Events

Constants