Difference between revisions of "File"

From OpenEUO
Jump to: navigation, search
m (Usage Example)
m
Line 8: Line 8:
 
  f is a structured file handling object (not the same as a lua file object)
 
  f is a structured file handling object (not the same as a lua file object)
  
== Usage Example ==
+
== Object Methods ==
 
+
local t = {[3.14] = 0.7071, [' una ']=1, test='Some "random" string.'}
+
local f = sl.file(getinstalldir()..'scripts/testwrite.dat', 'write')
+
f.tofile(t)
+
f.finalize()
+
f = nil
+
local g = sl.file(getinstalldir()..'scripts/testwrite.dat', 'read')
+
local v = g.readnext()
+
g = nil
+
print(sl.keyvalstr(v))
+
 
+
--> table keys:values = {
+
      una :1,
+
    test:Some "random" string.,
+
    3.14:0.7071,
+
    }
+
 
+
== Description ==
+
 
+
Creates a structured file handling object allowing one to read or write sequences of values (nils, nulls, booleans, numbers, strings, and tables) to a file.  ''Caution: Opening an existing file in 'write' mode overwrites any existing contents.''
+
 
+
== Methods ==
+
  
 
If opened in 'write' mode, the following methods are available:
 
If opened in 'write' mode, the following methods are available:
Line 53: Line 31:
  
 
[[file.skip]]
 
[[file.skip]]
 +
 +
== Usage Example ==
 +
 +
local t = {[3.14] = 0.7071, [' una ']=1, test='Some "random" string.'}
 +
local f = sl.file(getinstalldir()..'scripts/testwrite.dat', 'write')
 +
f.tofile(t)
 +
f.finalize()
 +
f = nil
 +
local g = sl.file(getinstalldir()..'scripts/testwrite.dat', 'read')
 +
local v = g.readnext()
 +
g = nil
 +
print(sl.keyvalstr(v))
 +
 +
--> table keys:values = {
 +
      una :1,
 +
    test:Some "random" string.,
 +
    3.14:0.7071,
 +
    }
 +
 +
== Description ==
 +
 +
Creates a structured file handling object allowing one to read or write sequences of values (nils, nulls, booleans, numbers, strings, and tables) to a file.  ''Caution: Opening an existing file in 'write' mode overwrites any existing contents.''
  
 
== Upon Error ==
 
== Upon Error ==

Revision as of 19:31, 24 November 2010

Calling Pattern

Call

local f = sl.file(a,b)

Args

a is a string, the filename
b is a string, the mode, either 'read' or 'write'

Results

f is a structured file handling object (not the same as a lua file object)

Object Methods

If opened in 'write' mode, the following methods are available:

file.finalize

file.reopen

file.tofile

If opened in 'read' mode, these methods are available:

file.copy

file.finalize

file.readall

file.readnext

file.reopen

file.skip

Usage Example

local t = {[3.14] = 0.7071, [' una ']=1, test='Some "random" string.'}
local f = sl.file(getinstalldir()..'scripts/testwrite.dat', 'write')
f.tofile(t)
f.finalize()
f = nil
local g = sl.file(getinstalldir()..'scripts/testwrite.dat', 'read')
local v = g.readnext()
g = nil
print(sl.keyvalstr(v))
--> table keys:values = {
     una :1,
    test:Some "random" string.,
    3.14:0.7071,
    }

Description

Creates a structured file handling object allowing one to read or write sequences of values (nils, nulls, booleans, numbers, strings, and tables) to a file. Caution: Opening an existing file in 'write' mode overwrites any existing contents.

Upon Error

File fails if it receives improper arguments, if an improper mode is specified, or if the file specified cannot be opened. Failures are handled according to the error redirection mode in effect.

See Also