Здравствуйте, гость ( Вход | Регистрация )

9 страниц V « < 2 3 4 5 6 > »   
Ответить в эту темуОткрыть новую тему
> Найти текст в документе и показать всю строку, Найти текст в документе и показать всю строку
cirus
сообщение 3.6.2018, 20:04
Сообщение #61


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26576
Пользователь №: 16.971
Возраст: 29



Цитата
Почему не работает

Склероз (IMG:style_emoticons/default/smile.gif) Забыл что его правили.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 3.6.2018, 20:07
Сообщение #62


****

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.

Спасибо, еще вопрос)
Можно ли в этом коде сделать так, чтобы он делал поиск только после знака =

цикорий=тумба
орехи=дерево стол
апельсины=стул
стол= ящик
абрикос=чемодан
рыба=рыба

т.е надо чтобы поиск игнорировал всё что написано до знака = в каждой строчке
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.6.2018, 21:25
Сообщение #63


**********

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 5.6.2018, 16:09
Сообщение #64


****

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


Спасибо, отлично работает)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.6.2018, 23:48
Сообщение #65


****

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 8.6.2018, 0:57
Сообщение #66


****

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=яблоко апельсин апельсиновый мандарин груша киви

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 8.6.2018, 1:23
Сообщение #67


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Код
тест1=привет как дела(заменить "привет" на +)
тест2=здрасти как дела (заменить "здрасти как дела" на +)
тест3=хеллоу как ваши дела (заменить "как ваши" на +)

вот, чтобы всё менялось над)

Код
["привет"]="+",
["здрасти как дела"]="+",
["как ваши"]="+",
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.6.2018, 2:51
Сообщение #68


**********

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 8.6.2018, 9:27
Сообщение #69


****

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, {"крокодил", "+++"})


Или для одиночных использовать тот скрипт? А для фраз этот?

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.6.2018, 13:51
Сообщение #70


**********

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 8.6.2018, 15:14
Сообщение #71


****

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 сек справляется
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.6.2018, 1:34
Сообщение #72


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26576
Пользователь №: 16.971
Возраст: 29



Цитата
на 1 файл с 20к строк ушло минут 5.

Хз как так. Тут даже не чему выполняться столько времени.
Файл в 20000 строк, в каждой строке 9 замен ушло 0.25 сек.
Цитата
Быстрее поочередно запустить 2 кода

Это те же 2 кода слепленные в один.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 9.6.2018, 13:55
Сообщение #73


****

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.6.2018, 19:40
Сообщение #74


**********

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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 25.8.2018, 23:02
Сообщение #75


****

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 работает только ,как работать с файлами на пк ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.8.2018, 23:27
Сообщение #76


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26576
Пользователь №: 16.971
Возраст: 29



Цитата
как работать с файлами на пк ?

А что требуется сделать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 25.8.2018, 23:33
Сообщение #77


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 25.8.2018, 21:27) *

А что требуется сделать?


заменить одно слово в одном док , на другое в другом док или фразу
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 0:00
Сообщение #78


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26576
Пользователь №: 16.971
Возраст: 29



Код
--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()  -- закрываем файл
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 0:04
Сообщение #79


****

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]] -- путь к файлу, в котором надо найти текс
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 0:29
Сообщение #80


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26576
Пользователь №: 16.971
Возраст: 29



А версия пилота какая?
Последнюю стабильную скачайте: http://uopilot.uokit.com
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

9 страниц V « < 2 3 4 5 6 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 4:58
Designed by Nickostyle