String
string.packsize
Shared
Retrieves the size of a string resulting from `string.pack`
Syntax
local size = string.packsize(format)Parameters
| Type | Name | Description |
|---|---|---|
string | format | Format string - same format as used in string.pack |
Returns
| Type | Name | Description |
|---|---|---|
int | size | The size in bytes of the packed string that would result from string.pack |
Examples
local size = string.packsize("iii")
engine.print("info", size) --12local size = string.packsize("d")
engine.print("info", size) --8local size = string.packsize("c10")
engine.print("info", size) --10local size = string.packsize("ifd")
engine.print("info", size) --16local size = string.packsize("<I4")
engine.print("info", size) --4local size = string.packsize("b")
engine.print("info", size) --1local size = string.packsize("h")
engine.print("info", size) --2local size = string.packsize("l")
engine.print("info", size) --8local size = string.packsize("ixxi")
engine.print("info", size) --12engine.print("info", "i4:", string.packsize("i4")) --4
engine.print("info", "i8:", string.packsize("i8")) --8local fmt = "i4i4f"
local bufferSize = string.packsize(fmt)
engine.print("info", "Need", bufferSize, "bytes") --'Need 12 bytes'local size = string.packsize("c5c5c5")
engine.print("info", size) --15local fmt = "ifd"
local size = string.packsize(fmt)
local packed = string.pack(fmt, 1, 2.5, 3.14)
engine.print("info", #packed == size) --truelocal recordFormat = "c32i4i4"
local recordSize = string.packsize(recordFormat)
engine.print("info", "Each record:", recordSize, "bytes")local headerFormat = ">I2I2I4"
local headerSize = string.packsize(headerFormat)
engine.print("info", "Header size:", headerSize) --8