|
|
|
Найти текст в документе и показать всю строку, Найти текст в документе и показать всю строку |
|
|
dron4938 |
3.6.2018, 20:07
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 3.6.2018, 17:21) А зачем его вообще писать несколько раз? код
Код --lua
local files_in = {[[c:\Rus\1.txt]], [[c:\Rus\2.txt]], [[c:\Rus\3.txt]]} -- список файлов для замены local files_out = {[[c:\Rus\11.txt]], [[c:\Rus\22.txt]], [[c:\Rus\33.txt]]} -- куда сохранять local first = {} local result_file = {}
local t={ ["тумба"]="tuba", ["стол"]="table", ["стул"]="chair", ["ящик"]="box", ["чемодан"]="cement", ["рыба"]="alphabet", }
for i=1, #files_in do local first = io.open(files_in[i], "r") local result_file = io.open(files_out[i], "wb")
for v in first:lines() do result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n") end first:close() result_file:close() end Вообще получить бы список файлов в папке, но пилотовской dir не работает в lua. Спасибо, еще вопрос) Можно ли в этом коде сделать так, чтобы он делал поиск только после знака =цикорий=тумба орехи=дерево стол апельсины=стул стол= ящик абрикос=чемодан рыба=рыба т.е надо чтобы поиск игнорировал всё что написано до знака = в каждой строчке
|
|
|
|
cirus |
3.6.2018, 21:25
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26576
Пользователь №: 16.971
Возраст: 29
|
Цитата т.е надо чтобы поиск игнорировал всё что написано до знака = в каждой строчке код
Код --lua log "clear" log "mode compact" local path=[[C:\\Rus]] -- путь к папке с файлами local path2=[[C:\\Rus2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local first, result_file = {}, {}
local t={ ["тумба"]="tuba", ["стол"]="table", ["стул"]="chair", ["ящик"]="box", ["чемодан"]="cement", ["рыба"]="alphabet", }
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[a-zA-Zа-яА-Я]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end
|
|
|
|
dron4938 |
5.6.2018, 16:09
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 3.6.2018, 21:25) код
Код --lua log "clear" log "mode compact" local path=[[C:\\Rus]] -- путь к папке с файлами local path2=[[C:\\Rus2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local first, result_file = {}, {}
local t={ ["тумба"]="tuba", ["стол"]="table", ["стул"]="chair", ["ящик"]="box", ["чемодан"]="cement", ["рыба"]="alphabet", }
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[a-zA-Zа-яА-Я]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end Спасибо, отлично работает)
|
|
|
|
dron4938 |
7.6.2018, 23:48
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Проблемка образовалась, не работает 12 13 и 14 задача в примере. т.е скрипт делает замену, только если меняется первое слово после знака =, либо же фраза от первого слова после знака =. А если менять текст в середине строки, то не работает.В чем косяк? Код задача1=слово задача2 =слово задача3= слово задача4 = слово задача5=слово=слово задача6=слово =слово=+слово задача7=мемуар истины задача8 =мемуар истины задача9= мемуар истины задача10 = мемуар истины задача11 = мемуар истины =мемуар истины задача12=Пишем мемуар истины задача13=Hello how are you задача14 = Hello how are you =Hello how are you код
Код --lua log "clear" log "mode compact" local path=[[C:\\Rus\\TEST]] -- путь к папке с файлами local path2=[[C:\\Rus\\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local first, result_file = {}, {}
local t={ ["слово"]="ОК", [" слово"]="ОК", ["слово "]="ОК", [" слово "]="ОК", ["мемуар истины"]="ОК", [" мемуар истины"]="ОК", ["мемуар истины "]="ОК", [" мемуар истины "]="ОК", ["how are"]="ОК", ["how are "]="ОК", [" how are"]="ОК", [" how are "]="ОК", }
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[ a-zA-Zа-яА-Я]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end
|
|
|
|
dron4938 |
8.6.2018, 0:57
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(dron4938 @ 7.6.2018, 23:48) Проблемка образовалась, не работает 12 13 и 14 задача в примере. т.е скрипт делает замену, только если меняется первое слово после знака =, либо же фраза от первого слова после знака =. А если менять текст в середине строки, то не работает.В чем косяк? Код задача1=слово задача2 =слово задача3= слово задача4 = слово задача5=слово=слово задача6=слово =слово=+слово задача7=мемуар истины задача8 =мемуар истины задача9= мемуар истины задача10 = мемуар истины задача11 = мемуар истины =мемуар истины задача12=Пишем мемуар истины задача13=Hello how are you задача14 = Hello how are you =Hello how are you код
Код --lua log "clear" log "mode compact" local path=[[C:\\Rus\\TEST]] -- путь к папке с файлами local path2=[[C:\\Rus\\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local first, result_file = {}, {}
local t={ ["слово"]="ОК", [" слово"]="ОК", ["слово "]="ОК", [" слово "]="ОК", ["мемуар истины"]="ОК", [" мемуар истины"]="ОК", ["мемуар истины "]="ОК", [" мемуар истины "]="ОК", ["how are"]="ОК", ["how are "]="ОК", [" how are"]="ОК", [" how are "]="ОК", }
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[ a-zA-Zа-яА-Я]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end Либо так. Но так не ищет двойные слова, тобеж трабла с пробелом: код2
Код --lua log "clear" log "mode compact" local path=[[C:\\Rus\\TEST]] -- путь к папке с файлами local path2=[[C:\\Rus\\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local first, result_file = {}, {}
local t={ ["слово"]="+", ["мемуар истины"]="+", ["how are"]="+", ["яблоко"]="+", ["апельсин"]="+", ["мандарин"]="+", ["груша"]="+", ["киви"]="+", }
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[a-zA-Zа-яА-Я]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end Код задача1=слово задача2 =слово задача3= слово задача4 = слово задача5=слово=слово задача6=слово =слово=+слово задача7=мемуар истины задача8 =мемуар истины задача9= мемуар истины задача10 = мемуар истины задача11 = мемуар истины =мемуар истины задача12=Пишем мемуар истины задача13=Hello how are you задача14 = Hello how are you =Hello how are you задача15=яблоко апельсин апельсиновый мандарин груша киви
|
|
|
|
cirus |
8.6.2018, 2:51
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26576
Пользователь №: 16.971
Возраст: 29
|
Если менять фразы, а не только слова, то проще так: код
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"привет", "+++"}) -- 'привет' заменить на '+++' table.insert(t, {"здрасти как дела", "---"}) -- 'здрасти как дела' заменить на '---' table.insert(t, {"как ваши", "12345"}) -- 'как ваши' заменить на '12345'
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do -- заменяем v2 =v2:gsub(t[j][1] , t[j][2]) end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end
|
|
|
|
dron4938 |
8.6.2018, 9:27
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 8.6.2018, 2:51) Если менять фразы, а не только слова, то проще так: код
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"привет", "+++"}) -- 'привет' заменить на '+++' table.insert(t, {"здрасти как дела", "---"}) -- 'здрасти как дела' заменить на '---' table.insert(t, {"как ваши", "12345"}) -- 'как ваши' заменить на '12345'
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do -- заменяем v2 =v2:gsub(t[j][1] , t[j][2]) end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end Так коллапсик возникает для одиночных слов: Если например менять слово "ок" на что-нить, то во всех словах заменится этот предлог Код 1=хозяйственный 2=здраво 3=ок 4=сельскохозяйственный 5=здравохранение 6=крокодил Код table.insert(t, {"хозяйственный", "-ХОЗЯЙСТВЕННЫЙ-"}) table.insert(t, {"здраво", "-ЗДРАВО-"}) table.insert(t, {"ок", "-ОК-"}) table.insert(t, {"сельскохозяйственный", "+++"}) table.insert(t, {"здравохранение", "+++"}) table.insert(t, {"крокодил", "+++"}) Или для одиночных использовать тот скрипт? А для фраз этот?
|
|
|
|
cirus |
8.6.2018, 13:51
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26576
Пользователь №: 16.971
Возраст: 29
|
А так?: код
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"привет", "+++"}) -- 'привет' заменить на '+++' table.insert(t, {"здрасти как дела", "---"}) -- 'здрасти как дела' заменить на '---' table.insert(t, {"как ваши", "12345"}) -- 'как ваши' заменить на '12345' table.insert(t, {"хозяйственный", "-ХОЗЯЙСТВЕННЫЙ-"}) table.insert(t, {"здраво", "-ЗДРАВО-"}) table.insert(t, {"ок", "-ОК-"}) table.insert(t, {"сельскохозяйственный", "+++"}) table.insert(t, {"здравохранение", "+++"}) table.insert(t, {"крокодил", "+++"})
-- в одной таблице слова, в другой строки из нескольких слов local t1, t2 ={}, {} for i=1, #t do if t[i][1]:match("%s") == nil then -- если нет пробела, значит ищем 1 слово t1[t[i][1]]=t[i][2] -- таблица со словами else -- иначе строка из нескольких слов t2[t[i][1]]=t[i][2] -- таблица со строками end end
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do if t[j][1]:match("%s") then for key, val in pairs(t2) do v2 = v2:gsub(key, val) end else v2=v2:gsub("[a-zA-Zа-яА-Я]+", t1) end end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end
|
|
|
|
dron4938 |
8.6.2018, 15:14
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 8.6.2018, 13:51) А так?: код
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"привет", "+++"}) -- 'привет' заменить на '+++' table.insert(t, {"здрасти как дела", "---"}) -- 'здрасти как дела' заменить на '---' table.insert(t, {"как ваши", "12345"}) -- 'как ваши' заменить на '12345' table.insert(t, {"хозяйственный", "-ХОЗЯЙСТВЕННЫЙ-"}) table.insert(t, {"здраво", "-ЗДРАВО-"}) table.insert(t, {"ок", "-ОК-"}) table.insert(t, {"сельскохозяйственный", "+++"}) table.insert(t, {"здравохранение", "+++"}) table.insert(t, {"крокодил", "+++"})
-- в одной таблице слова, в другой строки из нескольких слов local t1, t2 ={}, {} for i=1, #t do if t[i][1]:match("%s") == nil then -- если нет пробела, значит ищем 1 слово t1[t[i][1]]=t[i][2] -- таблица со словами else -- иначе строка из нескольких слов t2[t[i][1]]=t[i][2] -- таблица со строками end end
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do if t[j][1]:match("%s") then for key, val in pairs(t2) do v2 = v2:gsub(key, val) end else v2=v2:gsub("[a-zA-Zа-яА-Я]+", t1) end end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end Так очень долго работает, на 1 файл с 20к строк ушло минут 5. Быстрее поочередно запустить 2 кода. Тогда за 10 сек справляется
|
|
|
|
dron4938 |
9.6.2018, 13:55
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 9.6.2018, 1:34) Хз как так. Тут даже не чему выполняться столько времени. Файл в 20000 строк, в каждой строке 9 замен ушло 0.25 сек.
Это те же 2 кода слепленные в один.
код1 Выполняется за секунду
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было log "Перевожу фразы..." local t, first, result_file = {}, {}, {}
table.insert(t, {"Fighting Spirit", "Боевой дух"}) table.insert(t, {"Select Character", "Выбор персонажа"}) table.insert(t, {"Character Available", "Пустой слот"}) table.insert(t, {"Select Server", "Выбор сервера"}) table.insert(t, {"Create Character", "Создание персонажа"}) table.insert(t, {"Change Appearance", "Сменить Внешность"}) table.insert(t, {"Save Appearance", "Сохранить внешность"}) table.insert(t, {"Quit Game", "Выйти из игры"}) table.insert(t, {"Will you quit the game", "Действительно выйти"}) table.insert(t, {"System Settings", "Системные настройки"}) table.insert(t, {"Sound Settings", "Звук"}) table.insert(t, {"Graphical Settings", "Графика"}) table.insert(t, {"Default Settings", "Основные"}) table.insert(t, {"Advanced Settings", "Дополнительные"}) table.insert(t, {"Created by", "Создатели"}) table.insert(t, {"Screen Mode", "Режим видео"}) table.insert(t, {"Window Mode", "Оконный"}) table.insert(t, {"Full Screen Mode", "На весь экран"}) table.insert(t, {"Maximized Window Mode", "Развёрнутое окно"}) table.insert(t, {"Screen Settings", "Настройки Экрана"}) table.insert(t, {"Screen Ratio", "Соотношение"}) table.insert(t, {"Screen Resolution", "Разрешение"}) table.insert(t, {"Visual Quality", "Качество графики"}) table.insert(t, {"Texture Resolution", "Качество текстур"}) table.insert(t, {"Sight Distanсe", "Дистанция видимости"}) table.insert(t, {"Character Detail", "Детали персонажей"}) table.insert(t, {"Background Distance", "Дистанция фона"}) table.insert(t, {"Object Detail", "Детали объектов"}) table.insert(t, {"Terrain Detail", "Детали земли"}) table.insert(t, {"Visual Effect Quality", "Визуальные эффекты"}) table.insert(t, {"Visual Effect Distance", "<font color='#feb63e'><font size='12'>Дистанция Виз.Эффектов</font></font>"}) table.insert(t, {"Shadow Detail", "Детали теней"}) table.insert(t, {"Max number of", "Максимум"}) table.insert(t, {"Max number of NPC", "Максимум Нпс"}) table.insert(t, {"Set All", "Выбрать всё"}) table.insert(t, {"Custom Settings", "Пользовательские"}) table.insert(t, {"Loading. Please wait.", "Идёт загрузка.Ждите."}) table.insert(t, {"Skill Growth", "Повышение навыков"}) table.insert(t, {"Use 1 Tactic", "Исп.1 тактику"}) table.insert(t, {"Tactic", "Тактика"}) table.insert(t, {"Tactics 1 Reset", "Сброс 1 тактики"}) table.insert(t, {"Stance Chain skill", "Основной навык"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"Cancel Change", "<font size='12'>Отменить Изменение</font>"}) table.insert(t, {"Gem Conversion", "Преобразовать"}) table.insert(t, {"Gladiator Tactic", "Гладиатор"}) table.insert(t, {"Combat Stance", "Боевая Стойка"}) table.insert(t, {"Lasting effect", "Постоянный эффект"}) table.insert(t, {"Conversion Effect", "При использовании"}) table.insert(t, {"Enhancement and Enervated", "Повышение и ослабление"}) table.insert(t, {"Charge Tactic", "Обвинение"}) table.insert(t, {"Defense Tactic", "Защита"}) table.insert(t, {"Endurance Tactic", "Выносливость"}) table.insert(t, {"Survival tactics 1", "Выживание 1"}) table.insert(t, {"Survival Tactics 2", "Выживание 2"}) table.insert(t, {"Emergency Reset", "Спасение (30м)"}) table.insert(t, {"System Menu", "Системное Меню"}) table.insert(t, {"Character Info", "Персонаж"}) table.insert(t, {"Special Shop", "Магазин Люменов"}) table.insert(t, {"Craft List", "Крафт"}) table.insert(t, {"Market Status", "Аукцион"}) table.insert(t, {"Account Inbox", "Ящик Аккаунта"}) table.insert(t, {"Exchange Office", "Обмен Валюты"}) table.insert(t, {"World Map", "Карта"}) table.insert(t, {"Chain Start Skill", "Основной навык"}) table.insert(t, {"Chain Skill", "Основной навык"}) table.insert(t, {"targeting skill", "Цель: Да"}) table.insert(t, {"non targeting skill", "Цель: Нет"}) table.insert(t, {"Last Chain Skill", "Основной навык +"}) table.insert(t, {"Claim All ", "Взять Всё "}) table.insert(t, {"Transition effect", "Переходящий эффект"}) table.insert(t, {"Strengthen and Decrease", "Укрепление и Ослабление"}) table.insert(t, {"Growth Effects", "Растущий эффект"}) table.insert(t, {"Fire Element", "Огонь"}) table.insert(t, {"Ice Element", "Лёд"}) table.insert(t, {"Air Element", "Воздух"}) table.insert(t, {"fire element", "Огонь"}) table.insert(t, {"ice element", "Лёд"}) table.insert(t, {"air element", "Воздух"}) table.insert(t, {"Casting Time", "Время каста"}) table.insert(t, {"maximum mana", "Максимум маны"}) table.insert(t, {"Non-Chain Skill", "Дополнительный навык"}) table.insert(t, {"Acquisition condition", "Требуется"}) table.insert(t, {"Погрузочный.Подождать.", "Идет загрузка. Ждите."}) table.insert(t, {"Цепные навыки", "Основные навыки"}) table.insert(t, {"Не цепные навыки", "Дополнительные навыки"}) table.insert(t, {"Рост Навыков", "Улучшение Навыков"}) table.insert(t, {"Время Литья", "Время каста"}) table.insert(t, {"системное меню", "Системное меню"}) table.insert(t, {"Средний Урон От Атаки Оружия ", "Средний урон "}) table.insert(t, {"Урон От Атаки Оружием ", "Урон "}) table.insert(t, {"Доступный для продажи", "Доступно для продажи"}) table.insert(t, {"главное оружие", "Главное оружие"}) table.insert(t, {"Оценка экипировки", "Экипировка"}) table.insert(t, {"Maximum Health", "Здоровье"}) table.insert(t, {"Fighting Power", "Боевая мощь"}) table.insert(t, {"Ability Power", "Сила способностей"}) table.insert(t, {"Maximum Bravery", "Храбрость"}) table.insert(t, {"Physical Defense", "Физическая защита"}) table.insert(t, {"Magic Defense", "Магическая защита"}) table.insert(t, {"Weapon Damage", "Атака Оружием"}) table.insert(t, {"Weapon Power", "Сила Оружия"}) table.insert(t, {"Critical Hit", "Критический удар"}) table.insert(t, {"Shield Absorption", "Поглощение Щитом"}) table.insert(t, {"Magic Resistance", "Сопротивление Магии"}) table.insert(t, {"Главные квесты", "Главные"}) table.insert(t, {"Руководство квесты", "Руководство"}) table.insert(t, {"Побочные квесты", "Дополнительные"}) table.insert(t, {"Охота Квесты", "Охота на монстров"}) table.insert(t, {"Королевские квесты", "Королевские"}) table.insert(t, {"Окончательное Вознаграждение", "Вознаграждение"}) table.insert(t, {"черный список", "Чёрный список"}) table.insert(t, {"настройка интерфейса", "Настройка интерфейса"}) table.insert(t, {"Автоматическое Выравнивание Элементов", "Сортировка"}) table.insert(t, {"автоматический запуск", "Автоматический запуск"}) table.insert(t, {"Требовать Все ", "Взять всё "}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа"}) table.insert(t, {"Слот свободен", "Пустой слот"}) table.insert(t, {"Вы выйдете из игры?", "Выйти из игры?"}) table.insert(t, {"Вы приобрели ", "Вы получили"}) table.insert(t, {"Transitional effects", " Переходящий эффект"}) table.insert(t, {"эффекты роста", "Улучшение:"}) table.insert(t, {"условие приобретения", "Необходимо:"}) table.insert(t, {"Преобразование Драгоценных Камней", "Преобразовать"}) table.insert(t, {"Оценка Продвижения По Службе", "Продвижение по службе"}) table.insert(t, {"Хранитель Склада", "Склад"}) table.insert(t, {"Боковое Оружие", "Второе Оружие"}) table.insert(t, {"Сбор инструмент требуется", "Требуется инструмент для сбора"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"damage to the enemy", "урона противнику"}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа?"}) table.insert(t, {"Уровень Обучения", "Уровень"}) table.insert(t, {"Обязательные Бериллы", "Бериллы"}) table.insert(t, {"Вы находитесь в канале ", "Вы находитесь на канале "}) table.insert(t, {"член партии", "Член отряда"}) table.insert(t, {"рука судьбы", "Возврат"}) table.insert(t, {"A good day to make", "Хороший день для крафта"}) table.insert(t, {"A good day to repair", "Хороший день для ремонта"}) table.insert(t, {"A good day to hunt", "Хороший день для охоты"}) table.insert(t, {"A Good Day to Adventure", "Хороший день для приключений"}) table.insert(t, {"элемент огня", "Огонь "}) table.insert(t, {"элемент Ice", "Лёд "}) table.insert(t, {"элемент Air", "Воздух "}) table.insert(t, {"Погрузочный. Подождать.", "Идёт загрузка. Ждите."}) table.insert(t, {"effective distance ", "Дистанция "}) table.insert(t, {"time until can be used again", "Откат"}) table.insert(t, {"Внешний Вид Нагрузки", "Загрузить Внешний Вид"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"человеческий тип", "Человек"}) table.insert(t, {"Тип Животного", "Животное"}) table.insert(t, {"skill damage", "урон навыков"}) table.insert(t, {"удар rate", "удар"}) table.insert(t, {"Stacks up to 15 time", "суммируется до 15 раз"}) table.insert(t, {"Reflect damage", "Отражает урон"}) table.insert(t, {"damage dealt", "урон"}) table.insert(t, {"Damage to enemies", "Урон врагам"}) table.insert(t, {"Временный эффект", "Постоянный эффект"}) table.insert(t, {"Преобразующий эффект", "При смене тактики"}) table.insert(t, {"Non-Основной навык", "Дополнительный навык"}) table.insert(t, {"изменить вид", "Доступна смена вида"}) table.insert(t, {"to the enemy", "урона противнику"}) table.insert(t, {"the damage of", "урон от"}) table.insert(t, {"Air skills", "Воздушные навыки"}) table.insert(t, {"Наносит maximum", "Наносит максимум"}) table.insert(t, {"and Magical Защиту на", "и Магическую защиту на"}) table.insert(t, {"Наносит Отражает урон на", "Отражает урон в течении"}) table.insert(t, {"Увеличивает Критический удар на", "Увеличивает шанс критического удара на"}) table.insert(t, {"суммируется до", "Суммируется до"}) table.insert(t, {"врагам увеличивает", "врагам увеличивается"}) table.insert(t, {"of maximum health", "от максимального здоровья"}) table.insert(t, {"when using certain", "при использовании некоторых"}) table.insert(t, {"Переходящий эффект", "При смене тактики"}) table.insert(t, {"Damage increased", "Увеличение урона"}) table.insert(t, {"crafting speed", "скорость крафта"}) table.insert(t, {"in EXP obtained from hunting", "опыта, полученного при охоте"}) table.insert(t, {"Giving damage increased", "Уеличение урона"}) table.insert(t, {"Damage reduced", "Снижение получаемого урона"}) table.insert(t, {"Health recovery rate", "Скорость восстановления здоровья +"}) table.insert(t, {"Physical and Magical", "Физическую и Магическую"}) table.insert(t, {"of wearing", "от ношения"}) table.insert(t, {"В удаление расходы", "Цена удаления:"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"экранный режим", "Экранный режим"})
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb") for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do -- заменяем v2 =v2:gsub(t[j][1] , t[j][2]) end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end log "ОК" log "Жду 2 секунды" wait(2000) log "Перевожу слова..." ----------------------------------------------------------------------------------- local path=[[C:\\Rus\\TEST2]] -- путь к папке с файлами local path2=[[C:\\Rus\\TEST3]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было local first, result_file = {}, {} local t={ ["Fire"]="Огонь", ["Lightning"]="Молния", ["Ice"]="Лёд", ["Adrenaline"]="Адреналин", ["Concentration"]="Концентрация", ["Potential"]="Потенциал", ["Lv."]="Ур.", ["Delete"]="Удалить", ["Cancel"]="Отмена", ["Apply"]="Принять", ["Reset"]="Сброс", ["Start"]="Старт", ["Brightness"]="Яркость", ["Ability"]="Способность", ["Selected"]="Выбор", ["Equip"]="Эквип", ["Change/OK"]="Подтвердить", ["Journal"]="Журнал", ["Friends"]="Друзья", ["Companions"]="Питомцы", ["Dungeon"]="Подземелья", ["War"]="Война", ["Interface"]="Интерфейс", ["Help"]="Помощь", ["Inventory"]="Инвентарь", ["Missions"]="Миссии", ["Mail"]="Почта", ["Guild"]="Гильдия", ["Spirit"]="Спирит", ["store"]="Магазин", ["seconds"]=" секунд", ["Bravery "]="Храбрость ", ["obtain"]=" +", ["Deals"]="Наносит", ["Obtain"]="Взять", ["consumption"]="-", ["Иерона"]="Гирона", ["Иерон"]="Гирон", ["Преобразование"]="Преобразовать", ["Изменение/ОК"]="Изменить", ["Монтировать"]="Эквип", ["Претезия"]="Получить", ["Оснащение"]="Требуется", ["оборудованный"]="надето", ["Разрушаемый"]="Разрушаемое", ["Strength"]="Сила", ["Жизнеспособность"]="Магазин", ["Wisdom"]="Мудрость", ["Intelligence"]="Интеллект", ["Agility"]="Ловкость", ["Stability"]="Стабильность", ["Hit"]="Удар", ["Acceleration"]="Ускорение", ["Dodge"]="Уклонение", ["Parry"]="Парирование", ["Block"]="Блок", ["Toughness"]="Стойкость", ["Долговечность"]="Прочность", ["Рынок"]="Аукцион", ["ОПЦИОНЫ"]="Опции Карты", ["Отвечать"]="Ответить", ["Получать"]="Взять", ["Применять"]="Принять", ["Vitality"]="Жизнеспособность", ["ОПЫТ"]="-Опыта", ["Маунты"]="Питомцы", ["менеджер"]="Аукцион", ["Темница"]="Подземелье", ["Вспоминать"]="Возврат", ["Collect"]="Сбор", ["Сапфировый"]="Сапфир", ["Погрузочный"]="Загрузка", ["Объединение"]="Союз", ["Спина"]="Назад", ["Установочный"]="Установки", ["CT_урона"]="CT_damage урона", ["Decreases"]="Уменьшает", ["decreases"]="уменьшает", ["Defense"]="Защиту", ["by"]="на", ["but"]="но", ["increases"]="увеличивает", ["Increases"]="Увеличивает", ["seconds."]="секунд.", ["for"]="на", ["Магазин"]="Живучесть", ["Сдвиг"]="Shift", ["котлов"]="меди", ["Странник"]="Лучник", ["skills"]="навыки", ["разs"]="раз", ["Restores"]="Восстанавливает", ["Non-Основной навык"]="Дополнительный навык", ["Increase"]="Увеличение", ["increase"]="увеличение", ["Удар"]="Точность", ["Hits"]="Точность", ["Frenzy"]="Бешенство", ["Knowledge"]="Знания", ["Effect"]="Эффект", ["parts"]="частей", ["Мисс"]="Промах", ["Удар"]="Точность", ["Удар"]="Точность", ["Удар"]="Точность", ["Удар"]="Точность", ["Удар"]="Точность",
} for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb") for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = result_file:write(v1 .. string.gsub(v2, "[0-9a-zA-Zа-яА-Я/._-]+", t).."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end log "ОК" wait(1000) log "close" код2 Не стал засекать время, проработал >5 мин
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"Fighting Spirit", "Боевой дух"}) table.insert(t, {"Select Character", "Выбор персонажа"}) table.insert(t, {"Character Available", "Пустой слот"}) table.insert(t, {"Select Server", "Выбор сервера"}) table.insert(t, {"Create Character", "Создание персонажа"}) table.insert(t, {"Change Appearance", "Сменить Внешность"}) table.insert(t, {"Save Appearance", "Сохранить внешность"}) table.insert(t, {"Quit Game", "Выйти из игры"}) table.insert(t, {"Will you quit the game", "Действительно выйти"}) table.insert(t, {"System Settings", "Системные настройки"}) table.insert(t, {"Sound Settings", "Звук"}) table.insert(t, {"Graphical Settings", "Графика"}) table.insert(t, {"Default Settings", "Основные"}) table.insert(t, {"Advanced Settings", "Дополнительные"}) table.insert(t, {"Created by", "Создатели"}) table.insert(t, {"Screen Mode", "Режим видео"}) table.insert(t, {"Window Mode", "Оконный"}) table.insert(t, {"Full Screen Mode", "На весь экран"}) table.insert(t, {"Maximized Window Mode", "Развёрнутое окно"}) table.insert(t, {"Screen Settings", "Настройки Экрана"}) table.insert(t, {"Screen Ratio", "Соотношение"}) table.insert(t, {"Screen Resolution", "Разрешение"}) table.insert(t, {"Visual Quality", "Качество графики"}) table.insert(t, {"Texture Resolution", "Качество текстур"}) table.insert(t, {"Sight Distanсe", "Дистанция видимости"}) table.insert(t, {"Character Detail", "Детали персонажей"}) table.insert(t, {"Background Distance", "Дистанция фона"}) table.insert(t, {"Object Detail", "Детали объектов"}) table.insert(t, {"Terrain Detail", "Детали земли"}) table.insert(t, {"Visual Effect Quality", "Визуальные эффекты"}) table.insert(t, {"Visual Effect Distance", "<font color='#feb63e'><font size='12'>Дистанция Виз.Эффектов</font></font>"}) table.insert(t, {"Shadow Detail", "Детали теней"}) table.insert(t, {"Max number of", "Максимум"}) table.insert(t, {"Max number of NPC", "Максимум Нпс"}) table.insert(t, {"Set All", "Выбрать всё"}) table.insert(t, {"Custom Settings", "Пользовательские"}) table.insert(t, {"Loading. Please wait.", "Идёт загрузка.Ждите."}) table.insert(t, {"Skill Growth", "Повышение навыков"}) table.insert(t, {"Use 1 Tactic", "Исп.1 тактику"}) table.insert(t, {"Tactic", "Тактика"}) table.insert(t, {"Tactics 1 Reset", "Сброс 1 тактики"}) table.insert(t, {"Stance Chain skill", "Основной навык"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"Cancel Change", "<font size='12'>Отменить Изменение</font>"}) table.insert(t, {"Gem Conversion", "Преобразовать"}) table.insert(t, {"Gladiator Tactic", "Гладиатор"}) table.insert(t, {"Combat Stance", "Боевая Стойка"}) table.insert(t, {"Lasting effect", "Постоянный эффект"}) table.insert(t, {"Conversion Effect", "При использовании"}) table.insert(t, {"Enhancement and Enervated", "Повышение и ослабление"}) table.insert(t, {"Charge Tactic", "Обвинение"}) table.insert(t, {"Defense Tactic", "Защита"}) table.insert(t, {"Endurance Tactic", "Выносливость"}) table.insert(t, {"Survival tactics 1", "Выживание 1"}) table.insert(t, {"Survival Tactics 2", "Выживание 2"}) table.insert(t, {"Emergency Reset", "Спасение (30м)"}) table.insert(t, {"System Menu", "Системное Меню"}) table.insert(t, {"Character Info", "Персонаж"}) table.insert(t, {"Special Shop", "Магазин Люменов"}) table.insert(t, {"Craft List", "Крафт"}) table.insert(t, {"Market Status", "Аукцион"}) table.insert(t, {"Account Inbox", "Ящик Аккаунта"}) table.insert(t, {"Exchange Office", "Обмен Валюты"}) table.insert(t, {"World Map", "Карта"}) table.insert(t, {"Chain Start Skill", "Основной навык"}) table.insert(t, {"Chain Skill", "Основной навык"}) table.insert(t, {"targeting skill", "Цель: Да"}) table.insert(t, {"non targeting skill", "Цель: Нет"}) table.insert(t, {"Last Chain Skill", "Основной навык +"}) table.insert(t, {"Claim All ", "Взять Всё "}) table.insert(t, {"Transition effect", "Переходящий эффект"}) table.insert(t, {"Strengthen and Decrease", "Укрепление и Ослабление"}) table.insert(t, {"Growth Effects", "Растущий эффект"}) table.insert(t, {"Fire Element", "Огонь"}) table.insert(t, {"Ice Element", "Лёд"}) table.insert(t, {"Air Element", "Воздух"}) table.insert(t, {"fire element", "Огонь"}) table.insert(t, {"ice element", "Лёд"}) table.insert(t, {"air element", "Воздух"}) table.insert(t, {"Casting Time", "Время каста"}) table.insert(t, {"maximum mana", "Максимум маны"}) table.insert(t, {"Non-Chain Skill", "Дополнительный навык"}) table.insert(t, {"Acquisition condition", "Требуется"}) table.insert(t, {"Погрузочный.Подождать.", "Идет загрузка. Ждите."}) table.insert(t, {"Цепные навыки", "Основные навыки"}) table.insert(t, {"Не цепные навыки", "Дополнительные навыки"}) table.insert(t, {"Рост Навыков", "Улучшение Навыков"}) table.insert(t, {"Время Литья", "Время каста"}) table.insert(t, {"системное меню", "Системное меню"}) table.insert(t, {"Средний Урон От Атаки Оружия ", "Средний урон "}) table.insert(t, {"Урон От Атаки Оружием ", "Урон "}) table.insert(t, {"Доступный для продажи", "Доступно для продажи"}) table.insert(t, {"главное оружие", "Главное оружие"}) table.insert(t, {"Оценка экипировки", "Экипировка"}) table.insert(t, {"Maximum Health", "Здоровье"}) table.insert(t, {"Fighting Power", "Боевая мощь"}) table.insert(t, {"Ability Power", "Сила способностей"}) table.insert(t, {"Maximum Bravery", "Храбрость"}) table.insert(t, {"Physical Defense", "Физическая защита"}) table.insert(t, {"Magic Defense", "Магическая защита"}) table.insert(t, {"Weapon Damage", "Атака Оружием"}) table.insert(t, {"Weapon Power", "Сила Оружия"}) table.insert(t, {"Critical Hit", "Критический удар"}) table.insert(t, {"Shield Absorption", "Поглощение Щитом"}) table.insert(t, {"Magic Resistance", "Сопротивление Магии"}) table.insert(t, {"Главные квесты", "Главные"}) table.insert(t, {"Руководство квесты", "Руководство"}) table.insert(t, {"Побочные квесты", "Дополнительные"}) table.insert(t, {"Охота Квесты", "Охота на монстров"}) table.insert(t, {"Королевские квесты", "Королевские"}) table.insert(t, {"Окончательное Вознаграждение", "Вознаграждение"}) table.insert(t, {"черный список", "Чёрный список"}) table.insert(t, {"настройка интерфейса", "Настройка интерфейса"}) table.insert(t, {"Автоматическое Выравнивание Элементов", "Сортировка"}) table.insert(t, {"автоматический запуск", "Автоматический запуск"}) table.insert(t, {"Требовать Все ", "Взять всё "}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа"}) table.insert(t, {"Слот свободен", "Пустой слот"}) table.insert(t, {"Вы выйдете из игры?", "Выйти из игры?"}) table.insert(t, {"Вы приобрели ", "Вы получили"}) table.insert(t, {"Transitional effects", " Переходящий эффект"}) table.insert(t, {"эффекты роста", "Улучшение:"}) table.insert(t, {"условие приобретения", "Необходимо:"}) table.insert(t, {"Преобразование Драгоценных Камней", "Преобразовать"}) table.insert(t, {"Оценка Продвижения По Службе", "Продвижение по службе"}) table.insert(t, {"Хранитель Склада", "Склад"}) table.insert(t, {"Боковое Оружие", "Второе Оружие"}) table.insert(t, {"Сбор инструмент требуется", "Требуется инструмент для сбора"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"damage to the enemy", "урона противнику"}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа?"}) table.insert(t, {"Уровень Обучения", "Уровень"}) table.insert(t, {"Обязательные Бериллы", "Бериллы"}) table.insert(t, {"Вы находитесь в канале ", "Вы находитесь на канале "}) table.insert(t, {"член партии", "Член отряда"}) table.insert(t, {"рука судьбы", "Возврат"}) table.insert(t, {"A good day to make", "Хороший день для крафта"}) table.insert(t, {"A good day to repair", "Хороший день для ремонта"}) table.insert(t, {"A good day to hunt", "Хороший день для охоты"}) table.insert(t, {"A Good Day to Adventure", "Хороший день для приключений"}) table.insert(t, {"элемент огня", "Огонь "}) table.insert(t, {"элемент Ice", "Лёд "}) table.insert(t, {"элемент Air", "Воздух "}) table.insert(t, {"Погрузочный. Подождать.", "Идёт загрузка. Ждите."}) table.insert(t, {"effective distance ", "Дистанция "}) table.insert(t, {"time until can be used again", "Откат"}) table.insert(t, {"Внешний Вид Нагрузки", "Загрузить Внешний Вид"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"человеческий тип", "Человек"}) table.insert(t, {"Тип Животного", "Животное"}) table.insert(t, {"skill damage", "урон навыков"}) table.insert(t, {"удар rate", "удар"}) table.insert(t, {"Stacks up to 15 time", "суммируется до 15 раз"}) table.insert(t, {"Reflect damage", "Отражает урон"}) table.insert(t, {"damage dealt", "урон"}) table.insert(t, {"Damage to enemies", "Урон врагам"}) table.insert(t, {"Временный эффект", "Постоянный эффект"}) table.insert(t, {"Преобразующий эффект", "При смене тактики"}) table.insert(t, {"Non-Основной навык", "Дополнительный навык"}) table.insert(t, {"изменить вид", "Доступна смена вида"}) table.insert(t, {"to the enemy", "урона противнику"}) table.insert(t, {"the damage of", "урон от"}) table.insert(t, {"Air skills", "Воздушные навыки"}) table.insert(t, {"Наносит maximum", "Наносит максимум"}) table.insert(t, {"and Magical Защиту на", "и Магическую защиту на"}) table.insert(t, {"Наносит Отражает урон на", "Отражает урон в течении"}) table.insert(t, {"Увеличивает Критический удар на", "Увеличивает шанс критического удара на"}) table.insert(t, {"суммируется до", "Суммируется до"}) table.insert(t, {"врагам увеличивает", "врагам увеличивается"}) table.insert(t, {"of maximum health", "от максимального здоровья"}) table.insert(t, {"when using certain", "при использовании некоторых"}) table.insert(t, {"Переходящий эффект", "При смене тактики"}) table.insert(t, {"Damage increased", "Увеличение урона"}) table.insert(t, {"crafting speed", "скорость крафта"}) table.insert(t, {"in EXP obtained from hunting", "опыта, полученного при охоте"}) table.insert(t, {"Giving damage increased", "Уеличение урона"}) table.insert(t, {"Damage reduced", "Снижение получаемого урона"}) table.insert(t, {"Health recovery rate", "Скорость восстановления здоровья +"}) table.insert(t, {"Physical and Magical", "Физическую и Магическую"}) table.insert(t, {"of wearing", "от ношения"}) table.insert(t, {"В удаление расходы", "Цена удаления:"}) ------------------------------------------------------------------- table.insert(t, {"Fire", "Огонь"}) table.insert(t, {"Lightning", "Молния"}) table.insert(t, {"Ice", "Лёд"}) table.insert(t, {"Adrenaline", "Адреналин"}) table.insert(t, {"Concentration", "Концентрация"}) table.insert(t, {"Potential", "Потенциал"}) table.insert(t, {"Lv.", "Ур."}) table.insert(t, {"Delete", "Удалить"}) table.insert(t, {"Cancel", "Отмена"}) table.insert(t, {"Apply", "Принять"}) table.insert(t, {"Reset", "Сброс"}) table.insert(t, {"Start", "Старт"}) table.insert(t, {"Brightness", "Яркость"}) table.insert(t, {"Ability", "Способность"}) table.insert(t, {"Selected", "Выбор"}) table.insert(t, {"Equip", "Эквип"}) table.insert(t, {"Change/OK", "Подтвердить"}) table.insert(t, {"Journal", "Журнал"}) table.insert(t, {"Friends", "Друзья"}) table.insert(t, {"Companions", "Питомцы"}) table.insert(t, {"Dungeon", "Подземелья"}) table.insert(t, {"War", "Война"}) table.insert(t, {"Interface", "Интерфейс"}) table.insert(t, {"Help", "Помощь"}) table.insert(t, {"Inventory", "Инвентарь"}) table.insert(t, {"Missions", "Миссии"}) table.insert(t, {"Mail", "Почта"}) table.insert(t, {"Guild", "Гильдия"}) table.insert(t, {"Spirit", "Спирит"}) table.insert(t, {"store", "Магазин"}) table.insert(t, {"seconds", " секунд"}) table.insert(t, {"Bravery ", "Храбрость "}) table.insert(t, {"obtain", " +"}) table.insert(t, {"Deals", "Наносит"}) table.insert(t, {"Obtain", "Взять"}) table.insert(t, {"consumption", "-"}) table.insert(t, {"Иерона", "Гирона"}) table.insert(t, {"Иерон", "Гирон"}) table.insert(t, {"Преобразование", "Преобразовать"}) table.insert(t, {"Изменение/ОК", "Изменить"}) table.insert(t, {"Монтировать", "Эквип"}) table.insert(t, {"Претезия", "Получить"}) table.insert(t, {"Оснащение", "Требуется"}) table.insert(t, {"оборудованный", "надето"}) table.insert(t, {"Разрушаемый", "Разрушаемое"}) table.insert(t, {"Strength", "Сила"}) table.insert(t, {"Жизнеспособность", "Магазин"}) table.insert(t, {"Wisdom", "Мудрость"}) table.insert(t, {"Intelligence", "Интеллект"}) table.insert(t, {"Agility", "Ловкость"}) table.insert(t, {"Stability", "Стабильность"}) table.insert(t, {"Hit", "Удар"}) table.insert(t, {"Acceleration", "Ускорение"}) table.insert(t, {"Dodge", "Уклонение"}) table.insert(t, {"Parry", "Парирование"}) table.insert(t, {"Block", "Блок"}) table.insert(t, {"Toughness", "Стойкость"}) table.insert(t, {"Долговечность", "Прочность"}) table.insert(t, {"Рынок", "Аукцион"}) table.insert(t, {"ОПЦИОНЫ", "Опции Карты"}) table.insert(t, {"Отвечать", "Ответить"}) table.insert(t, {"Получать", "Взять"}) table.insert(t, {"Применять", "Принять"}) table.insert(t, {"Vitality", "Жизнеспособность"}) table.insert(t, {"ОПЫТ", "-Опыта"}) table.insert(t, {"Маунты", "Питомцы"}) table.insert(t, {"менеджер", "Аукцион"}) table.insert(t, {"Темница", "Подземелье"}) table.insert(t, {"Вспоминать", "Возврат"}) table.insert(t, {"Collect", "Сбор"}) table.insert(t, {"Сапфировый", "Сапфир"}) table.insert(t, {"Погрузочный", "Загрузка"}) table.insert(t, {"Объединение", "Союз"}) table.insert(t, {"Спина", "Назад"}) table.insert(t, {"Установочный", "Установки"}) table.insert(t, {"CT_урона", "CT_damage урона"}) table.insert(t, {"Decreases", "Уменьшает"}) table.insert(t, {"decreases", "уменьшает"}) table.insert(t, {"Defense", "Защиту"}) table.insert(t, {"by", "на"}) table.insert(t, {"but", "но"}) table.insert(t, {"increases", "увеличивает"}) table.insert(t, {"Increases", "Увеличивает"}) table.insert(t, {"seconds.", "секунд."}) table.insert(t, {"for", "на"}) table.insert(t, {"Магазин", "Живучесть"}) table.insert(t, {"Сдвиг", "Shift"}) table.insert(t, {"котлов", "меди"}) table.insert(t, {"Странник", "Лучник"}) table.insert(t, {"skills", "навыки"}) table.insert(t, {"разs", "раз"}) table.insert(t, {"Restores", "Восстанавливает"}) table.insert(t, {"Non-Основной навык", "Дополнительный навык"}) table.insert(t, {"Increase", "Увеличение"}) table.insert(t, {"increase", "увеличение"}) table.insert(t, {"Удар", "Точность"}) table.insert(t, {"Hits", "Точность"}) table.insert(t, {"Frenzy", "Бешенство"}) table.insert(t, {"Knowledge", "Знания"}) table.insert(t, {"Effect", "Эффект"}) table.insert(t, {"parts", "частей"}) table.insert(t, {"Мисс", "Промах"})
-- в одной таблице слова, в другой строки из нескольких слов local t1, t2 ={}, {} for i=1, #t do if t[i][1]:match("%s") == nil then -- если нет пробела, значит ищем 1 слово t1[t[i][1]]=t[i][2] -- таблица со словами else -- иначе строка из нескольких слов t2[t[i][1]]=t[i][2] -- таблица со строками end end
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do if t[j][1]:match("%s") then for key, val in pairs(t2) do v2 = v2:gsub(key, val) end else v2=v2:gsub("[a-zA-Zа-яА-Я]+", t1) end end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end +файл прикрепил
Прикрепленные файлы
Skill.txt ( 1,95 мегабайт )
Кол-во скачиваний: 390
|
|
|
|
cirus |
9.6.2018, 19:40
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26576
Пользователь №: 16.971
Возраст: 29
|
Лишний цикл был, исправил: код
Код --lua time=os.clock() log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"Fighting Spirit", "Боевой дух"}) table.insert(t, {"Select Character", "Выбор персонажа"}) table.insert(t, {"Character Available", "Пустой слот"}) table.insert(t, {"Select Server", "Выбор сервера"}) table.insert(t, {"Create Character", "Создание персонажа"}) table.insert(t, {"Change Appearance", "Сменить Внешность"}) table.insert(t, {"Save Appearance", "Сохранить внешность"}) table.insert(t, {"Quit Game", "Выйти из игры"}) table.insert(t, {"Will you quit the game", "Действительно выйти"}) table.insert(t, {"System Settings", "Системные настройки"}) table.insert(t, {"Sound Settings", "Звук"}) table.insert(t, {"Graphical Settings", "Графика"}) table.insert(t, {"Default Settings", "Основные"}) table.insert(t, {"Advanced Settings", "Дополнительные"}) table.insert(t, {"Created by", "Создатели"}) table.insert(t, {"Screen Mode", "Режим видео"}) table.insert(t, {"Window Mode", "Оконный"}) table.insert(t, {"Full Screen Mode", "На весь экран"}) table.insert(t, {"Maximized Window Mode", "Развёрнутое окно"}) table.insert(t, {"Screen Settings", "Настройки Экрана"}) table.insert(t, {"Screen Ratio", "Соотношение"}) table.insert(t, {"Screen Resolution", "Разрешение"}) table.insert(t, {"Visual Quality", "Качество графики"}) table.insert(t, {"Texture Resolution", "Качество текстур"}) table.insert(t, {"Sight Distanсe", "Дистанция видимости"}) table.insert(t, {"Character Detail", "Детали персонажей"}) table.insert(t, {"Background Distance", "Дистанция фона"}) table.insert(t, {"Object Detail", "Детали объектов"}) table.insert(t, {"Terrain Detail", "Детали земли"}) table.insert(t, {"Visual Effect Quality", "Визуальные эффекты"}) table.insert(t, {"Visual Effect Distance", "<font color='#feb63e'><font size='12'>Дистанция Виз.Эффектов</font></font>"}) table.insert(t, {"Shadow Detail", "Детали теней"}) table.insert(t, {"Max number of", "Максимум"}) table.insert(t, {"Max number of NPC", "Максимум Нпс"}) table.insert(t, {"Set All", "Выбрать всё"}) table.insert(t, {"Custom Settings", "Пользовательские"}) table.insert(t, {"Loading. Please wait.", "Идёт загрузка.Ждите."}) table.insert(t, {"Skill Growth", "Повышение навыков"}) table.insert(t, {"Use 1 Tactic", "Исп.1 тактику"}) table.insert(t, {"Tactic", "Тактика"}) table.insert(t, {"Tactics 1 Reset", "Сброс 1 тактики"}) table.insert(t, {"Stance Chain skill", "Основной навык"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"Cancel Change", "<font size='12'>Отменить Изменение</font>"}) table.insert(t, {"Gem Conversion", "Преобразовать"}) table.insert(t, {"Gladiator Tactic", "Гладиатор"}) table.insert(t, {"Combat Stance", "Боевая Стойка"}) table.insert(t, {"Lasting effect", "Постоянный эффект"}) table.insert(t, {"Conversion Effect", "При использовании"}) table.insert(t, {"Enhancement and Enervated", "Повышение и ослабление"}) table.insert(t, {"Charge Tactic", "Обвинение"}) table.insert(t, {"Defense Tactic", "Защита"}) table.insert(t, {"Endurance Tactic", "Выносливость"}) table.insert(t, {"Survival tactics 1", "Выживание 1"}) table.insert(t, {"Survival Tactics 2", "Выживание 2"}) table.insert(t, {"Emergency Reset", "Спасение (30м)"}) table.insert(t, {"System Menu", "Системное Меню"}) table.insert(t, {"Character Info", "Персонаж"}) table.insert(t, {"Special Shop", "Магазин Люменов"}) table.insert(t, {"Craft List", "Крафт"}) table.insert(t, {"Market Status", "Аукцион"}) table.insert(t, {"Account Inbox", "Ящик Аккаунта"}) table.insert(t, {"Exchange Office", "Обмен Валюты"}) table.insert(t, {"World Map", "Карта"}) table.insert(t, {"Chain Start Skill", "Основной навык"}) table.insert(t, {"Chain Skill", "Основной навык"}) table.insert(t, {"targeting skill", "Цель: Да"}) table.insert(t, {"non targeting skill", "Цель: Нет"}) table.insert(t, {"Last Chain Skill", "Основной навык +"}) table.insert(t, {"Claim All ", "Взять Всё "}) table.insert(t, {"Transition effect", "Переходящий эффект"}) table.insert(t, {"Strengthen and Decrease", "Укрепление и Ослабление"}) table.insert(t, {"Growth Effects", "Растущий эффект"}) table.insert(t, {"Fire Element", "Огонь"}) table.insert(t, {"Ice Element", "Лёд"}) table.insert(t, {"Air Element", "Воздух"}) table.insert(t, {"fire element", "Огонь"}) table.insert(t, {"ice element", "Лёд"}) table.insert(t, {"air element", "Воздух"}) table.insert(t, {"Casting Time", "Время каста"}) table.insert(t, {"maximum mana", "Максимум маны"}) table.insert(t, {"Non-Chain Skill", "Дополнительный навык"}) table.insert(t, {"Acquisition condition", "Требуется"}) table.insert(t, {"Погрузочный.Подождать.", "Идет загрузка. Ждите."}) table.insert(t, {"Цепные навыки", "Основные навыки"}) table.insert(t, {"Не цепные навыки", "Дополнительные навыки"}) table.insert(t, {"Рост Навыков", "Улучшение Навыков"}) table.insert(t, {"Время Литья", "Время каста"}) table.insert(t, {"системное меню", "Системное меню"}) table.insert(t, {"Средний Урон От Атаки Оружия ", "Средний урон "}) table.insert(t, {"Урон От Атаки Оружием ", "Урон "}) table.insert(t, {"Доступный для продажи", "Доступно для продажи"}) table.insert(t, {"главное оружие", "Главное оружие"}) table.insert(t, {"Оценка экипировки", "Экипировка"}) table.insert(t, {"Maximum Health", "Здоровье"}) table.insert(t, {"Fighting Power", "Боевая мощь"}) table.insert(t, {"Ability Power", "Сила способностей"}) table.insert(t, {"Maximum Bravery", "Храбрость"}) table.insert(t, {"Physical Defense", "Физическая защита"}) table.insert(t, {"Magic Defense", "Магическая защита"}) table.insert(t, {"Weapon Damage", "Атака Оружием"}) table.insert(t, {"Weapon Power", "Сила Оружия"}) table.insert(t, {"Critical Hit", "Критический удар"}) table.insert(t, {"Shield Absorption", "Поглощение Щитом"}) table.insert(t, {"Magic Resistance", "Сопротивление Магии"}) table.insert(t, {"Главные квесты", "Главные"}) table.insert(t, {"Руководство квесты", "Руководство"}) table.insert(t, {"Побочные квесты", "Дополнительные"}) table.insert(t, {"Охота Квесты", "Охота на монстров"}) table.insert(t, {"Королевские квесты", "Королевские"}) table.insert(t, {"Окончательное Вознаграждение", "Вознаграждение"}) table.insert(t, {"черный список", "Чёрный список"}) table.insert(t, {"настройка интерфейса", "Настройка интерфейса"}) table.insert(t, {"Автоматическое Выравнивание Элементов", "Сортировка"}) table.insert(t, {"автоматический запуск", "Автоматический запуск"}) table.insert(t, {"Требовать Все ", "Взять всё "}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа"}) table.insert(t, {"Слот свободен", "Пустой слот"}) table.insert(t, {"Вы выйдете из игры?", "Выйти из игры?"}) table.insert(t, {"Вы приобрели ", "Вы получили"}) table.insert(t, {"Transitional effects", " Переходящий эффект"}) table.insert(t, {"эффекты роста", "Улучшение:"}) table.insert(t, {"условие приобретения", "Необходимо:"}) table.insert(t, {"Преобразование Драгоценных Камней", "Преобразовать"}) table.insert(t, {"Оценка Продвижения По Службе", "Продвижение по службе"}) table.insert(t, {"Хранитель Склада", "Склад"}) table.insert(t, {"Боковое Оружие", "Второе Оружие"}) table.insert(t, {"Сбор инструмент требуется", "Требуется инструмент для сбора"}) table.insert(t, {"Non-Chain skill", "Дополнительный навык"}) table.insert(t, {"damage to the enemy", "урона противнику"}) table.insert(t, {"Возвращение к экрану выбора символов", "Вернуться к выбору персонажа?"}) table.insert(t, {"Уровень Обучения", "Уровень"}) table.insert(t, {"Обязательные Бериллы", "Бериллы"}) table.insert(t, {"Вы находитесь в канале ", "Вы находитесь на канале "}) table.insert(t, {"член партии", "Член отряда"}) table.insert(t, {"рука судьбы", "Возврат"}) table.insert(t, {"A good day to make", "Хороший день для крафта"}) table.insert(t, {"A good day to repair", "Хороший день для ремонта"}) table.insert(t, {"A good day to hunt", "Хороший день для охоты"}) table.insert(t, {"A Good Day to Adventure", "Хороший день для приключений"}) table.insert(t, {"элемент огня", "Огонь "}) table.insert(t, {"элемент Ice", "Лёд "}) table.insert(t, {"элемент Air", "Воздух "}) table.insert(t, {"Погрузочный. Подождать.", "Идёт загрузка. Ждите."}) table.insert(t, {"effective distance ", "Дистанция "}) table.insert(t, {"time until can be used again", "Откат"}) table.insert(t, {"Внешний Вид Нагрузки", "Загрузить Внешний Вид"}) table.insert(t, {"экранный режим", "Экранный режим"}) table.insert(t, {"человеческий тип", "Человек"}) table.insert(t, {"Тип Животного", "Животное"}) table.insert(t, {"skill damage", "урон навыков"}) table.insert(t, {"удар rate", "удар"}) table.insert(t, {"Stacks up to 15 time", "суммируется до 15 раз"}) table.insert(t, {"Reflect damage", "Отражает урон"}) table.insert(t, {"damage dealt", "урон"}) table.insert(t, {"Damage to enemies", "Урон врагам"}) table.insert(t, {"Временный эффект", "Постоянный эффект"}) table.insert(t, {"Преобразующий эффект", "При смене тактики"}) table.insert(t, {"Non-Основной навык", "Дополнительный навык"}) table.insert(t, {"изменить вид", "Доступна смена вида"}) table.insert(t, {"to the enemy", "урона противнику"}) table.insert(t, {"the damage of", "урон от"}) table.insert(t, {"Air skills", "Воздушные навыки"}) table.insert(t, {"Наносит maximum", "Наносит максимум"}) table.insert(t, {"and Magical Защиту на", "и Магическую защиту на"}) table.insert(t, {"Наносит Отражает урон на", "Отражает урон в течении"}) table.insert(t, {"Увеличивает Критический удар на", "Увеличивает шанс критического удара на"}) table.insert(t, {"суммируется до", "Суммируется до"}) table.insert(t, {"врагам увеличивает", "врагам увеличивается"}) table.insert(t, {"of maximum health", "от максимального здоровья"}) table.insert(t, {"when using certain", "при использовании некоторых"}) table.insert(t, {"Переходящий эффект", "При смене тактики"}) table.insert(t, {"Damage increased", "Увеличение урона"}) table.insert(t, {"crafting speed", "скорость крафта"}) table.insert(t, {"in EXP obtained from hunting", "опыта, полученного при охоте"}) table.insert(t, {"Giving damage increased", "Уеличение урона"}) table.insert(t, {"Damage reduced", "Снижение получаемого урона"}) table.insert(t, {"Health recovery rate", "Скорость восстановления здоровья +"}) table.insert(t, {"Physical and Magical", "Физическую и Магическую"}) table.insert(t, {"of wearing", "от ношения"}) table.insert(t, {"В удаление расходы", "Цена удаления:"}) ------------------------------------------------------------------- table.insert(t, {"Fire", "Огонь"}) table.insert(t, {"Lightning", "Молния"}) table.insert(t, {"Ice", "Лёд"}) table.insert(t, {"Adrenaline", "Адреналин"}) table.insert(t, {"Concentration", "Концентрация"}) table.insert(t, {"Potential", "Потенциал"}) table.insert(t, {"Lv.", "Ур."}) table.insert(t, {"Delete", "Удалить"}) table.insert(t, {"Cancel", "Отмена"}) table.insert(t, {"Apply", "Принять"}) table.insert(t, {"Reset", "Сброс"}) table.insert(t, {"Start", "Старт"}) table.insert(t, {"Brightness", "Яркость"}) table.insert(t, {"Ability", "Способность"}) table.insert(t, {"Selected", "Выбор"}) table.insert(t, {"Equip", "Эквип"}) table.insert(t, {"Change/OK", "Подтвердить"}) table.insert(t, {"Journal", "Журнал"}) table.insert(t, {"Friends", "Друзья"}) table.insert(t, {"Companions", "Питомцы"}) table.insert(t, {"Dungeon", "Подземелья"}) table.insert(t, {"War", "Война"}) table.insert(t, {"Interface", "Интерфейс"}) table.insert(t, {"Help", "Помощь"}) table.insert(t, {"Inventory", "Инвентарь"}) table.insert(t, {"Missions", "Миссии"}) table.insert(t, {"Mail", "Почта"}) table.insert(t, {"Guild", "Гильдия"}) table.insert(t, {"Spirit", "Спирит"}) table.insert(t, {"store", "Магазин"}) table.insert(t, {"seconds", " секунд"}) table.insert(t, {"Bravery ", "Храбрость "}) table.insert(t, {"obtain", " +"}) table.insert(t, {"Deals", "Наносит"}) table.insert(t, {"Obtain", "Взять"}) table.insert(t, {"consumption", "-"}) table.insert(t, {"Иерона", "Гирона"}) table.insert(t, {"Иерон", "Гирон"}) table.insert(t, {"Преобразование", "Преобразовать"}) table.insert(t, {"Изменение/ОК", "Изменить"}) table.insert(t, {"Монтировать", "Эквип"}) table.insert(t, {"Претезия", "Получить"}) table.insert(t, {"Оснащение", "Требуется"}) table.insert(t, {"оборудованный", "надето"}) table.insert(t, {"Разрушаемый", "Разрушаемое"}) table.insert(t, {"Strength", "Сила"}) table.insert(t, {"Жизнеспособность", "Магазин"}) table.insert(t, {"Wisdom", "Мудрость"}) table.insert(t, {"Intelligence", "Интеллект"}) table.insert(t, {"Agility", "Ловкость"}) table.insert(t, {"Stability", "Стабильность"}) table.insert(t, {"Hit", "Удар"}) table.insert(t, {"Acceleration", "Ускорение"}) table.insert(t, {"Dodge", "Уклонение"}) table.insert(t, {"Parry", "Парирование"}) table.insert(t, {"Block", "Блок"}) table.insert(t, {"Toughness", "Стойкость"}) table.insert(t, {"Долговечность", "Прочность"}) table.insert(t, {"Рынок", "Аукцион"}) table.insert(t, {"ОПЦИОНЫ", "Опции Карты"}) table.insert(t, {"Отвечать", "Ответить"}) table.insert(t, {"Получать", "Взять"}) table.insert(t, {"Применять", "Принять"}) table.insert(t, {"Vitality", "Жизнеспособность"}) table.insert(t, {"ОПЫТ", "-Опыта"}) table.insert(t, {"Маунты", "Питомцы"}) table.insert(t, {"менеджер", "Аукцион"}) table.insert(t, {"Темница", "Подземелье"}) table.insert(t, {"Вспоминать", "Возврат"}) table.insert(t, {"Collect", "Сбор"}) table.insert(t, {"Сапфировый", "Сапфир"}) table.insert(t, {"Погрузочный", "Загрузка"}) table.insert(t, {"Объединение", "Союз"}) table.insert(t, {"Спина", "Назад"}) table.insert(t, {"Установочный", "Установки"}) table.insert(t, {"CT_урона", "CT_damage урона"}) table.insert(t, {"Decreases", "Уменьшает"}) table.insert(t, {"decreases", "уменьшает"}) table.insert(t, {"Defense", "Защиту"}) table.insert(t, {"by", "на"}) table.insert(t, {"but", "но"}) table.insert(t, {"increases", "увеличивает"}) table.insert(t, {"Increases", "Увеличивает"}) table.insert(t, {"seconds.", "секунд."}) table.insert(t, {"for", "на"}) table.insert(t, {"Магазин", "Живучесть"}) table.insert(t, {"Сдвиг", "Shift"}) table.insert(t, {"котлов", "меди"}) table.insert(t, {"Странник", "Лучник"}) table.insert(t, {"skills", "навыки"}) table.insert(t, {"разs", "раз"}) table.insert(t, {"Restores", "Восстанавливает"}) table.insert(t, {"Non-Основной навык", "Дополнительный навык"}) table.insert(t, {"Increase", "Увеличение"}) table.insert(t, {"increase", "увеличение"}) table.insert(t, {"Удар", "Точность"}) table.insert(t, {"Hits", "Точность"}) table.insert(t, {"Frenzy", "Бешенство"}) table.insert(t, {"Knowledge", "Знания"}) table.insert(t, {"Effect", "Эффект"}) table.insert(t, {"parts", "частей"}) table.insert(t, {"Мисс", "Промах"})
-- в одной таблице слова, в другой строки из нескольких слов local t1, t2 ={}, {} for i=1, #t do if t[i][1]:match("%s") == nil then -- если нет пробела, значит ищем 1 слово t1[t[i][1]]=t[i][2] -- таблица со словами else -- иначе строка из нескольких слов table.insert(t2, {t[i][1], t[i][2]}) -- таблица со строками end end
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после = for k=1, #t2 do -- заменяем строки v2 = v2:gsub(t2[k][1], t2[k][2]) end
v2=v2:gsub("[a-zA-Zа-яА-Я]+", t1) -- заменяем слова
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end log (os.clock()-time)
|
|
|
|
portos |
25.8.2018, 23:02
|
Apprentice
Сообщений: 181
Регистрация: 6.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.157
|
Цитата(cirus @ 8.6.2018, 1:51) Если менять фразы, а не только слова, то проще так: код
Код --lua log "clear" log "mode compact" local path=[[C:\Rus\TEST]] -- путь к папке с файлами local path2=[[C:\Rus\TEST2]] -- куда сохранять изменённые файлы local files_in, count = dir (path, "*.txt", "norecursion") -- получаем список всех txt файлов в папке dircreate (path2) -- создаём папку если её не было
local t, first, result_file = {}, {}, {}
table.insert(t, {"привет", "+++"}) -- 'привет' заменить на '+++' table.insert(t, {"здрасти как дела", "---"}) -- 'здрасти как дела' заменить на '---' table.insert(t, {"как ваши", "12345"}) -- 'как ваши' заменить на '12345'
for i=1, count do local first = io.open(files_in[i][1], "r") local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")
for v in first:lines() do local v1 = v:match(".-%=") -- получаем из строки всё что идёт до = (включая и сам знак равно) if v1 then -- если строка не пустая local v2 = v:match("%=(.*)") -- получаем из строки всё что идёт после =
for j=1, #t do -- заменяем v2 =v2:gsub(t[j][1] , t[j][2]) end
result_file:write(v1 .. v2 .."\r\n") else -- если знак = не был найден result_file:write(v .. "\r\n") -- записываем строку без изменений end end first:close() result_file:close() end это с lua работает только ,как работать с файлами на пк ?
|
|
|
|
portos |
26.8.2018, 0:04
|
Apprentice
Сообщений: 181
Регистрация: 6.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.157
|
Цитата(cirus @ 25.8.2018, 22:00) Код --lua local path_in=[[C:\Users\abc\Desktop\file1.txt]] -- путь к файлу, в котором надо найти текст local path_out=[[C:\Users\abc\Desktop\file2.txt]] -- куда сохранить
local f = io.open(path_in, "r") -- открываем файл для чтения local result_f = io.open(path_out, "wb") -- открываем для записи, если файла не существует он будет создан
for v in f:lines() do -- читаем файл по строкам result_f:write(v:gsub("Hello", "Привет") .."\r\n") -- пишем в файл, при этом заменить все слова Hello на Привет end
f:close() -- закрываем файл result_f:close() -- закрываем файл --lua local path_in=[[C:\Users\portos\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текст local path_out=[[C:\Users\portos\Desktop\2222.txt]] -- куда сохранить local f = io.open(path_in, "r") -- открываем файл для чтения local result_f = io.open(path_out, "wb") -- открываем для записи, если файла не существует он будет создан for v in f:lines() do -- читаем файл по строкам result_f:write(v:gsub(".18", "Привет") .."\r\n") -- пишем в файл, при этом заменить все слова Hello на Привет end f:close() -- закрываем файл result_f:close() -- закрываем файл выдаёт ошибку 0:02:51 47 (autosaved_47.txt, 3): local - (3): Ошибка! Проверьте правильность скрипта! EAccessViolation Access violation at address 005501CD in module 'uopilot.exe'. Write of address 000000C0 --lua local path_in=[[C:\Users\portos\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текс 0:03:40 47 (autosaved_47.txt, 3): local - (3): Ошибка! Проверьте правильность скрипта! EAccessViolation Access violation at address 005501CD in module 'uopilot.exe'. Write of address 000000C0 --lua local path_in=[[C:\Users\portos\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текс
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|