49 lines
1.4 KiB
Lua
49 lines
1.4 KiB
Lua
function getWords(path)
|
|
local file = io.open(path,"r")
|
|
local text = file:read("*all")
|
|
file:close()
|
|
|
|
local t = {} -- this table will hold our words!!! words format is {word, translation, types, canon origin, meta origin, notes} last three are optional.
|
|
|
|
local p = 0 -- current position, nil if at end of file
|
|
while p do
|
|
p = p + 1
|
|
|
|
local new_word_data = ""
|
|
|
|
-- this isnt the whole word yet, but all the data around it separated with tabs, so lets get what we want.
|
|
-- careful if its uh end of file tho!
|
|
local np = string.find(text,"\n",p) -- np is the next word. this is so we can slice it
|
|
if np then
|
|
new_word_data = string.sub(text, p, np-1)
|
|
else
|
|
new_word_data = string.sub(text, p)
|
|
end
|
|
|
|
if new_word_data ~= "" then
|
|
local new_word = {} -- we'll hold it all here once spliced
|
|
local wp = 0 -- word data position!
|
|
while wp do -- nil if at end of string so.
|
|
wp = wp + 1 -- lets move past the tab we just found
|
|
|
|
local wnp = string.find(new_word_data, " ",wp)
|
|
local stuff = ""
|
|
-- we now splice the word every tab and add it to the uhhh
|
|
if wnp then
|
|
stuff = string.sub(new_word_data, wp, wnp-1) or stuff
|
|
else
|
|
stuff = string.sub(new_word_data,wp) or stuff
|
|
end
|
|
|
|
table.insert(new_word,stuff)
|
|
wp = wnp
|
|
end
|
|
-- now we add the word ot the word table
|
|
table.insert(t, new_word)
|
|
end
|
|
-- and move on the next
|
|
p = np
|
|
end
|
|
-- now we just. return the table.
|
|
return t
|
|
end |