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

9 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Найти текст в документе и показать всю строку, Найти текст в документе и показать всю строку
dron4938
сообщение 2.6.2018, 21:58
Сообщение #41


****

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



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


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Т.е. пробелы нужно убрать? А я их наоборот сохранял всеми силами) Ща

Код
--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:11


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.6.2018, 22:14
Сообщение #43


****

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



Цитата(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()


не робит.в результате чистый документ выходит
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.6.2018, 22:18
Сообщение #44


**********

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



Цитата
не робит.в результате чистый документ выходит

Всё работает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.6.2018, 22:30
Сообщение #45


****

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



Цитата(cirus @ 2.6.2018, 22:18) *

Всё работает.

(IMG:http://i.yapx.ru/Bdn06.jpg)

пример проще:

Код
тумба
стол
стул
ящик
чемодан
рыба
азбука


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


**********

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



Цитата
как в этом тексте заменить слово чемодан на люстра

Код
--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()
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.6.2018, 23:00
Сообщение #47


****

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



Цитата(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 слова чемодан и азбука заменить на люстра
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.6.2018, 23:17
Сообщение #48


****

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



все заработало, проблема в юникоде файла была) Я файл не с нуля создавал, а расширение просто поменял на тхт.
Создал тхт с нуля и заработало, спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.6.2018, 23:24
Сообщение #49


**********

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



Цитата
а как 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()
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.6.2018, 23:59
Сообщение #50


****

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



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


**********

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



Цитата
почему в этом тексте не меняет?

Для начала неплохо бы это прочитать:
Цитата
. -- Любой символ
%a -- Буква (только англ.!)
%A -- Любая буква (русская), символ, или цифра, кроме английской буквы
%c -- Управляющий символ
%d -- Цифра
%D -- Любая буква, или символ, кроме цифры
%l -- Буква в нижней раскладке (только англ.!)
%L -- Любая буква, символ, или цифра, кроме английской буквы в нижней раскладке
%p -- Символ пунктуации
%P -- Любая буква, символ, или цифра, кроме символа пунктуации
%s -- Символ пробел
%S -- Любая буква, символ, или цифра, кроме символа пробела
%u -- Буква в верхней раскладке (только англ.!)
%U -- Любая буква, символ, или цифра, кроме английской буквы в верхней раскладке
%w -- Любая буква, или цифра (только англ.!)
%W -- Любой символ, или буква (русская), кроме английской буквы, или цифры
%x -- Шестнадцатеричное число
%X -- Любая буква, или символ, кроме цифры, или английской буквы, используемой в записи шестнадцатеричного числа
%z -- Строковые параметры, содержащие символы с кодом 0

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


****

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



Код
"[GameПрем]+" 

т.е. тут должны быть вписаны все символы которые участвуют в поисковых словах?
ясно, спс
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.6.2018, 0:38
Сообщение #53


**********

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



Цитата
т.е. тут должны быть вписаны все символы которые участвуют в поисковых словах?

Можно конкретные символы [aws]+, можно диапазон [a-d]+ или [%a]+ - все англ буквы.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 3.6.2018, 1:07
Сообщение #54


****

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



А можно пилот заставить искать в файлах с другой кодировкой?
Он в ANSI работает, а например UTF-8
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.6.2018, 10:09
Сообщение #55


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Цитата
А можно пилот заставить искать в файлах с другой кодировкой?
Он в ANSI работает, а например UTF-8

Это не пилот, а lua. В луа нет поддержки юникода, возможно решается сторонними либами - не искал.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.6.2018, 11:29
Сообщение #56


**********

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



Можно перевести в другую кодировку через батник.
Содержимое bat файла:
Код
powershell "get-content -encoding UTF8 'C:\folder\in.txt' | out-file -encoding default 'C:\folder\out.txt'"

Запускать можно через exec. Напрямую на диск не сохраняет, т. е. сохранять в какую-нибудь папку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.6.2018, 14:35
Сообщение #57


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Функции работы с utf-8, подгружать через require.


Прикрепленные файлы
Прикрепленный файл  utf8.lua ( 8,39 килобайт ) Кол-во скачиваний: 980


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 3.6.2018, 16:35
Сообщение #58


****

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



Нужно сразу в нескольких файлах сделать одну и ту же замену.
как сделать, чтоб не писать по несколько раз одно и тоже
тобеж словарь замен чтобы не дублировать
код
Код
--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()
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.6.2018, 17:21
Сообщение #59


**********

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



Цитата
тобеж словарь замен чтобы не дублировать

А зачем его вообще писать несколько раз?
код
Код
--lua

local files_in = {[[c:\Rus\1.txt]], [[c:\Rus\2.txt]], [[c:\Rus\3.txt]]}   -- список файлов для замены
local files_out = {[[c:\Rus\11.txt]], [[c:\Rus\22.txt]], [[c:\Rus\33.txt]]}   -- куда сохранять
local first = {}
local result_file = {}

local t={
["тумба"]="tuba",
["стол"]="table",
["стул"]="chair",
["ящик"]="box",
["чемодан"]="cement",
["рыба"]="alphabet",
}

for i=1, #files_in do
    local first  = io.open(files_in[i], "r")
    local result_file = io.open(files_out[i], "wb")

    for v in first:lines() do
        result_file:write(string.gsub(v, "[a-zA-Zа-яА-Я]+", t).."\r\n")
    end
    first:close()
    result_file:close()
end

Вообще получить бы список файлов в папке, но пилотовской dir не работает в lua.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 3.6.2018, 19:13
Сообщение #60


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Почему не работает
Код

--lua
resultarray, count = dir ("C:\\", "*.sys", "norecursion")
for i = 1, count do
  log (resultarray[i][1])
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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