1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
--[[
fLib by NDFJay
]]--
function exists(path)
local file = assert(io.open(path, "r"))
if file ~= nil then
file:close()
return true
end
return false
end
function getTable(path)
if exists(path) then
local file = io.open(path, "r")
local lines = {}
local i = 1
local line = file:read("*l")
while line ~= nil do
lines[i] = line
line = file:read("*l")
i = i + 1
end
file:close()
return lines
end
return {}
end
function getLine(path, n)
if exists(path) then
local lines = getTable(path)
return lines[n]
end
return ""
end
function getText(path)
if exists(path) then
local file = assert(io.open(path, "r"))
return file:read("*a")
end
return ""
end
function fappend(path, text)
local file = assert(io.open(path, "a"))
file:write(text.."\n")
file:close()
end
function fwrite(path, text)
local file = assert(io.open(path, "w"))
file:write(text)
file:close()
end
function fwriteAtStart(path, text)
local _text = getText(path)
fwrite(path, text.."\n".._text)
end
function fwriteFromTable(path, t)
local text = ""
for _, line in pairs(t) do
text = text..line.."\n"
end
fwrite(path, text)
end
function fappendFromTable(path, t)
local text = ""
for _, line in pairs(t) do
text = text..line.."\n"
end
fappend(path, text)
end
function fwriteAtStartFromTable(path, t)
local text = ""
for _, line in pairs(t) do
text = text..line.."\n"
end
fwriteAtStart(path, text)
end
function replaceLine(path, n, text)
local lines = getTable(path)
lines[n] = text
fwriteFromTable(path, lines)
end
function getName(path)
if exists(path) then
local lastSlashPos = 1
for i = 1, path:len() do
if path:sub(i, i) == "/" then
lastSlashPos = i
end
end
return path:sub(lastSlashPos + 1)
end
return ""
end
function getPath(path)
if exists(path) then
local lastSlashPos = 1
for i = 1, path:len() do
if path:sub(i, i) == "/" then
lastSlashPos = i
end
end
return path:sub(1, lastSlashPos)
end
return ""
end
function fremove(path)
os.remove(path)
end
|