[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Returning a ellipses
- From: PROXiCiDE <saiyuk7@...>
- Date: Fri, 9 Dec 2011 03:37:08 +0000 (UTC)
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)