Difference between revisions of "Loadstring"

From GiderosMobile
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
Line 9: Line 9:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
To load and run a given string, use the idiom:
+
Loadstring is used mainly by some scripts and by the majority of exploiting scripts.
 +
It runs the ''string'' given inside its brackets as code. To load and run a given string, use the idiom:
  
 
  ''assert(loadstring(s))()''
 
  ''assert(loadstring(s))()''
Line 21: Line 22:
 
=== Return values ===
 
=== Return values ===
 
'''Returns''' (function) compiled chunk as a function, otherwise returns nil<br/>
 
'''Returns''' (function) compiled chunk as a function, otherwise returns nil<br/>
 +
 +
=== Examples ===
 +
<syntaxhighlight lang="lua">
 +
local test = loadstring("print('Hello world!')")
 +
test() --> Hello world!
 +
-- same as above
 +
local test = loadstring("print('Hello world!')")()
 +
 +
-- a calculator
 +
local mathStuff = "5+5*3"
 +
local resultOfMath = loadstring("return "..mathStuff)()
 +
print(resultOfMath)
 +
 +
-- run string as code
 +
local Code = "print('I love loadstrings!')"
 +
loadstring(Code)()
 +
</syntaxhighlight>
  
 
{{(global)}}
 
{{(global)}}

Latest revision as of 15:34, 2 February 2025

Available since: Gideros 2011.6
Class: (global)

Description

Gets the chunk from the given string.

(function) = loadstring(string,chunkname)

Loadstring is used mainly by some scripts and by the majority of exploiting scripts. It runs the string given inside its brackets as code. To load and run a given string, use the idiom:

assert(loadstring(s))()

Chunkname is used as the chunk name for error messages and debug information. When absent, chunkname defaults to the given string.

Parameters

string: (string) string to load and compile
chunkname: (string) is used as the chunk name for error messages and debug information optional

Return values

Returns (function) compiled chunk as a function, otherwise returns nil

Examples

local test = loadstring("print('Hello world!')")
test() --> Hello world!
-- same as above
local test = loadstring("print('Hello world!')")()

-- a calculator
local mathStuff = "5+5*3"
local resultOfMath = loadstring("return "..mathStuff)()
print(resultOfMath)

-- run string as code
local Code = "print('I love loadstrings!')"
loadstring(Code)()