added a way to edit, remove, and add words
This commit is contained in:
116
remove_word.lua
116
remove_word.lua
@@ -1,44 +1,76 @@
|
||||
return function(query)
|
||||
results_table = {}
|
||||
for i=1, #words do
|
||||
local exit = true
|
||||
local all = true
|
||||
for _, v in pairs(arg) do
|
||||
if v == "-r" or v == "--raw" then
|
||||
all = false
|
||||
word = string.gsub(words[i][1],"%p","")
|
||||
if string.find(word, query) then
|
||||
exit = false
|
||||
break
|
||||
end
|
||||
end
|
||||
if v == "-e" or v == "--english" then
|
||||
all = false
|
||||
word = string.gsub(words[i][2],"%p","")
|
||||
if string.find(word, query) then
|
||||
exit = false
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if all == true then
|
||||
for j=1, #words[i]-1 do
|
||||
word = string.gsub(words[i][j],"%p","")
|
||||
if string.find(word, query) then
|
||||
exit = false
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if not exit then
|
||||
local word = {i,words[i]}
|
||||
table.insert(results_table,word)
|
||||
end
|
||||
function removeWord(number)
|
||||
number = tonumber(number)
|
||||
|
||||
local file = io.open(data_get, "r")
|
||||
local text = file:read("*all")
|
||||
local pos = 0
|
||||
-- move to line
|
||||
for i=1, number do
|
||||
local npos = string.find(text,"\n",pos+1)
|
||||
if npos == nil then
|
||||
print("last line")
|
||||
break
|
||||
end
|
||||
pos = npos
|
||||
end
|
||||
if #results_table ~= 0 then
|
||||
results_table = adjustTableSizes(results_table)
|
||||
printOutputTable(results_table)
|
||||
else
|
||||
print("no words found for <" .. query .. ">")
|
||||
|
||||
-- get before
|
||||
file:seek("set",0)
|
||||
local before = file:read(pos-1)
|
||||
file:seek("set",pos)
|
||||
|
||||
-- move to things to modify
|
||||
pos = string.find(text,"\n",pos+1)
|
||||
file:seek("set",pos)
|
||||
|
||||
-- find next section
|
||||
local next_section = string.find(text,"\"",pos+1) or file:seek("end")
|
||||
file:seek("set",pos)
|
||||
|
||||
local length = next_section-pos
|
||||
|
||||
-- get after
|
||||
file:seek("set",pos)
|
||||
local after = file:read("*all") or ""
|
||||
|
||||
-- done w file
|
||||
file:close()
|
||||
|
||||
-- get word going to be removed
|
||||
local results_table = {}
|
||||
if words[number] then
|
||||
table.insert(results_table,{number,words[number]})
|
||||
end
|
||||
end
|
||||
results_table = adjustTableSizes(results_table)
|
||||
print("\nare you sure you want to remove the following entry? (y/N)")
|
||||
printOutputTable(results_table,true)
|
||||
print("")
|
||||
local delete = string.lower(io.read())
|
||||
if delete == "y"
|
||||
or delete == "ye"
|
||||
or delete == "yes"
|
||||
then
|
||||
delete = true
|
||||
else
|
||||
delete = false
|
||||
end
|
||||
--[[
|
||||
print("Before")
|
||||
print(text)
|
||||
|
||||
print("After:")
|
||||
print(before)
|
||||
print(after)
|
||||
]]
|
||||
if delete then
|
||||
--rewrite with new info
|
||||
local file = io.open(data_output, "w+")
|
||||
file:write(before)
|
||||
file:write("\n")
|
||||
file:write(after)
|
||||
file:close()
|
||||
print("\nentry was deleted.\n")
|
||||
else
|
||||
print("\nentry was not deleted.\n")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user