Difference between revisions of "Manual:Lua Functions"

From Mudlet
Jump to navigation Jump to search
Line 20: Line 20:
 
== Table Functions ==
 
== Table Functions ==
 
== String Functions ==
 
== String Functions ==
 +
=string.cut=
 +
string.cut(s, maxLen)
 +
 +
Cut string to specified maximum length.
 +
 +
Parameters:
 +
    s:
 +
    maxLen:
 +
 +
Usage:
 +
    Following call will return 'abc'.
 +
    string.cut("abcde", 3)
 +
You can easily pad string to certain length. Example bellow will print 'abcde ' e.g. pad/cut string to 10 characters.
 +
    local s = "abcde"
 +
    s = string.cut(s .. "          ", 10)  -- append 10 spaces
 +
    echo("'" .. s .. "'")
 +
       
 +
=string.enclose=
 +
string.enclose(s, maxlevel)
 +
 +
Enclose string by long brackets.
 +
 +
Parameters:
 +
    s:
 +
    maxlevel:
 +
 +
=string.ends=
 +
string.ends(String, Suffix)
 +
 +
Test if string is ending with specified suffix.
 +
 +
Parameters:
 +
    String:
 +
    Suffix:
 +
 +
See also:
 +
    [[Manual:Lua_Functions#String_Functions#string.starts|string.starts()]]
 +
 +
=string.findPattern=
 +
string.findPattern(text, pattern)
 +
Return first matching substring or nil.
 +
 +
Parameters
 +
    text:
 +
    pattern:
 +
 +
Usage:
 +
Following example will print: "I did find: Troll" string.
 +
    local match = string.findPattern("Troll is here!", "Troll")
 +
    if match then
 +
    echo("I did find: " .. match)
 +
    end
 +
This example will find substring regardless of case.
 +
    local match = string.findPattern("Troll is here!", string.genNocasePattern("troll"))
 +
    if match then
 +
    echo("I did find: " .. match)
 +
    end
 +
 +
Return value:
 +
    nil or first matching substring
 +
 +
See also:
 +
    [[Manual:Lua_Functions#String_Functions#string.genNocasePattern|string.genNocasePattern()]]
 +
 +
=string.genNocasePattern=
 +
string.genNocasePattern(s)
 +
 +
Generate case insensitive search pattern from string.
 +
 +
Parameters
 +
    s:
 +
 +
Usage:
 +
Following example will generate and print "123[aA][bB][cC]" string.
 +
  echo(string.genNocasePattern("123abc"))
 +
 +
Return value:
 +
  case insensitive pattern string
 +
 +
=string.starts=
 +
 +
string.starts(String, Prefix)
 +
Test if string is starting with specified prefix.
 +
Parameters:
 +
    String:
 +
    Prefix:
 +
See also:
 +
    string.ends
 +
 +
=string.trim=
 +
 +
string.trim (s)
 +
Trim string (remove all white spaces around string).
 +
 +
Parameters:
 +
    s:
 +
Usage:
 +
Example will print 'Troll is here!'.
 +
    local str = string.trim("  Troll is here!  ")
 +
    echo("'" .. str .. "'")
 +
       
 +
=string:split=
 +
 +
string:split(delimiter)
 +
Splits a string into a table by the given delimiter.
 +
 +
Parameters:
 +
    delimiter:
 +
Usage:
 +
Split string by ", " delimiter.
 +
    names = "Alice, Bob, Peter"
 +
    name_table = names:split(", ")
 +
    display(name_table)
 +
Previous code will print out:
 +
    table {
 +
    1: 'Alice'
 +
    2: 'Bob'
 +
    3: 'Peter'
 +
    }
 +
Return value:
 +
    array with split strings
 +
 +
=string:title=
 +
 +
string:title()
 +
Capitalize first character in a string.
 +
 +
Usage:
 +
Variable testname is now Anna.
 +
    testname = string.title("anna")
 +
Example will set test to "Bob".
 +
    test = "bob"
 +
    test = string.title(test)
 +
 
== Scripting Object Functions ==
 
== Scripting Object Functions ==
 
== Mapper Functions ==
 
== Mapper Functions ==
 
== Miscellaneous Functions ==
 
== Miscellaneous Functions ==

Revision as of 02:20, 20 May 2011

Function Categories

Label/Window creation/manipulation Functions: These functions are used to construct custom user GUIs. They deal mainly with miniconsole/label/gauge creation and manipulation.

  createMiniConsole()
  createLabel()
  createGauge()

Table Functions: These functions are used to manipulate tables. Through them you can add to tables, remove values, check if a value is present in the table, check the size of a table, and more.

String Functions

Scripting Object Functions

Mapper Functions

Miscellaneous Functions

Label/Window creation/manipulation Functions

Table Functions

String Functions

string.cut

string.cut(s, maxLen)

Cut string to specified maximum length.

Parameters:

    s:
    maxLen:

Usage:

    Following call will return 'abc'.
    string.cut("abcde", 3)

You can easily pad string to certain length. Example bellow will print 'abcde ' e.g. pad/cut string to 10 characters.

    local s = "abcde"
    s = string.cut(s .. "          ", 10)   -- append 10 spaces
    echo("'" .. s .. "'")
       

string.enclose

string.enclose(s, maxlevel)

Enclose string by long brackets.

Parameters:

    s:
    maxlevel:

string.ends

string.ends(String, Suffix)

Test if string is ending with specified suffix.

Parameters:

    String:
    Suffix:

See also:

    string.starts() 

string.findPattern

string.findPattern(text, pattern) Return first matching substring or nil.

Parameters

   text:
   pattern:

Usage: Following example will print: "I did find: Troll" string.

   local match = string.findPattern("Troll is here!", "Troll")
   if match then
   echo("I did find: " .. match)
   end

This example will find substring regardless of case.

   local match = string.findPattern("Troll is here!", string.genNocasePattern("troll"))
   if match then
   echo("I did find: " .. match)
   end

Return value:

   nil or first matching substring 

See also:

   string.genNocasePattern() 

string.genNocasePattern

string.genNocasePattern(s)

Generate case insensitive search pattern from string.

Parameters

   s:

Usage: Following example will generate and print "123[aA][bB][cC]" string.

  echo(string.genNocasePattern("123abc"))

Return value:

  case insensitive pattern string 

string.starts

string.starts(String, Prefix) Test if string is starting with specified prefix. Parameters:

    String:
    Prefix:

See also:

    string.ends 

string.trim

string.trim (s) Trim string (remove all white spaces around string).

Parameters:

    s:

Usage: Example will print 'Troll is here!'.

    local str = string.trim("  Troll is here!  ")
    echo("'" .. str .. "'")
        

string:split

string:split(delimiter) Splits a string into a table by the given delimiter.

Parameters:

   delimiter:

Usage: Split string by ", " delimiter.

   names = "Alice, Bob, Peter"
   name_table = names:split(", ")
   display(name_table)

Previous code will print out:

   table {
   1: 'Alice'
   2: 'Bob'
   3: 'Peter'
   }

Return value:

   array with split strings 

string:title

string:title() Capitalize first character in a string.

Usage: Variable testname is now Anna.

    testname = string.title("anna")

Example will set test to "Bob".

    test = "bob"
    test = string.title(test)

Scripting Object Functions

Mapper Functions

Miscellaneous Functions