Format.lua: Difference between revisions

From Alpine Linux
No edit summary
No edit summary
Line 35: Line 35:
  f:close()
  f:close()
  -- t is a table with only pertinent lines
  -- t is a table with only pertinent lines
== search_replace ==
'''INPUT:'''<BR>
This library function required the following inputs/parameters.
* Path to file
** Example: /root/mynotes
* Search
** What to find
*Replace
**What to replace the found items with
'''OUTPUT:'''<BR>
This library function deliverers the following output/parameters.
* Table
'''CODING EXAMPLE:'''
-- Include/Call for this library
require("format")
f = io.open("/etc/shorewall/interfaces")
c = f:read("*a")
t = fs.search_replace(c, "eth0", "eth1")
f:close()
--t will be a table that contains /etc/shorewall/interfaces with eth0 replaced as eth1
== ipairs_string ==
'''INPUT:'''<BR>
This library function required the following inputs/parameters.
* Table
'''OUTPUT:'''<BR>
This library function deliverers the following output/parameters.
* String
'''CODING EXAMPLE:'''
-- Include/Call for this library
require("format")
t = { "eth0", "eth1", "lo"}
format.ipairs_string(t)
--will give you a table that can be writing one per line for a file.


== table_to_string ==
== table_to_string ==

Revision as of 18:58, 28 November 2007

dostounix

INPUT:
This library function required the following inputs/parameters.

  • file contents
    • Example: c = file:read("*a")
  • String with EOL

OUTPUT:
This library function deliverers the following output/parameters.

  • Output is returned minus the \r characters

CODING EXAMPLE:

-- Include/Call for this library
require("format")
-- file test.txt is from dos/windows
require "format"
f = io.open("test.txt")
c = f:read("*a")
file = format.dostounix(c)
f:close()
--file now contains the contents of test.txt without the \r char

remove_blanks_comments

INPUT:
This library function required the following inputs/parameters.

  • Path
    • Example: /root/mynotes

OUTPUT:
This library function deliverers the following output/parameters.

  • Returns a table to iterate over minus the blank and commented lines

CODING EXAMPLE:

-- Include/Call for this library
require("format")
f = io.open("/etc/shorewall/rules")
c = f:read("*a")
t = format.remove_blanks_comments(c)
f:close()
-- t is a table with only pertinent lines

table_to_string

INPUT:
This library required the following inputs/parameters.

  • Delimiter
    • Could be one or more chars.
  • Array
    • Data which is to be joined into a string.

OUTPUT:
This library deliverers the following output/parameters.

  • String
    • Could be something like "Word, Word, Word, Word"

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
-- Create a array of data (Not sure if the next row is correct)
arraytojoin = { "Bird", "Fish", "Cow", "Hammer" }
-- Process the data (note the delimiter)
liboutput = format.table_to_string(";", arraytojoin)
Bird;Fish;Cow;Hammer

string_to_table

INPUT:
This library required the following inputs/parameters.

  • Delimiter
    • Could be one or more chars.
  • String or line from a file: bobo~foo~bar~baz~1
    • Data is to be split into a table

OUTPUT:
This library deliverers the following output/parameters.

  • Table
    • { 1 = "bobo", 2 = "foo", 3 = "bar", 4 = "baz", 5 = 1}

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
-- Grab the line from a file or input it into the funtcion
line = "bobo~foo~bar~baz~1"
-- Process the data (note the delimiter)
t = format.string_to_table("~", line)
't' would contain: 
{ 1 = "bobo", 2 = "foo", 3 = "bar", 4 = "baz", 5 = 1}
for a,b in ipairs(t) do print(a,b) end
1 bobo
2 foo
3 bar
4 baz
5 1