Fro

file.lua

Fro
Feb 6th, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.57 KB | None | 0 0
  1.  
  2. File = {
  3.     new = function( self, filePath )
  4.         return setmetatable( { fPath = filePath, buffer = "" }, { __index = File } )
  5.     end,
  6.                
  7.     exist = function( self, filePath )
  8.         return fileExists( filePath or self.fPath )
  9.     end,
  10.    
  11.     rename = function( self, filePath, newFilePath )
  12.         return fileRename( filePath or self.fPath, newFilePath )
  13.     end,
  14.    
  15.     delete = function( self, filePath )
  16.         return fileDelete( filePath or self.fPath )
  17.     end,
  18.        
  19.     create = function( self, filePath )
  20.         if not self.file then
  21.             self.file = fileCreate( filePath or self.fPath )
  22.             return self.file ~= false
  23.         end
  24.         return false
  25.     end,
  26.    
  27.     open = function( self, filePath, readOnly )
  28.         if not self.file then
  29.             self.file = fileOpen( filePath or self.fPath, readOnly or false )
  30.             return self.file ~= false
  31.         end
  32.         return false
  33.     end,
  34.    
  35.     close = function( self )
  36.         if self.file then
  37.             local res = fileClose( self.file )
  38.             self.file   = nil
  39.             self.buffer = ""
  40.             return res
  41.         end
  42.         return false
  43.     end,
  44.    
  45.     pos = function( self, offset )
  46.         if self.file then
  47.             if offset then
  48.                 return fileSetPos( self.file, offset )
  49.             else
  50.                 return fileGetPos( self.file )
  51.             end
  52.         end
  53.         return false
  54.     end,
  55.    
  56.     size = function( self, filePath )
  57.         if filePath then
  58.             local hFile = fileOpen( filePath )
  59.             if hFile then
  60.                 local fSize = fileGetSize( hFile )
  61.                 fileClose( hFile )
  62.                 return fSize
  63.             end    
  64.         elseif self.file then
  65.             return fileGetPos( self.file )
  66.         end
  67.         return false
  68.     end,
  69.    
  70.     flush = function( self )
  71.         if self.file then
  72.             return fileFlush( self.file )
  73.         end
  74.         return false
  75.     end,
  76.    
  77.     write = function( self, string1, ... )
  78.         if self.file then
  79.             return fileWrite( self.file, string1, ... )
  80.         end
  81.         return false
  82.     end,
  83.    
  84.     read = function( self, count )
  85.         if self.file then
  86.             return fileRead( self.file, count )
  87.         end
  88.         return false
  89.     end,
  90.    
  91.     readLine = function( self, count )
  92.         if self.file then
  93.             while true do
  94.                 local endpos = string.find( self.buffer, "\n" )
  95.  
  96.                 if not endpos then
  97.                     if fileIsEOF( self.file ) then
  98.                         if self.buffer ~= "" then
  99.                             local line = self.buffer
  100.                             self.buffer = ""
  101.                             return line
  102.                         else
  103.                             return false
  104.                         end
  105.                     end
  106.                     self.buffer = self.buffer .. fileRead( self.file, count or 500 )
  107.                 else
  108.                     local line  = string.sub( self.buffer, 1, endpos - 1 )
  109.                     self.buffer = string.sub( self.buffer, endpos + 1 )
  110.                     return line
  111.                 end
  112.             end
  113.         end
  114.         return false
  115.     end,
  116.            
  117.     EOF = function( self )
  118.         if self.file then
  119.             return fileIsEOF( self.file )
  120.         end
  121.         return false
  122.     end
  123. }
Advertisement
Add Comment
Please, Sign In to add comment