mirror of
https://github.com/weyne85/DCS-ExportScripts.git
synced 2025-10-29 16:58:18 +00:00
add function ExportScript.Tools.trim
add function ExportScript.Tools.ltrim add function ExportScript.Tools.rtrim add function ExportScript.Tools.subst
This commit is contained in:
parent
6aea21b3bd
commit
923cc06b00
@ -85,6 +85,43 @@ function ExportScript.Tools.StrSplit(str, delim, maxNb)
|
|||||||
return lResult
|
return lResult
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- remove trailing and leading whitespace from string.
|
||||||
|
function ExportScript.Tools.trim(s)
|
||||||
|
return (s:gsub("^%s*(.-)%s*$", "%1"))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- remove leading whitespace from string.
|
||||||
|
function ExportScript.Tools.ltrim(s)
|
||||||
|
return (s:gsub("^%s*", ""))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- remove trailing whitespace from string.
|
||||||
|
function ExportScript.Tools.rtrim(s)
|
||||||
|
local n = #s
|
||||||
|
while n > 0 and s:find("^%s", n) do n = n - 1 end
|
||||||
|
return s:sub(1, n)
|
||||||
|
end
|
||||||
|
-- The following more obvious implementation is generally not
|
||||||
|
-- as efficient, particularly for long strings since Lua pattern matching
|
||||||
|
-- starts at the left (though in special cases it is more efficient).
|
||||||
|
-- Related discussion on p.197 of book "Beginning Lua Programming".
|
||||||
|
--[[
|
||||||
|
function ExportScript.Tools.rtrim(s)
|
||||||
|
return (s:gsub("%s*$", ""))
|
||||||
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- substitute variables into string.
|
||||||
|
-- Example: subst("a=$(a),b=$(b)", {a=1, b=2}) --> "a=1,b=2".
|
||||||
|
function ExportScript.Tools.subst(s, t)
|
||||||
|
-- note: handle {a=false} substitution
|
||||||
|
s = s:gsub("%$%(([%w_]+)%)", function(name)
|
||||||
|
local val = t[name]
|
||||||
|
return val ~= nil and tostring(val)
|
||||||
|
end)
|
||||||
|
return s
|
||||||
|
end
|
||||||
|
|
||||||
function ExportScript.Tools.round(num, idp)
|
function ExportScript.Tools.round(num, idp)
|
||||||
local lMult = 10^(idp or 0)
|
local lMult = 10^(idp or 0)
|
||||||
return math.floor(num * lMult + 0.5) / lMult
|
return math.floor(num * lMult + 0.5) / lMult
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user