Добрый день форумчане, надеюсь мне поможете)) Есть документ, в нем 600 строк и нужно найти в нем одно слово, может и повторяться. Мне нужно чтобы выводились все строки найденные с этим словом. Уже 2-ой день пыхчу и не могу найти(
Цитата(dontail @ 1.4.2018, 15:12)
Добрый день форумчане, надеюсь мне поможете)) Есть документ, в нем 600 строк и нужно найти в нем одно слово, может и повторяться. Мне нужно чтобы выводились все строки найденные с этим словом. Уже 2-ой день пыхчу и не могу найти(
Notepad ++ же)))
Цитата(dron4938 @ 1.4.2018, 18:16)
Notepad ++ же)))
у меня через 9 дней экзамен) нужно скрытно чтоб искал
load_array %arr C:\текст\55.txt
set $arrForIf %arr [1] ////// как я понял - здесь он берет только первую строку, мне нужно чтоб охватывал все 600+ и показывал все в которых нашел поочередно.
if 1 >= $arrForIf
msg !!!
end_if
(один из вариантов которые я пытался. еще с "indexof" пытался, но не получается)
Так сойдет?
Скачать архив, распаковать, запустить файл "Поиск строк с определенными словами.bat"
Создастся файл result.txt с найденными строками
===================================
параметры:
FINDSTR /L "dontail dron4938" "text.txt" > "result.txt"
dontail dron4938 - вместо этого свои слова которые надо искать
"text.txt" - имя файла в котором надо искать
"result.txt" - имя файла который создастся после поиска с найденными строками
Цитата(dron4938 @ 1.4.2018, 19:10)
Так сойдет?
FINDSTR /L "dontail dron4938" "text.txt" > "result.txt"
dontail dron4938 - вместо этого свои слова которые надо искать
"text.txt" - имя файла в котором надо искать
"result.txt" - имя файла который создастся после поиска с найденными строками
Знаешь, ты мне поддал новую идею. Спасибо тебе. Теперь только реализовать осталось вроде)))
теперь застрял на том - как удалить в батнике прошлые данные чтобы ввести новый поиск)?
Цитата(dontail @ 1.4.2018, 16:34)
теперь застрял на том - как удалить в батнике прошлые данные чтобы ввести новый поиск)?
Код
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
//создастся файл bat со строкой (FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
end_script
Цитата(dron4938 @ 1.4.2018, 19:46)
Код
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
//создастся файл bat со строкой (FINDSTR /L "dontail dron4938" "text.txt" > "result.txt")
end_script
Есть вариант не создавать новый, а менять его?
Хотя это можно решить удалением файла, а затем его снова создавать. Спасибо еще раз за помощь)
Цитата(dontail @ 1.4.2018, 17:00)
Есть вариант не создавать новый, а менять его?
Хотя это можно решить удалением файла, а затем его снова создавать. Спасибо еще раз за помощь)
одинаковое имя файла, просто заменит старый
Цитата(dron4938 @ 1.4.2018, 20:04)
одинаковое имя файла, просто заменит старый
Он не заменяет, а дописывает еще текст поверх старого
Цитата(dontail @ 1.4.2018, 17:06)
Он не заменяет, а дописывает еще текст поверх старого
Код
filedelete (C:\123abc.bat) // удалит файл
write (C:\123abc.bat FINDSTR /L "dontail dron4938" "text.txt" > "result.txt") // создаст файл
wait 200
exec C:\123abc.bat // запустит файл
end_script
DarkMaster
1.4.2018, 18:44
Код
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
Не запускал, но смысл примерно такой.
Цитата(DarkMaster @ 1.4.2018, 21:44)
Код
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
Не запускал, но смысл примерно такой.
Отлично работает, а можно выставить между сообщениями время? я хочу его через Hint выводить, а так он разом выводит все
Цитата(dontail @ 1.4.2018, 22:17)
Отлично работает, а можно выставить между сообщениями время? я хочу его через Hint выводить, а так он разом выводит все
я плыву уже))) 2-ой день скрипт делаю и бошка не варит)
Код
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
Спасибо большое ребят, теперь он полностью закончен)
DarkMaster
1.4.2018, 19:49
Цитата
if 853 >= %arr[#i] ///// 853 последняя пустая строка
end_script
end_if
выкинуть
после
end_for
поставить:
end_script
еще такой вопрос - как сохранить в "горячих клавишах" пуск/стоп скрипта, чтобы при переносе на другой комп он сохранялся
Все настройки хранятся в uopilot.ini. Т. е. на другой комп надо перекинуть этот файл.
Цитата(cirus @ 1.4.2018, 23:31)
Все настройки хранятся в uopilot.ini. Т. е. на другой комп надо перекинуть этот файл.
А где именно и что менять?)
Цитата
А где именно и что менять?)
В пилоте, вкладка 'Ещё', кнопка 'Edit HotKeys'.
Цитата(cirus @ 2.4.2018, 0:05)
В пилоте, вкладка 'Ещё', кнопка 'Edit HotKeys'.
При перезагрузке программы она не сохраняется
UPD нашел в настройках скрипта - OTHER - сохранять настройки при выходе
Кто нибудь может подсказать - можно ли создать текстовый документ размером 600+ строк? Просто сейчас не дома, проверить возможности нет. Заранее спасибо)
Код
for #i 1 600
set %a[#i] Строка номер #i
end_for
save_array %a C:\textfile.txt
end_script
Цитата(cirus @ 2.4.2018, 16:33)
Код
for #i 1 600
set %a[#i] Строка номер #i
end_for
save_array %a C:\textfile.txt
end_script
не совсем понял
DarkMaster
2.4.2018, 18:24
Что именно не понятно? Вы просили создание документа из 600+ строк - вам его создали.
Цитата(DarkMaster @ 2.4.2018, 21:24)
Что именно не понятно? Вы просили создание документа из 600+ строк - вам его создали.
как можно с этим кодом создать текст на 600 строк(все 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
сделал что то наподобие этого, есть ли варианты как нибудь упростить и сделать его быстрее?
Вопросы и ответы пилот должен придумать?
DarkMaster
3.4.2018, 9:33
Цитата
Вопросы и ответы пилот должен придумать? smile.gif
Ща чего-нибудь на генериурем) Может заодно пару фундаментальных проблем ии решим =)
Всем большое спасибо за помощь и за ваше терпение)
dron4938
31.5.2018, 12:07
есть 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=
2ой содержит такие строки:
Код
Eyebrow Arch Horizontal Position
Eyebrow Tail Vertical Position
Eyebrow Curvature
Nose Vertical Position
Nose Size
Nose Projection
Nose Bridge Shape
нужно объединить оба файла, добавив в 1ый после знаков = строки из 2ого файла.
должно получиться так:
Код
$*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
dron4938
31.5.2018, 13:00
Цитата(cirus @ 31.5.2018, 12:54)
Код
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
Спасибо
DarkMaster
31.5.2018, 13:07
Из-за спецсимволов могут быть порблемы. Чтобы их избежать можно сделать так:
Код
--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()
dron4938
31.5.2018, 14:52
Цитата(cirus @ 31.5.2018, 12:54)
Код
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
Файлы состоят из 25тысяч строк. Запустил скрипт, работает уже минут 10. Результата стоит ждать? Или это слишком большие массивы?
Цитата(DarkMaster @ 31.5.2018, 13:07)
Из-за спецсимволов могут быть порблемы. Чтобы их избежать можно сделать так:
Код
--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()
спс, сработало за 5 сек
DarkMaster
31.5.2018, 15:27
Цитата
Файлы состоят из 25тысяч строк. Запустил скрипт, работает уже минут 10. Результата стоит ждать? Или это слишком большие массивы?
Цитата
спс, сработало за 5 сек
Это называтся новый и старый скриптовый движок в сравнении =)
dron4938
31.5.2018, 18:56
как удалить все знаки = из текста файла, а затем следующим действием выставить знаки = в начале каждой строки?
Код
=Горящие Пески-Песчаный =Причал
Горящие Пески-Азуресанд
=Курия =- 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
DarkMaster
31.5.2018, 19:10
Код
--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()
dron4938
31.5.2018, 20:06
Цитата(DarkMaster @ 31.5.2018, 19:10)
Код
--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 >
< /Я >
</Я >
< /Я>
</Я>
</ Я>
DarkMaster
1.6.2018, 22:40
было-стало приведите пример.
DarkMaster
1.6.2018, 22:54
Код
--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()
Цитата(DarkMaster @ 1.6.2018, 22:54)
Код
--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>
тобеж нужна функция как в нотепаде замена текста, там это отлично работает.
т.е. там можно сделать единичную замену текста например </я> заменить </i> во всем документе.
а нужно чтобы все заданные значения </я> </ i> < /i> </I> заменялись на </i> во всем документе
DarkMaster
2.6.2018, 22:09
Т.е. пробелы нужно убрать? А я их наоборот сохранял всеми силами) Ща
Код
--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()
Цитата(DarkMaster @ 2.6.2018, 22:09)
Т.е. пробелы нужно убрать? А я их наоборот сохранял всеми силами) Ща
Код
--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()
не робит.в результате чистый документ выходит
Цитата
не робит.в результате чистый документ выходит
Всё работает.
Цитата(cirus @ 2.6.2018, 22:18)
Всё работает.
пример проще:
Код
тумба
стол
стул
ящик
чемодан
рыба
азбука
как в этом тексте заменить слово
чемодан на
люстра
Цитата
как в этом тексте заменить слово чемодан на люстра
Код
--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()
Цитата(cirus @ 2.6.2018, 22:51)
Код
--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()
а как 2 слова
чемодан и
азбука заменить на
люстра
все заработало, проблема в юникоде файла была) Я файл не с нуля создавал, а расширение просто поменял на тхт.
Создал тхт с нуля и заработало, спасибо
Цитата
а как 2 слова чемодан и азбука заменить на люстра
Код
--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>
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.