lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Xavier Wang <weasley.wx <at> gmail.com> writes:

> 
> Maybe you can do something like this:
> 
> function Test(s, a, ...)
>   -- do something to calculate the first field
>   local ret = --....
>   return ret, Test(s, ...)
> end
> 
> ---------- Forwarded message ----------
> From: PROXiCiDE <saiyuk7 <at> gmail.com>
> Date: 2011/12/9
> Subject: Returning a ellipses
> To: lua-l <at> lists.lua.org
> 
> I want to pass a function that supports
> ellipses "..." and return several of
> them into different variables..
> 
> example
> 
> function Test(...)
> end
> 
> a,b,c,d,e = Test(1,2,3,4,5)
> 
> Reason for this being, i want to be able to
> read a structured data into variables...
> 
> example reason
> 
> magic,version, headersize,directorycount,directorylocation =
> ReadDirectory(f,"s",16,32,32,32)
> 
> S = obviously a String
> 16 = Int16
> 32 = Int32
> 
> I would actually parse the the ellipses using the
> "var = select(i,...)" from a "for" statement
> 
> But what i cant understand is how do i seperate
> these into different variables
> that are returned
> 
> 


Well Test will be reading data from a binary file 
into these specific variables, the ellipses 
would hold the size of the data to be read from the file

example

function Test(f,...)
 for i=1,select("#",...) do
 local v = select(i,...)
 if (type(v) == "number") then
  store_var = FileReadSize(f,v) 
 end
 return -- Store Variables here
end

a,b,c = Test(f,32,16,32)