Добрый день форумчане, надеюсь мне поможете)) Есть документ, в нем 600 строк и нужно найти в нем одно слово, может и повторяться. Мне нужно чтобы выводились все строки найденные с этим словом. Уже 2-ой день пыхчу и не могу найти(
Так сойдет?
Скачать архив, распаковать, запустить файл "Поиск строк с определенными словами.bat"
Создастся файл result.txt с найденными строками
===================================
параметры:
FINDSTR /L "dontail dron4938" "text.txt" > "result.txt"
dontail dron4938 - вместо этого свои слова которые надо искать
"text.txt" - имя файла в котором надо искать
"result.txt" - имя файла который создастся после поиска с найденными строками
Прикрепленные файлы
Poisk.rar ( 947 байт )
Кол-во скачиваний: 1936
теперь застрял на том - как удалить в батнике прошлые данные чтобы ввести новый поиск)?
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
//создастся файл bat со строкой (FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
end_script
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
//создастся файл bat со строкой (FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
end_script
filedelete (C:\123abc.bat) // удалит файл
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt") // создаст файл
wait 200
exec C:\123abc.bat // запустит файл
end_script
set linedelay 0
set $sub ywf // указываем ваше слово
load_array %arr text.txt
set #sizeArr size(%arr)
for #i 1 #sizeArr 1
set #pos posEx($sub, %arr[#i])
if #pos > 0
log %arr[#i]
end_if
end_for
set linedelay 0
set $sub ywf // указываем ваше слово
load_array %arr text.txt
set #sizeArr size(%arr)
for #i 1 #sizeArr 1
set #pos posEx($sub, %arr[#i])
if #pos > 0
log %arr[#i]
end_if
end_for
set linedelay 0
set $sub ywf // указываем ваше слово
load_array %arr text.txt
set #sizeArr size(%arr)
for #i 1 #sizeArr 1
set #pos posEx($sub, %arr[#i])
if #pos > 0
hint %arr[#i]
wait 5s
end_if
if 853 >= %arr[#i] ///// 853 последняя пустая строка
end_script
end_if
end_for
if #i == 853
еще такой вопрос - как сохранить в "горячих клавишах" пуск/стоп скрипта, чтобы при переносе на другой комп он сохранялся
Все настройки хранятся в uopilot.ini. Т. е. на другой комп надо перекинуть этот файл.
Кто нибудь может подсказать - можно ли создать текстовый документ размером 600+ строк? Просто сейчас не дома, проверить возможности нет. Заранее спасибо)
for #i 1 600
set %a[#i] Строка номер #i
end_for
save_array %a C:\textfile.txt
end_script
for #i 1 600
set %a[#i] Строка номер #i
end_for
save_array %a C:\textfile.txt
end_script
Что именно не понятно? Вы просили создание документа из 600+ строк - вам его создали.
set %arr [1]вопрос 1, ответ 1
set %arr [2]вопрос 2, ответ 2
set %arr [3]вопрос 3, ответ 3
set %arr [4]вопрос 3, ответ 4
....
set %arr [600]вопрос 600, ответ 600
save_array %arr C:\вопросики\123abc.txt
end_script
Вопросы и ответы пилот должен придумать?
Всем большое спасибо за помощь и за ваше терпение)
есть 2 текстовых файла.
1ый содержит такие строки:
$*Game-EBoneDeformPart_CalfCircumference-Customizin=
$*Game-EBoneDeformPart_FootSize-Customizin=
$*Game-EBoneDeformPart_BodyCircumference-Customizin=
$*Game-EBoneDeformPart_Height-Customizin=
$*Game-Error_NPGAMEMON_ERROR_EXIST-Error=
$*Game-Error_NPGAMEMON_ERROR_NPSCAN-Error=
$*Game-Error_NPGAMEMON_ERROR_INIT-Error=
Eyebrow Arch Horizontal Position
Eyebrow Tail Vertical Position
Eyebrow Curvature
Nose Vertical Position
Nose Size
Nose Projection
Nose Bridge Shape
$*Game-EBoneDeformPart_CalfCircumference-Customizin=Eyebrow Arch Horizontal Position
$*Game-EBoneDeformPart_FootSize-Customizin=Eyebrow Tail Vertical Position
$*Game-EBoneDeformPart_BodyCircumference-Customizin=Eyebrow Curvature
$*Game-EBoneDeformPart_Height-Customizin=Nose Vertical Position
$*Game-Error_NPGAMEMON_ERROR_EXIST-Error=Nose Size
$*Game-Error_NPGAMEMON_ERROR_NPSCAN-Error=Nose Projection
$*Game-Error_NPGAMEMON_ERROR_INIT-Error=Nose Bridge Shape
load_array %a C:\Users\abc\Desktop\222.txt
load_array %b C:\Users\abc\Desktop\333.txt
for #i 1 size(%a)
set %c [#i] %a[#i]%b[#i]
end_for
save_array %c C:\Users\abc\Desktop\444.txt
end_script
load_array %a C:\Users\abc\Desktop\222.txt
load_array %b C:\Users\abc\Desktop\333.txt
for #i 1 size(%a)
set %c [#i] %a[#i]%b[#i]
end_for
save_array %c C:\Users\abc\Desktop\444.txt
end_script
Из-за спецсимволов могут быть порблемы. Чтобы их избежать можно сделать так:
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local second = io.open([[d:\2.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
second_part={}
for v in first:lines() do
first_part[#first_part + 1] = v
end
for v in second:lines() do
second_part[#second_part + 1] = v
end
local result = ""
for i = 1, #first_part do
result = result..first_part[i]..second_part[i].."\r\n"
end
result_file:write(result)
result_file:close()
load_array %a C:\Users\abc\Desktop\222.txt
load_array %b C:\Users\abc\Desktop\333.txt
for #i 1 size(%a)
set %c [#i] %a[#i]%b[#i]
end_for
save_array %c C:\Users\abc\Desktop\444.txt
end_script
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local second = io.open([[d:\2.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
second_part={}
for v in first:lines() do
first_part[#first_part + 1] = v
end
for v in second:lines() do
second_part[#second_part + 1] = v
end
local result = ""
for i = 1, #first_part do
result = result..first_part[i]..second_part[i].."\r\n"
end
result_file:write(result)
result_file:close()
как удалить все знаки = из текста файла, а затем следующим действием выставить знаки = в начале каждой строки?
=Горящие Пески-Песчаный =Причал
Горящие Пески-Азуресанд
=Курия =- Fairy Song Ferry Inn
=Курия-Трущобы
=Курия -= Fairy Song Ferry Inn
=Курия-Еловая Поляна
Отрубями =Лес - Lupuscana
=Bellops-Daidan =Wanderers
=Bellops - Экспедиция Torenton
=Горящие Пески-Песчаный Причал
=Горящие Пески-Азуресанд
=Курия - Fairy Song Ferry Inn
=Курия-Трущобы
=Курия - Fairy Song Ferry Inn
=Курия-Еловая Поляна
=Отрубями Лес - Lupuscana
=Bellops-Daidan Wanderers
=Bellops - Экспедиция Torenton
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
second_part={}
for v in first:lines() do
result_file:write("=" .. string.gsub(v, "=", "").."\r\n")
end
result_file:close()
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
second_part={}
for v in first:lines() do
result_file:write("=" .. string.gsub(v, "=", "").."\r\n")
end
result_file:close()
нужен скрипт автозамены сложных наборов текстов в документе.
пример: В тексте есть много таких кракозябров, надо чтобы они автоматом заменились на заданное значение, например </I> пробелы должны учитываться.
< / I>
</Я>
< /I >
</I >
< /Я >
</Я >
< /Я>
</Я>
</ Я>
было-стало приведите пример.
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "(%< *%/ *)([a-zA-Zа-яА-Я])( *%>)", "%1I%3").."\r\n")
end
first:close()
result_file:close()
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "(%< *%/ *)([a-zA-Zа-яА-Я])( *%>)", "%1I%3").."\r\n")
end
first:close()
result_file:close()
[AccountInfo]
$*FixedChargeAdvInfo-green-local_name=<font size='20'><i>Game</ i> Прем</font>
$*FixedChargeAdvInfo-blue-local_name=<font size='20'><i>Game</я> Прем</font>
$*FixedChargeAdvInfo-purple-local_name=<font size='20'><i>Game< /i> Прем</font>
[AccountInfo]
$*FixedChargeAdvInfo-green-local_name=<font size='20'><i>Game</i> Прем</font>
$*FixedChargeAdvInfo-blue-local_name=<font size='20'><i>Game</i> Прем</font>
$*FixedChargeAdvInfo-purple-local_name=<font size='20'><i>Game</i> Прем</font>
Т.е. пробелы нужно убрать? А я их наоборот сохранял всеми силами) Ща
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "(%<) *(%/) *([яЯiI]) *(%>)", "%1%2i%4").."\r\n")
end
first:close()
result_file:close()
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "(%<) *(%/) *([яЯiI]) *(%>)", "%1%2i%4").."\r\n")
end
first:close()
result_file:close()
тумба
стол
стул
ящик
чемодан
рыба
азбука
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "чемодан", "люстра").."\r\n")
end
first:close()
result_file:close()
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
for v in first:lines() do
result_file:write(string.gsub(v, "чемодан", "люстра").."\r\n")
end
first:close()
result_file:close()
все заработало, проблема в юникоде файла была) Я файл не с нуля создавал, а расширение просто поменял на тхт.
Создал тхт с нуля и заработало, спасибо
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
t={["чемодан"]="люстра", ["азбука"]="букварь"} -- чемодан заменить на люстру, азбуку на букварь
for v in first:lines() do
-- log (v)
result_file:write(string.gsub(v, "[%A%a]+", t).."\r\n")
end
first:close()
result_file:close()
--lua
log"clear"
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
t={["Game"]="Game2", ["Прем"]="Прем2"} --
for v in first:lines() do
-- log (v)
result_file:write(string.gsub(v, "[%A%a%/]+", t).."\r\n")
end
first:close()
result_file:close()
[AccountInfo]
$*FixedChargeAdvInfo-green-local_name=<font size='20'><i>Game</ i> Прем</font>
$*FixedChargeAdvInfo-blue-local_name=<font size='20'><i>Game</я> Прем</font>
$*FixedChargeAdvInfo-purple-local_name=<font size='20'><i>Game< /i> Прем</font>
--lua
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
t={["Game"]="Game2", ["Прем"]="Прем2"} --
for v in first:lines() do
result_file:write(string.gsub(v, "[GameПрем]+", t).."\r\n")
end
first:close()
result_file:close()
--lua
local first = io.open([[d:\1.txt]], "r")
local result_file = io.open([[d:\result.txt]], "wb")
first_part={}
t={["Game"]="Game2", ["Прем"]="Прем2"}
for v in first:lines() do
result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n")
end
first:close()
result_file:close()
"[GameПрем]+"
А можно пилот заставить искать в файлах с другой кодировкой?
Он в ANSI работает, а например UTF-8
Можно перевести в другую кодировку через батник.
Содержимое bat файла:
powershell "get-content -encoding UTF8 'C:\folder\in.txt' | out-file -encoding default 'C:\folder\out.txt'"
Функции работы с utf-8, подгружать через require.
Прикрепленные файлы
utf8.lua ( 8,39 килобайт )
Кол-во скачиваний: 983
Нужно сразу в нескольких файлах сделать одну и ту же замену.
как сделать, чтоб не писать по несколько раз одно и тоже
тобеж словарь замен чтобы не дублировать
--lua
log"clear"
local first = io.open([[c:\Rus\1.txt]], "r")
local result_file = io.open([[c:\Eng\1.txt]], "wb")
first_part={}
t={
["тумба"]="tuba",
["стол"]="table",
["стул"]="chair",
["ящик"]="box",
["чемодан"]="cement",
["рыба"]="alphabet",
}
for v in first:lines() do
result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n")
end
first:close()
result_file:close()
-------------------------------------------------------
local first = io.open([[c:\Rus\2.txt]], "r")
local result_file = io.open([[c:\Eng\2.txt]], "wb")
first_part={}
t={
["тумба"]="tuba",
["стол"]="table",
["стул"]="chair",
["ящик"]="box",
["чемодан"]="cement",
["рыба"]="alphabet",
}
for v in first:lines() do
result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n")
end
first:close()
result_file:close()
-------------------------------------------------------
local first = io.open([[c:\Rus\3.txt]], "r")
local result_file = io.open([[c:\Eng\3.txt]], "wb")
first_part={}
t={
["тумба"]="tuba",
["стол"]="table",
["стул"]="chair",
["ящик"]="box",
["чемодан"]="cement",
["рыба"]="alphabet",
}
for v in first:lines() do
result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n")
end
first:close()
result_file:close()
--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
Почему не работает
--lua
resultarray, count = dir ("C:\\", "*.sys", "norecursion")
for i = 1, count do
log (resultarray[i][1])
end
--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
--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
--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
Проблемка образовалась, не работает 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
задача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
--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=яблоко апельсин апельсиновый мандарин груша киви
тест1=привет как дела(заменить "привет" на +)
тест2=здрасти как дела (заменить "здрасти как дела" на +)
тест3=хеллоу как ваши дела (заменить "как ваши" на +)
["привет"]="+",
["здрасти как дела"]="+",
["как ваши"]="+",
Если менять фразы, а не только слова, то проще так:
--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
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, {"крокодил", "+++"})
А так?:
--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
--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
--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"
--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
Лишний цикл был, исправил:
--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)
--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
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\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() -- закрываем файл
А версия пилота какая?
Последнюю стабильную скачайте: http://uopilot.uokit.com
Эту:
Night version
Stable
01.07.2018 Build 013
А путь кто будет менять...
А файл C:\Users\portos\Desktop\2222.txt открывали? Если в 1111.txt были ".18", то они заменятся.
как если надо несколько слов заменить на Привет ?
--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") -- открываем для записи, если файла не существует он будет создан
local t = {} -- массив, в котором хранится что на что менять
table.insert(t, {"Hello", "Привет"}) -- Hello на привет
table.insert(t, {".18", "qwerty"}) -- .18 заменить на qwerty
table.insert(t, {"text", "99"}) -- text заменить на 99
for v in f:lines() do -- читаем файл по строкам
local temp=v
for j=1, #t do -- заменяем
temp =temp:gsub(t[j][1], t[j][2])
end
result_f:write(temp .."\r\n")
end
f:close() -- закрываем файл
result_f:close() -- закрываем файл
надо выполнить
взять из док 1111.txt первую строку , и в док 2222.txt найти первое слово из 1111.txt первой строки и дописать третье слово из 1111.txt в строку с найденным словом в док 2222.txt.
и так далее , пока не закончатся строки в док 1111.txt
--lua
local arr = {"Hello", "Привет", "text", "99"} -- arr[1] - будет Hello, arr[2] - Привет и т. д.
local t = {}
t[#t+1] = {arr[1], arr[2]}
t[#t+1] = {arr[3], arr[4]}
log(t[1][1], t[1][2])
log(t[2][1], t[2][2])
--lua
local arr = {"Hello", "Привет", "text", "99"} -- arr[1] - будет Hello, arr[2] - Привет и т. д.
local t = {}
t[#t+1] = {arr[1], arr[2]}
t[#t+1] = {arr[3], arr[4]}
log(t[1][1], t[1][2])
log(t[2][1], t[2][2])
--lua
-- не забываем указать нужный путь к файлам
local path_in1=[[C:\Users\abc\Desktop\1111.txt]] -- путь к файл, в котором надо найти текст
local path_in2=[[C:\Users\abc\Desktop\2222.txt]] -- путь к файл, в котором надо найти текст
local path_out=[[C:\Users\abc\Desktop\3333.txt]] -- куда сохранить
local f1 = io.open(path_in1, "r") -- открываем файл 1111.txt для чтения
local f2 = io.open(path_in2, "r") -- открываем файл 2222.txt для чтения
local f3 = io.open(path_out, "wb") -- открываем файл 3333.txt для записи, если файла не существует он будет создан
local arr1, arr2 = {}, {}
for v in f1:lines() do -- читаем файл 1111.txt по строкам
arr1[#arr1+1]=v -- добавляем в массив
end
for v in f2:lines() do -- читаем файл 2222.txt по строкам
arr2[#arr2+1]=v -- добавляем в массив
end
for i=1, #arr2 do -- для всех строк файла 2222.txt
local k = 0
for j=1, #arr1 do -- для всех строк файла 1111.txt
local first_word = arr1[j]:match("[^%s]+") -- первое слово из строки
k = k + 1
if arr2[i]:match(first_word) then -- если слово найдено
local end_string = arr1[j]:match("uopilot.-%s(.+)") -- находит всё что идет после uopilot
f3:write(arr2[i] .. " " .. end_string .."\r\n") -- пишем в файл
break -- выходим из цикла
end
if k == #arr1 then -- если слово не было найдено
f3:write(arr2[i] .. "\r\n") -- пишем строку без изменений
end
end
end
f1:close() -- закрываем файл
f2:close() -- закрываем файл
f3:close() -- закрываем файл
--lua
-- не забываем указать нужный путь к файлам
local path_in1=[[C:\Users\abc\Desktop\1111.txt]] -- путь к файл, в котором надо найти текст
local path_in2=[[C:\Users\abc\Desktop\2222.txt]] -- путь к файл, в котором надо найти текст
local path_out=[[C:\Users\abc\Desktop\3333.txt]] -- куда сохранить
local f1 = io.open(path_in1, "r") -- открываем файл 1111.txt для чтения
local f2 = io.open(path_in2, "r") -- открываем файл 2222.txt для чтения
local f3 = io.open(path_out, "wb") -- открываем файл 3333.txt для записи, если файла не существует он будет создан
local arr1, arr2 = {}, {}
for v in f1:lines() do -- читаем файл 1111.txt по строкам
arr1[#arr1+1]=v -- добавляем в массив
end
for v in f2:lines() do -- читаем файл 2222.txt по строкам
arr2[#arr2+1]=v -- добавляем в массив
end
for i=1, #arr2 do -- для всех строк файла 2222.txt
local k = 0
for j=1, #arr1 do -- для всех строк файла 1111.txt
local first_word = arr1[j]:match("[^%s]+") -- первое слово из строки
k = k + 1
if arr2[i]:match(first_word) then -- если слово найдено
local end_string = arr1[j]:match("uopilot.-%s(.+)") -- находит всё что идет после uopilot
f3:write(arr2[i] .. " " .. end_string .."\r\n") -- пишем в файл
break -- выходим из цикла
end
if k == #arr1 then -- если слово не было найдено
f3:write(arr2[i] .. "\r\n") -- пишем строку без изменений
end
end
end
f1:close() -- закрываем файл
f2:close() -- закрываем файл
f3:close() -- закрываем файл
парни , последний вопрос ))
как сделать , с такими же документами (1111.txt и 2222.txt ) что бы с 1111.txt брало с первой строки первое слово (12623337369) ,находило в 2222.txt , удаляла полную строку (12623337369 xxxxxxx uopilot1 xxxxxxx) , и записывало в 3333.txt ?
Т. е. чтобы в 2222 остались те строки, в которых не было совпадения, а в 3333 те, в которых были совпадения?
--lua
-- не забываем указать нужный путь к файлам
local path_in1=[[C:\Users\abc\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текст
local path_in2=[[C:\Users\abc\Desktop\2222.txt]] -- путь к файлу, в котором надо найти текст
local path_out=[[C:\Users\abc\Desktop\3333.txt]] -- куда сохранить
local f1 = io.open(path_in1, "r") -- открываем файл 1111.txt для чтения
local f2 = io.open(path_in2, "r") -- открываем файл 2222.txt для чтения
local f3 = io.open(path_out, "wb") -- открываем файл 3333.txt для записи, если файла не существует он будет создан
local arr1, arr2 = {}, {}
for v in f1:lines() do -- читаем файл 1111.txt по строкам
arr1[#arr1+1]=v -- добавляем в массив
end
for v in f2:lines() do -- читаем файл 2222.txt по строкам
arr2[#arr2+1]=v -- добавляем в массив
end
f1:close() -- закрываем файл 1111
f2:close() -- закрываем файл 2222
f2 = io.open(path_in2, "wb") -- открываем файл 2222.txt для записи
for i=1, #arr2 do -- для всех строк файла 2222.txt
local k = 0
for j=1, #arr1 do -- для всех строк файла 1111.txt
local first_word = arr1[j]:match("[^%s]+") -- первое слово из строки
k = k + 1
if arr2[i]:match(first_word) then -- если слово найдено
local end_string = arr1[j]:match("uopilot.-%s(.+)") -- находит всё что идет после uopilot
f3:write(arr2[i] .. " " .. end_string .."\r\n") -- пишем в файл 3333
break -- выходим из цикла
end
if k == #arr1 then -- если слово не было найдено
f2:write(arr2[i] .. "\r\n") -- пишем в файл 2222
end
end
end
f2:close() -- закрываем файл 2222
f3:close() -- закрываем файл 3333
--lua
-- не забываем указать нужный путь к файлам
local path_in1=[[C:\Users\abc\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текст
local path_in2=[[C:\Users\abc\Desktop\2222.txt]] -- путь к файлу, в котором надо найти текст
local path_out=[[C:\Users\abc\Desktop\3333.txt]] -- куда сохранить
local f1 = io.open(path_in1, "r") -- открываем файл 1111.txt для чтения
local f2 = io.open(path_in2, "r") -- открываем файл 2222.txt для чтения
local f3 = io.open(path_out, "wb") -- открываем файл 3333.txt для записи, если файла не существует он будет создан
local arr1, arr2 = {}, {}
for v in f1:lines() do -- читаем файл 1111.txt по строкам
arr1[#arr1+1]=v -- добавляем в массив
end
for v in f2:lines() do -- читаем файл 2222.txt по строкам
arr2[#arr2+1]=v -- добавляем в массив
end
f1:close() -- закрываем файл 1111
f2:close() -- закрываем файл 2222
f2 = io.open(path_in2, "wb") -- открываем файл 2222.txt для записи
for i=1, #arr2 do -- для всех строк файла 2222.txt
local k = 0
for j=1, #arr1 do -- для всех строк файла 1111.txt
local first_word = arr1[j]:match("[^%s]+") -- первое слово из строки
k = k + 1
if arr2[i]:match(first_word) then -- если слово найдено
local end_string = arr1[j]:match("uopilot.-%s(.+)") -- находит всё что идет после uopilot
f3:write(arr2[i] .. " " .. end_string .."\r\n") -- пишем в файл 3333
break -- выходим из цикла
end
if k == #arr1 then -- если слово не было найдено
f2:write(arr2[i] .. "\r\n") -- пишем в файл 2222
end
end
end
f2:close() -- закрываем файл 2222
f3:close() -- закрываем файл 3333
убрал из строки
f3:write(arr2[i] .. " " .. end_string .."\r\n") -- пишем в файл 3333
оставил так
f3:write(arr2[i] .."\r\n") -- пишем в файл 3333
записало как надо
спасибо ))
парни ,как можно этот код под lua настроить , что бы перезаписывал батник по поиску слов
filedelete (D:\uopilot\поиск.bat) // удалит файл
filedelete (D:\uopilot\11.txt) // удалит файл
write (D:\uopilot\поиск.bat FINDSTR /L "26.08.18" "text.txt" > "11") // создаст файл
wait 200
exec D:\uopilot\поиск.bat // запустит файл
end_script
--lua
filedelete ([[D:\uopilot\поиск.bat]]) -- удалит файл
filedelete ([[D:\uopilot\11.txt]]) -- удалит файл
local f = io.open([[D:\uopilot\поиск.bat]], "wb") -- открыть файл для записи
f:write([[FINDSTR /L "26.08.18" "text.txt" > "11"]] .."\r\n") -- записать
f:close() -- закрыть файл
exec ([[D:\uopilot\поиск.bat]]) -- запуск
--lua
filedelete ([[D:\uopilot\поиск.bat]]) -- удалит файл
filedelete ([[D:\uopilot\11.txt]]) -- удалит файл
local f = io.open([[D:\uopilot\поиск.bat]], "wb") -- открыть файл для записи
f:write([[FINDSTR /L "26.08.18" "text.txt" > "11"]] .."\r\n") -- записать
f:close() -- закрыть файл
exec ([[D:\uopilot\поиск.bat]]) -- запуск
в пилоте нет sleep. Только wait. В луа sleep есть в составе luasocket.
Требуется решить с виду простую задачу...есть 1 строка из данных разделенная символом(не принципиально каким можно заменить на любой). Примерно такого вида текст1 % text ^ text ? , текст2 % text ^ text ? ,
нам необходимо разделить ее на подстроки и вместо символов % ^ ? подставить значения которые берем из других массивов
log clear
log mode compact
set %arr [1 1] текст1 % text ^ text ? . текст2 % text ^ text ? . текст3 % text ^ text ? .
log %arr [1 1]
set delimiter '.' //устанавливаем делиметр что бы смогли получить строку и разбить на подстроки
init_arr %a %arr [1 1] //представляем ее в виде подстрок %a [1 1] %a [1 2] %a [1 3] %a [1 4] и т.д.
set delimiter ' '
set $sub1 % // указываем ваше слово
set $sub2 ^ // указываем ваше слово
set $sub3 ? // указываем ваше слово
set %b [1 2] 10 20 30 //подстановка вместо % числа из этой строки
set %c [1 3] 600г 555г 3кг //подстановка вместо ^ текста из этой строки
set %d [1 4] 18кг 9г 10т //подстановка вместо ? текста из этой строки
for #i 1 size(%a)
log нач строка %a [#i 1]
set #pos posEx($sub1, %b[#i])
set #pos posEx($sub2, %c[#i])
set #pos posEx($sub3, %d[#i])
//log подстановка значений в строку
//log %a[#i]
end_for
end_script
log clear
log mode compact
set %arr [1] текст1 % text ^ text ? . текст2 % text ^ text ? . текст3 % text ^ text ? .
set $a %arr [1]
init_arr %sub "%" "^" "?"
init_arr %b (1) "10 " "20 " "30 " //подстановка вместо % числа из этой строки
init_arr %b (2) 600г 555г 3кг //подстановка вместо ^ текста из этой строки
init_arr %b (3) 18кг 9г 10т //подстановка вместо ? текста из этой строки
for #i 1 size(%b)
for #j 1 size(%b[])
set $b %sub[#i] // что ищем
set $c %b[#i #j] // чем заменяем
set $a string_replace ($a $b $c) // замена
end_for
end_for
log $a
end_script
set $a текст1 % text ^ text ? . текст2 % text ^ text ? . текст3 % text ^ text ? .
set $a string_replace ($a "." "" all)
set delimiter ' '
init_arr %arr (1 6) $a
init_arr %a (1) 10 20 30
init_arr %b (1) 600г 555г 3кг
init_arr %c (1) 18кг 9г 10т
for #a 1 size(%arr)
set $a %arr[#a]
set $a string_replace ($a "%" "%a[1 #a]")
set $a string_replace ($a "^" "%b[1 #a]")
set $a string_replace ($a "?" "%c[1 #a]")
init_arr %result (#a) $a
log %result[#a]
end_for
end_script
1)заменить все русские буквы в тексте на нижний регистр, затем
2)найти в тексте все строки содержащие русские буквы и заменить первую русскую букву на заглавную?
Можно так сделать пилотом? А то notepad регистры с кириллицей не работают
apple
apple смартфон купить
apple СМАРТФОН КУПИТЬ
сМАртфон
<СМАРТФОН>
МОЖЕТ КУПИМ СМАРТФОН
apple
apple Смартфон купить
apple Смартфон купить
Смартфон
<Смартфон>
Может купим смартфон
--lua
log "clear" log "mode compact"
local path=[[C:\123.txt]] -- путь к файлу
local path2=[[C:\456.txt]] -- куда сохранить
-- таблица, в которой храним какую букву на какую меняем
local t={["А"]="а", ["Б"]="б", ["В"]="в", ["Г"]="г", ["Д"]="д", ["Е"]="е",
["Ё"]="ё", ["Ж"]="ж", ["З"]="з", ["И"]="и", ["Й"]="й", ["К"]="к", ["Л"]="л",
["М"]="м", ["Н"]="н", ["О"]="о", ["П"]="п", ["Р"]="р", ["С"]="с", ["Т"]="т",
["У"]="у", ["Ф"]="ф", ["Х"]="х", ["Ц"]="ц", ["Ч"]="ч", ["Ш"]="ш", ["Щ"]="щ",
["Ы"]="ы", ["Ь"]="ь", ["Ъ"]="ъ", ["Э"]="э", ["Ю"]="ю", ["Я"]="я"}
local t2={}
for i, v in pairs(t) do t2[v]=i end
local f = io.open(path, "r") -- открыть файл для чтения
if f then -- если файл открылся
local f_result = io.open(path2, "wb") -- открыть файл для записи
if f_result then -- если файл открылся
for v in f:lines() do -- прочитать файл по строкам
log(v)
v=string.gsub(v, "[а-яА-Я]", t) -- заменить все заглавные русские на строчные
v=string.gsub(v, "[а-яА-Я]", t2, 1) -- заменить первую строчную русскую букву на заглавную
log(v .. "\r\n")
f_result:write(v .. "\r\n") -- записать в файл
end
else
log ("Файл " .. path2 .. "не открылся")
end
f:close() -- закрыть файл
f_result:close() -- закрыть файл
else
log ("Файл " .. path .. " не найден")
end
--lua
log "clear" log "mode compact"
local path=[[C:\123.txt]] -- путь к файлу
local path2=[[C:\456.txt]] -- куда сохранить
-- таблица, в которой храним какую букву на какую меняем
local t={["А"]="а", ["Б"]="б", ["В"]="в", ["Г"]="г", ["Д"]="д", ["Е"]="е",
["Ё"]="ё", ["Ж"]="ж", ["З"]="з", ["И"]="и", ["Й"]="й", ["К"]="к", ["Л"]="л",
["М"]="м", ["Н"]="н", ["О"]="о", ["П"]="п", ["Р"]="р", ["С"]="с", ["Т"]="т",
["У"]="у", ["Ф"]="ф", ["Х"]="х", ["Ц"]="ц", ["Ч"]="ч", ["Ш"]="ш", ["Щ"]="щ",
["Ы"]="ы", ["Ь"]="ь", ["Ъ"]="ъ", ["Э"]="э", ["Ю"]="ю", ["Я"]="я"}
local t2={}
for i, v in pairs(t) do t2[v]=i end
local f = io.open(path, "r") -- открыть файл для чтения
if f then -- если файл открылся
local f_result = io.open(path2, "wb") -- открыть файл для записи
if f_result then -- если файл открылся
for v in f:lines() do -- прочитать файл по строкам
log(v)
v=string.gsub(v, "[а-яА-Я]", t) -- заменить все заглавные русские на строчные
v=string.gsub(v, "[а-яА-Я]", t2, 1) -- заменить первую строчную русскую букву на заглавную
log(v .. "\r\n")
f_result:write(v .. "\r\n") -- записать в файл
end
else
log ("Файл " .. path2 .. "не открылся")
end
f:close() -- закрыть файл
f_result:close() -- закрыть файл
else
log ("Файл " .. path .. " не найден")
end
рОгаЛИК
AppEarance
ПОЗитиф
Save as a screenshot
GameStart
I can not start the game right now.
Save UI location
Заметка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
Заметка
Whether the UI location is initialized
Reset layouts?
Что не переводит? Пилот перезапустите.
рОгаЛИК rtrt
AppEarance
ПОЗитиф
Save as a screenshot прИВет
GameStart
I can not start the game right now.
Save UI location
ЗамЕтка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
ЗамЕтка
Whether the UI location is initialized
Reset layouts?
load_array %a C:\1234.txt
set delimiter ' '
for #i 1 size(%a)
set $e %a[#i]
set $e trim($e)
set #s string_count(" " $e) + 1
for #j 1 #s
get word $a #j $e
set $a1 ord($a)
if_not $a1 > 64 and $a1 < 123
set $b string_lower($a)
set $c copy($b 1 1)
set $c1 string_upper($c)
set $b string_replace($b $c $c1)
set %a[#i #j] $b
else
set %a[#i #j] $a
end_if
end_for
end_for
save_array %a C:\12345.txt
end_script
Рогалик rtrt
AppEarance
Позитиф
Save as a screenshot Привет
GameStart
I can not start the game right now
Save UI location
Заметка
Whether to save the UI location
Do you want to save the layout?
Initialize UI location
Заметка
Whether the UI location is initialized
Reset layouts?
Upd.
Насчет первого - походу эта команда считает максимальное количество элементов в строках всего массива, а не в заданной строке...
Насчет второго - по пробелам пока непонятно, но нашел временное решение:
load_array %a C:\1234.txt
set delimiter ' '
save_array %clear C:\12345.txt
for #i 1 size(%a)
set $e %a[#i]
set $e trim($e)
set #s string_count(" " $e) + 1
for #j 1 #s
get word $a #j $e
set $a1 ord($a)
if_not $a1 > 64 and $a1 < 123
set $b string_lower($a)
set $c copy($b 1 1)
set $c1 string_upper($c)
set $b string_replace($b $c $c1)
set %a[#i #j] $b
else
set %a[#i #j] $a
end_if
end_for
write ( C:\12345.txt %a[#i] \r\n)
end_for
end_script
Нужен скрипт который найдет все слова в текстовом документе которые в таких скобках {} [], и запишет эти слова в отдельный файл, удалив дубликаты повторяющиеся.
пример текста:
Удаление [STRING]. <br> Вы действительно хотите удалить выбранный элемент?
.Получено [ITEM] x [INT].
[INT] {STR_ICON = GOLD}
Стоимость [INT] {STR_ICON = GOLD}
цена [прайс]
интерфейс {СТР = ЗОЛОТО}
[STRING] получил [ITEM].
должно получиться в новом файле:
[STRING]
[ITEM]
[INT]
{STR_ICON = GOLD}
[прайс]
{СТР = ЗОЛОТО}
--lua
log "clear" log "mode compact"
local path=[[C:\123.txt]] -- путь к файлу
local path2=[[C:\456.txt]] -- куда сохранить
local arr={}
local f = io.open(path, "r") -- открыть файл для чтения
if f then -- если файл открылся
local f_result = io.open(path2, "wb") -- открыть файл для записи
if f_result then -- если файл открылся
for v in f:lines() do -- прочитать файл по строкам
for s in v:gmatch("%[.-%]") do arr[#arr+1]=s end -- поиск слов в []
for s in v:gmatch("%{.-%}") do arr[#arr+1]=s end -- поиск слов в {}
end
local flags = {}
for i=1, #arr do
if not flags[arr[i]] then
f_result:write(arr[i] .. "\r\n") -- записать в файл
flags[arr[i]] = true
end
end
else
log ("Файл " .. path2 .. "не открылся")
end
f:close() -- закрыть файл
f_result:close() -- закрыть файл
else
log ("Файл " .. path .. " не найден")
end
--lua
log "clear" log "mode compact"
local path=[[C:\123.txt]] -- путь к файлу
local path2=[[C:\456.txt]] -- куда сохранить
local arr={}
local f = io.open(path, "r") -- открыть файл для чтения
if f then -- если файл открылся
local f_result = io.open(path2, "wb") -- открыть файл для записи
if f_result then -- если файл открылся
for v in f:lines() do -- прочитать файл по строкам
for s in v:gmatch("%[.-%]") do arr[#arr+1]=s end -- поиск слов в []
for s in v:gmatch("%{.-%}") do arr[#arr+1]=s end -- поиск слов в {}
end
local flags = {}
for i=1, #arr do
if not flags[arr[i]] then
f_result:write(arr[i] .. "\r\n") -- записать в файл
flags[arr[i]] = true
end
end
else
log ("Файл " .. path2 .. "не открылся")
end
f:close() -- закрыть файл
f_result:close() -- закрыть файл
else
log ("Файл " .. path .. " не найден")
end
저급 가죽 툴팁
A raw material needed to make various novice leather items. Can be obtained by hunting.
일반 가죽
Apprentice Leather
일반 가죽 툴팁
A raw material needed to make various apprentice leather items. Can be obtained by hunting.
중급 가죽
Intermediate Leather
중급 가죽 툴팁
A raw material needed to make various intermediate leather items. Can be obtained by hunting.
상급 가죽
Professional Leather
상급 가죽 툴팁
A raw material needed to make various professional leather items. Can be obtained by hunting.
최상급 가죽
Master Leather
A raw material needed to make various novice leather items. Can be obtained by hunting.
Apprentice Leather
A raw material needed to make various apprentice leather items. Can be obtained by hunting.
Intermediate Leather
A raw material needed to make various intermediate leather items. Can be obtained by hunting.
Professional Leather
A raw material needed to make various professional leather items. Can be obtained by hunting.
Master Leather
저급 가죽 툴팁
일반 가죽
일반 가죽 툴팁
중급 가죽
중급 가죽 툴팁
상급 가죽
상급 가죽 툴팁
최상급 가죽
load_array %a C:\1234.txt
for #i 1 eval(size(%a) / 2 + 1)
delete_array %a -#i
end_for
save_array %a C:\12345.txt
end_script
load_array %a C:\1234.txt
for #i 1 eval(size(%a) / 2 + 1)
delete_array %a -#i
end_for
save_array %a C:\12345.txt
end_script
А можно автопереводчик замутить? Есть тхт файл с английскими словами в столбик, нужно чтобы скрипт:
1) копировал в буфер по 5 строк
2) копировал из буфера в окно https://translate.google.ru/?hl=ru&tab=TT
3) копировал в буфер переведенный текст
4) заменял переведенный текст в файле, или создавал новый файл с переведенным текстом.
man
woman
body
head
shoulder
arm
hand
elbow
chest
stomach
back
bottom
thigh
waist
leg
knee
calf
foot
ankle
heel
thumb
ring finger
middle finger
index finger
указательный палец
fingernail
shin
load_array %a C:\1234.txt
set #j 1
for #i 1 size(%a)
set $b %a[#i]
repeat eval(string_count("[" $b) + string_count("}" $b))
set #a posex("[" $b)
set #a1 posex("]" $b)
set #b posex("{" $b)
set #b1 posex("}" $b)
if #a != 0
set $e copy($b #a eval(#a1 - #a + 1))
if posex($e $d) < 1
set $d $d $e
set %c[#j] $e
set #j #j +1
end_if
end_if
if #b != 0
set $e copy($b #b eval(#b1 - #b + 1))
if posex($e $d) < 1
set $d $d $e
set %c[#j] $e
set #j #j +1
end_if
end_if
set $b delete($b #a eval(#a1 + 1))
set #b posex("{" $b)
set #b1 posex("}" $b)
set $b delete($b #b eval(#b1 + 1))
end_repeat
end_for
save_array %c C:\12345.txt
end_script
set $string "интерфейс {СТР = ЗОЛОТО}" // строка
set $regexp "\{.+?\}" // найти текст в фигурных скобках
set #n regexp (#position $hitstring $string $regexp)
if #n = 1
log Позиция #position $hitstring
end_if
end_script
//открыть страницу яндекс переводчика в отдельном окне.
load_array %a C:\1234.txt
set %l [1] 985 420 // координаты внутри поля ввода
set %r [1] 1318 333 // координаты внутри поля результата
set workwindow findwindow(Яндекс.Переводчик)
showwindow workwindow
left %l[1 1] %l[1 2]
for #i 1 size(%a)
set $b $b %a[#i]
end_for
sendex $b
wait 3000
kleft %r[1 1] %r[1 2]
double_kleft %r[1 1] %r[1 2]
wait 150
sendex ^c
get clipboard $c
init_arr %b (1 1) $c
save_array %b C:\12345.txt
end_script
set $string "интерфейс {СТР = ЗОЛОТО}" // строка
set $regexp "\{.+?\}" // найти текст в фигурных скобках
set #n regexp (#position $hitstring $string $regexp)
if #n = 1
log Позиция #position $hitstring
end_if
end_script
set $regexp "\{.+?\}"
"\[.?\]"
"\[.+?\]"
Видимо, мне нужно понять, что такое жадный / нежадный : )
Исходя из этого примера, я понял так:
Нежадный - начав поиск нужных символов, остановится, наткнувшись на первой же "]", и не продолжит читать всю строку до конца.
Жадный - начав копировать нужные символы, не остановится на первой "]", а прочитает сначала всю строку до конца, что бы попытаться найти самую последнюю "]".
Верно я понимаю?
set linedelay 0
set $sub ywf // указываем ваше слово
load_array %arr text.txt
set #sizeArr size(%arr)
for #i 1 #sizeArr 1
set #pos posEx($sub, %arr[#i])
if #pos > 0
log %arr[#i]
end_if
end_for
set $sub "Яблоко" // что искать
set $string "Строка, в которой есть слово Яблоко" // где искать
set #n regexp (#pos $hitstring $string $sub)
if #n = 1
log Позиция слова: #pos
else
log Не найдено
end_if
end_script
Попробовал из файла загрузить находит чисто первре слово, но у меня немного другая задача: нужно найти слово в блокноте и показать номер строки, если это слово встречается несколько раз вывести все его позиции.
так же голову ломаю над вторым скриптом:
И к примеру нужен перебор искомых значений для примера от 1 до 100 то есть сперва ищем число 1 и выводим номера строк где она встречается. Затем ищем 2 и выводим номера строк. Важно что бы 1 это было как 1 а не 11, 18 или 21, 41 и тому подобное
к примеру такой будет тексовик
log clear
log mode compact
set $regexp "\b1\b" // что искать, 1 в данном случае (\b означает граница слова)
set $string "1 2 11 18 21 41 3 4 5 1 6 7 8 1 9" // где искать
set #pos 0
set #n regexp (#position $hitstring $string $regexp)
while #n = 1
set #pos #pos + #position
log Позиция: #pos
set #position #position + size($hitstring) - 1
set $string delete($string 1 #position)
set #n regexp (#position $hitstring $string $regexp)
end_while
End_script
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 7 8 13 15 17 19 23 24 28
4 7 8 13 14 16 18 23 25 26 27 29 30
5 6 13 14 15 19 20 21 22 23 26 27 32
3 4 5 6 8 9 17 18 20 40 53 60 61
1 2 7 8 9 18 23 25 28 30 40 41 42
3 5 6 13 14 17 32 40 45 46 47 48 49
2 5 8 15 20 24 26 27 28 29 43 50 51
5 8 9 28 40 43 48 53 54 55 56 57 165
1 2 8 9 12 13 15 18 41 60 61 62 63
5 6 8 12 17 18 60 61 62 63 65 67 68
1 2 4 8 9 12 14 18 60 61 64 65 66
log clear
set #ot 20 // начало поиска
set #do 35 // конец поиска
load_array %a C:\Users\user\Desktop\888.txt // путь к файлу с текстом для поиска
set delimiter ' '
for #i #ot #do 1
set $regexp string_replace("\b #i \b" " " "")
for #j 1 size(%a)
set #n regexp (#pos $j %a[#j] $regexp)
if #n > 0
set $t Insert("[ #j ]" $t eval(size($t) + 1))
end_if
end_for
if $t = ""
set $t "[ Не найдено ]"
end_if
log #i найдено в строках: $t
set $t ""
end_for
End_script
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 7 8 13 15 17 19 23 24 28
4 7 8 13 14 16 18 23 25 26 27 29 30
5 6 13 14 15 19 20 21 22 23 26 27 32
3 4 5 6 8 9 17 18 20 40 53 60 61
1 2 7 8 9 18 23 25 28 30 40 41 42
3 5 6 13 14 17 32 40 45 46 47 48 49
2 5 8 15 20 24 26 27 28 29 43 50 51
5 8 9 28 40 43 48 53 54 55 56 57 165
1 2 8 9 12 13 15 18 41 60 61 62 63
5 6 8 12 17 18 60 61 62 63 65 67 68
1 2 4 8 9 12 14 18 60 61 64 65 66
log clear
set #ot 20 // начало поиска
set #do 35 // конец поиска
load_array %a C:\Users\user\Desktop\888.txt // путь к файлу с текстом для поиска
set delimiter ' '
for #i #ot #do 1
set $regexp string_replace("\b #i \b" " " "")
for #j 1 size(%a)
set #n regexp (#pos $j %a[#j] $regexp)
if #n > 0
set $t Insert("[ #j ]" $t eval(size($t) + 1))
end_if
end_for
if $t = ""
set $t "[ Не найдено ]"
end_if
log #i найдено в строках: $t
set $t ""
end_for
End_script
log clear
set #ot 20 // начало поиска
set #do 35 // конец поиска
load_array %a C:\Users\user\Desktop\888.txt // путь к файлу с текстом для поиска
set delimiter ' '
log clear
log mode compact
for #i #ot #do 1
set $regexp \b #i \b
set $regexp string_replace($regexp " " "" "all")
log Искомое число: #i
for #j 1 size(%a)
set #pos 0
set $string %a[#j]
set #n regexp (#position $hitstring $string $regexp)
while #n = 1
set #pos #pos + #position
log Строка #j : %a[#j] Позиция числа: #pos
set #position #position + size($hitstring) - 1
set $string delete($string 1 #position)
set #n regexp (#position $hitstring $string $regexp)
end_while
end_for
log
end_for
End_script
log clear
set #ot 20 // начало поиска
set #do 35 // конец поиска
load_array %a C:\Users\user\Desktop\888.txt // путь к файлу с текстом для поиска
set delimiter ' '
for #i #ot #do 1
set $regexp "\b #i \b"
set $regexp string_replace($regexp " " "" "all")
for #j 1 size(%a)
set #n regexp (#pos $j %a[#j] $regexp)
if #n > 0
set $t Insert("[ #j ]" $t eval(size($t) + 1))
end_if
end_for
if $t = ""
set $t "[ Не найдено ]"
end_if
log #i найдено в строках: $t
set $t ""
end_for
End_script
log clear
set #ot 20// начало поиска
set #do 35 // конец поиска
load_array %a C:\Users\user\Desktop\888.txt
set delimiter ' '
for #i #ot #do 1
set %result indexOf ( %a (#i) )
for #j 1 size(%result)
sort_array %result 1
set $t Insert("[ %result[#j 1] ]" $t eval(size($t) + 1))
end_for
if $t = ""
set $t "[ Не найдено ]"
end_if
log #i найдено в строках: $t
set $t ""
end_for
End_script
Скрипт где мы делали подстановку значений вместо символов. А как реализовать загрузку данных из текстовика? где в файле:
[1] Строка где будем делать замену(подстановку). вид ее:
текст1 % text ^ text ? текст2 % text ^ text ? текст3 % text ^ text ?
[2] текст подстановки вместо % числа из этой строки. вид ее: 1 2 3
[3] текст подстановки вместо ^ текста из этой строки. вид ее: a b c
[4] текст подстановки вместо ? текста из этой строки. вид ее: а б в
log clear
log mode compact
load_array %arr C:\10.txt
//set %arr [1 ] текст1 % text ^ text ? . текст2 % text ^ text ? . текст3 % text ^ text ? .
set $a %arr [1 1]
init_arr %sub "@" "^" "?"
init_arr %b (1) %arr [2] //подстановка вместо % числа из этой строки
init_arr %b (2) %arr [3] //подстановка вместо ^ текста из этой строки
init_arr %b (3) %arr [4] //подстановка вместо ? текста из этой строки
for #i 1 size(%b)
for #j 1 size(%b[])
set $b %sub[#i] // что ищем
set $c %b[#i #j] // чем заменяем
set $a string_replace ($a $b $c) // замена
end_for
end_for
//log $a
filedelete (C:\10.txt) // удалит файл
write (C:\10.txt $a ) // создаст файл(перезапишет файл)
//save_array $a C:\123.txt
end_script
Как на Lua заменять фразы, или «набор слов или слово в между этих скобок» или "набор слов или слово между этих скобок"?
--lua
-- Ищем фразы из файла и меняем на свои
local file= io.open([[C:\1.txt]], "r") -- файл с текстом
local result_file = io.open([[C:\2.txt]], "w") -- куда сохранить результат
local t={}
t["UO Pilot"]="[url=https://forum.uokit.com/]Текст[/url]"
t["«Перо феникса»"]="[url=https://forum.uokit.com/]«Текст Текст»[/url]"
t['"Перо феникса 2"']="[B][url=https://forum.uokit.com/]Текст Текст 2[/url][/B]"
t["Привет мир"]="Дарова пацаны!"
if file and result_file then -- если файлы открылись
for v in file:lines() do
result_file:write(string.gsub(v, '".+"', t).."\r") -- поиск и замена текста из таблицы 't'
end
file:close()
result_file:close()
else
end
--lua
--Обробатываем файл
local file= io.open([[C:\2.txt]], "r") -- файл с текстом
local result_file = io.open([[C:\3.txt]], "w") -- куда сохранить результат
if file and result_file then -- если файлы открылись
for v in file:lines() do
result_file:write(string.gsub(v, '<p style="text-align:center">', '').."\r") -- поиск и замена(удаление) текста
--result_file:write(string.gsub(v, " ", "").."\r")
--result_file:write(string.gsub(v, '< title="Увеличить изображение"', '').."\r")
--result_file:write(string.gsub(v, " </p>", "").."\r")
--result_file:write(string.gsub(v, "</p>", "").."\r")
--result_file:write(string.gsub(v, '%<[Ii][Mm][Gg].[Aa][Ll][Tt]%="%S+"', '').."\r")
--result_file:write(string.gsub(v, '<[Aa].[Hh][Rr][Ee][Ff]%=".+">', '').."\r")
--result_file:write(string.gsub(v, 'style%="%S+.+">', '').."\r")
--result_file:write(string.gsub(v, "<strong>", "[B]").."\r")
--result_file:write(string.gsub(v, "</strong>", "[/B]").."\r")
end
file:close()
result_file:close()
else
end
--lua
local f = io.open([[C:\qwe.txt]], "rb") -- открыть файл для чтения
local f2 = io.open([[C:\qwe_result.txt]], "wb") -- открыть файл для записи
if f and f2 then -- если файлы открылись
local s = f:read("*a") -- прочитать весь файл
f:close() -- закрыть файл
log (s) -- содержимое файла
-- тут заменяем что нужно
f2:write(s) -- пишем в другой файл
f2:close() -- закрыть файл
end
--lua
local f = io.open([[C:\qwe.txt]], "rb") -- открыть файл для чтения
local f2 = io.open([[C:\456.txt]], "wb") -- открыть файл для записи
if f and f2 then -- если файлы открылись
local s = f:read("*a") -- прочитать весь файл
f:close() -- закрыть файл
log (s) -- содержимое файла
-- тут заменяем что нужно
-- Сперва удаляем как обычный текст (действия которые можно делать "одновременно" в один прогон массива файла)
</div>
</script>
</a>
<p style="text-align:center">
<p>
</p>
-- Замена(по-прежнему в исходном первой прогонке массива)
<strong> на [B]
</strong> на [/B]
--удалить текст по маске по уже обработаному тексту массива(перезапись после каждой маски)
<div.+>
<script.+>
<img.alt\="\S+"
class="\S+"
style=".+">
<a.href\="\S+"
-- замена после предыдущих правок в тексте(массиве)
-- удаляем и перезаписываем файл
title="Увеличить изображение">
<img alt=""
--
src=" на [img] ----меняем как обычный текст после замены перезаписываем массив
".$ на [/img] --замена по регулярному вырожению
--конечная правка, удаляем символы
>
--замена текста на свой,например из таблицы(которой пока еще нет, но имет примерный вид):
«Арена Клинков» меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Арена Клинков»[/url]
"Арена Клинков" меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Арена Клинков»[/url]
«Тайны старого замка» меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Тайны старого замка»[/url]
"Тайны старого замка" меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Тайны старого замка»[/url]
-- и далее в таком же духе
f2:write(s) -- пишем в другой файл
f2:close() -- закрыть файл
end
Не забываем экранировать спецсимволы, т. е. ставить перед ними %.
Принцип такой:
--lua
local f = io.open([[C:\1.txt]], "rb") -- открыть файл для чтения
local f2 = io.open([[C:\2.txt]], "wb") -- открыть файл для записи
log "clear" log "mode compact"
if f and f2 then -- если файлы открылись
local s, n = f:read("*a") -- прочитать весь файл
f:close() -- закрыть файл
-- тут заменяем что нужно
s, n = s:gsub('<%/div>', "")
log("Количество замен: " .. n)
s, n = s:gsub('<%/script>', "")
log("Количество замен: " .. n)
s, n = s:gsub('<p style="text%-align:center">', "")
log("Количество замен: " .. n)
s, n = s:gsub('<strong>', "[B]")
log("Количество замен: " .. n)
-- остальное аналогично
f2:write(s) -- пишем в другой файл
f2:close() -- закрыть файл
end
А как сделать замену с вариантами? например:
s, n = s:gsub('«Лотерее маунта»|«Лотерея Маунта»|"Лотерее маунта"|"Лотерея Маунта"', "[url=https://ссылка/threads/lotereja-maunta.78168/]«Лотерее маунта»[/url]")
--lua
log "clear" log "mode compact"
local s=[[Какой-то текст "Лотерея Маунта" ещё текст]]
s = s:gsub('[«%"]Лотере[ея] [Мм]аунта[»%"]', "[url=https://ссылка/threads/lotereja-maunta.78168/]«Лотерее маунта»[/url]")
log (s)
--lua
log "clear" log "mode compact"
local s=[[Какой-то текст "Лотерея Маунта" ещё текст]]
s = s:gsub('[«%"]Лотере[ея] [Мм]аунта[»%"]', "[url=https://ссылка/threads/lotereja-maunta.78168/]«Лотерее маунта»[/url]")
log (s)
А как быть если нужно заменить текст в определённой папке и ее подпапках на Lua?
--lua
local f = io.open([[C:\qwe.txt]], "rb") -- открыть файл для чтения
local f2 = io.open([[C:\456.txt]], "wb") -- открыть файл для записи
if f and f2 then -- если файлы открылись
local s = f:read("*a") -- прочитать весь файл
f:close() -- закрыть файл
log (s) -- содержимое файла
-- тут заменяем что нужно
-- Сперва удаляем как обычный текст (действия которые можно делать "одновременно" в один прогон массива файла)
</div>
</script>
</a>
<p style="text-align:center">
<p>
</p>
-- Замена(по-прежнему в исходном первой прогонке массива)
<strong> на [B]
</strong> на [/B]
--удалить текст по маске по уже обработаному тексту массива(перезапись после каждой маски)
<div.+>
<script.+>
<img.alt\="\S+"
class="\S+"
style=".+">
<a.href\="\S+"
-- замена после предыдущих правок в тексте(массиве)
-- удаляем и перезаписываем файл
title="Увеличить изображение">
<img alt=""
--
src=" на [img] ----меняем как обычный текст после замены перезаписываем массив
".$ на [/img] --замена по регулярному вырожению
--конечная правка, удаляем символы
>
--замена текста на свой,например из таблицы(которой пока еще нет, но имет примерный вид):
«Арена Клинков» меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Арена Клинков»[/url]
"Арена Клинков" меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Арена Клинков»[/url]
«Тайны старого замка» меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Тайны старого замка»[/url]
"Тайны старого замка" меняем на [url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Тайны старого замка»[/url]
-- и далее в таком же духе
f2:write(s) -- пишем в другой файл
f2:close() -- закрыть файл
end
--lua
path=[[C:\2\1\7]] -- Путь к папке.
require "luaposh";PScode('void',{[[#}
function text($arr){#}
[string]$a=(Get-Content $arr.fullname -encoding UTF8)-join "`r`n"
### Тэги, которые нужно удалить
$ex=@(
'<p style="text-align:center">'," ",
'< title="Увеличить изображение">','<p ',
"</p>",'\<[Ii][Mm][Gg].[Aa][Ll][Tt]\="\S+"',
'<[Aa].[Hh][Rr][Ee][Ff]\=".+?">','</a>','<p>',
'<script.+>','<div.+>','<img alt=""',
'</script>','</div>','class="\S+"','style=".+">'
);$ex|ForEach-Object{$a=$a -replace $_}
### Замена тэгов
$a=$a -replace '<strong>', '[B]' -replace '</strong>', '[/B]'
$a=$a -replace 'src\="', '[img]' -replace '".(?=\r\n)', '[/img]'
### Замена данных
$a=$a -replace '«Арена Клинков»',
'[url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Арена Клинков»[/url]'
$a=$a -replace '«Тайны старого замка»',
'[url=https://ссылка.com/как_и_любая_обычная_ссылка_на_ресурс/]«Тайны старого замка»[/url]'
#...
### Сохранить результат
$a -split "`r`n"|Out-File $($arr.DirectoryName+"\new"+$arr.name)
}
Get-ChildItem $input '*.txt' -recurse|ForEach-Object{text $_}
]]},path)
Подозреваю что неверно дергаю переменные функции...
--lua
log "clear" log "mode compact"
local path = [[C:\1]] -- путь к папке
local resultarray, count = dir (path, "*.smali") -- получить список всех файлов в формате 'wav', включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then -- если файлы найдены
for i=1, #resultarray do
log (resultarray[i][1]) -- показать в логе список
local file1 = io.open([[resultarray[i][1]]], "rb") -- Открыть файл для чтения
local file2 = io.open([[C:\NEW.smali]], "wb") -- Куда будем записывать результат(файл создастся сам)
if file1 and file2 then -- если файлы открылись
local s, n = file1:read("*a") -- прочитать весь файл
file1:close() -- закрыть файл
-- заменяем текста
s, n = s:gsub('"Action"', '"Экшены"') log("Экшены - замен: " .. n)
s, n = s:gsub('"Adventure"', '"Приключения"') log("Приключения - замен: " .. n)
file2:write(s) -- пишем в другой файл
file2:close() -- закрыть файл
filedelete ([[resultarray[i][1]]]) -- удаляем старый файл
filecopy ([["C:\NEW.smali"]], [["resultarray[i][1]"]]) --копируем новый файл в папку с нужным именем и расширением
end
end
end
filecopy ([["C:\NEW.smali"]], [["resultarray[i][1]"]]) --копируем новый файл в папку с нужным именем и расширением
log([["resultarray[i][1]"]])
log(resultarray[i][1])
--lua
log "clear" log "mode compact"
local path = [[C:\1]] -- путь к папке
local resultarray, count = dir (path, "*.txt") -- получить список всех файлов в формате 'wav', включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then -- если файлы найдены
for i=1, #resultarray do
log (resultarray[i][1]) -- показать в логе список
local file1 = io.open(resultarray[i][1], "rb") -- Открыть файл для чтения
local file2 = io.open([[C:\NEW.txt]], "wb") -- Куда будем записывать результат(файл создастся сам)
if file1 and file2 then -- если файлы открылись
local s, n = file1:read("*a") -- прочитать весь файл
file1:close() -- закрыть файл
-- заменяем текста
s, n = s:gsub('"Action"', '"Экшены"') log("Экшены - замен: " .. n)
s, n = s:gsub('"Adventure"', '"Приключения"') log("Приключения - замен: " .. n)
file2:write(s) -- пишем в другой файл
file2:close() -- закрыть файл
filedelete (resultarray[i][1]) -- удаляем старый файл
filecopy ([["C:\NEW.txt"]], resultarray[i][1]) --копируем новый файл в папку с нужным именем и расширением
filedelete ([["C:\NEW.txt"]])
end
end
end
" " это код пробела и поэтому если печатовать как обычный текст то он при обработке заменяется на соответствующий символ.
Так же к ним относятся такие коды(html) пустоты:
&# 4448;
&# 160;
&# 0160;
&# 12288;
&# 10;
&# 13;
&# 12;
&# 8195;
&# 8194;
и прочие
...
Что косательно пропажи кода то его нужно в данном случае публиковать без пред просмотра.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)