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

9 страниц V « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> Найти текст в документе и показать всю строку, Найти текст в документе и показать всю строку
portos
сообщение 26.8.2018, 0:36
Сообщение #81


****

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



Цитата(cirus @ 25.8.2018, 22:29) *

А версия пилота какая?
Последнюю стабильную скачайте: http://uopilot.uokit.com


0:34:52 0 (autosaved_0.txt, 0): Error while creating Lua virtual mashine
0:34:55 0 (autosaved_0.txt, 0): --lua - Неопознанная команда: --lua
0:35:34 0 (autosaved_0.txt, 1): --lua - Error while creating Lua virtual mashine
0:35:35 0 (autosaved_0.txt, 1): local - Неопознанная команда: local
0:36:16 0 (autosaved_0.txt, 2): local - Error while creating Lua virtual mashine
0:36:17 0 (autosaved_0.txt, 1): local - Неопознанная команда: local
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 0:38
Сообщение #82


**********

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



Эту:
Night version
Stable
01.07.2018 Build 013
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 0:42
Сообщение #83


****

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



Цитата(cirus @ 25.8.2018, 22:29) *

А версия пилота какая?
Последнюю стабильную скачайте: http://uopilot.uokit.com


скачал

0:41:11 1 (autosaved_1.txt, 0): Lua загружен.
0:41:11 1 (autosaved_1.txt, 0): a runtime error.
8: attempt to index local 'f' (a nil value)
--lua
local path_in=[[C:\Users\abc\Desktop\file1.txt]] -- путь к файлу, в котором надо найти текст
local path_out=[[C:\Users\abc\Desktop\file2.txt]] -- куда сохран
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 0:46
Сообщение #84


**********

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



А путь кто будет менять...
Цитата
C:\Users\abc\Desktop\file1.txt

Цитата
C:\Users\portos\Desktop\1111.txt

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


****

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



Цитата(cirus @ 25.8.2018, 22:46) *

А путь кто будет менять...
Проверки на существование файла нет в данном коде.


--lua
local path_in=[[C:\Users\portos\Desktop\1111.txt]] -- путь к файлу, в котором надо найти текст
local path_out=[[C:\Users\portos\Desktop\2222.txt]] -- куда сохранить

local f = io.open(path_in, "r") -- открываем файл для чтения
local result_f = io.open(path_out, "wb") -- открываем для записи, если файла не существует он будет создан

for v in f:lines() do -- читаем файл по строкам
result_f:write(v:gsub(".18", "Привет") .."\r\n") -- пишем в файл, при этом заменить все слова Hello на Привет
end

f:close() -- закрываем файл
result_f:close() -- закрываем файл

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


**********

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



А файл C:\Users\portos\Desktop\2222.txt открывали? Если в 1111.txt были ".18", то они заменятся.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 1:14
Сообщение #87


****

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



Цитата(cirus @ 25.8.2018, 23:06) *

А файл C:\Users\portos\Desktop\2222.txt открывали? Если в 1111.txt были ".18", то они заменятся.


да в этот раз заменился , было ощущение , что скрипт не включился . спс
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 1:31
Сообщение #88


****

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



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


**********

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



Цитата
как если надо несколько слов заменить на Привет ?

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


***********

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



Цитата
local t = {} -- массив, в котором хранится что на что менять
table.insert(t, {"Hello", "Привет"}) -- Hello на привет
table.insert(t, {".18", "qwerty"}) -- .18 заменить на qwerty
table.insert(t, {"text", "99"}) -- text заменить на 99

Имхо элегантнее выглядит:
local t = {}
t[#t +1] = ...
t[#t +1] = ...
t[#t +1] = ...
Благо луа такое позволяет без инсерта.


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


****

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



Цитата(DarkMaster @ 26.8.2018, 11:24) *

Имхо элегантнее выглядит:
local t = {}
t[#t +1] = ...
t[#t +1] = ...
t[#t +1] = ...
Благо луа такое позволяет без инсерта.


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


**********

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



Цитата
можно слова обозначить массивами ?

Как-то понятнее объясните что нужно.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 16:59
Сообщение #93


****

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



Цитата(cirus @ 26.8.2018, 14:55) *

Как-то понятнее объясните что нужно.


записать слова в массивы и заменить в
{"Hello", "Привет"})
типа
a = Hello
b = Привет

{a, b})
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 17:10
Сообщение #94


****

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



надо выполнить
взять из док 1111.txt первую строку , и в док 2222.txt найти первое слово из 1111.txt первой строки и дописать третье слово из 1111.txt в строку с найденным словом в док 2222.txt.
и так далее , пока не закончатся строки в док 1111.txt
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 17:18
Сообщение #95


**********

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



Цитата
записать слова в массивы и заменить в
{"Hello", "Привет"})
типа
a = Hello
b = Привет
{a, b})

Код
--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])

Цитата
взять из док 1111.txt первую строку , и в док 2222.txt найти первое слово из 1111.txt первой строки и дописать третье слово из 1111.txt в строку с найденным словом в док 2222.txt.

Для примера напишите содержимое файлов 1111.txt и 2222.txt, и что должно получиться на выходе.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 26.8.2018, 17:35
Сообщение #96


****

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



Цитата(cirus @ 26.8.2018, 15:18) *

Код
--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])


Для примера напишите содержимое файлов 1111.txt и 2222.txt, и что должно получиться на выходе.


в док 1111.txt

12623337369 uopilot1 17.07.18 07 18
14582563263 uopilot2 27.07.18 07 19
12109811481 uopilot4 04.07.18 07 19
16614242721 uopilot4 26.06.18 07 18
18438822829 uopilot8 03.07.18 07 19

в док 2222.txt

12623337369 xxxxxxx uopilot1 xxxxxxx
14582563263 xxxxxxx uopilot2 xxxxxxx
13313003643 xxxxxxx uopilot2 xxxxxxx
12109811481 xxxxxxx uopilot4 xxxxxxx
16145055191 xxxxxxx uopilot3 xxxxxxx
16614242721 xxxxxxx uopilot4 xxxxxxx
12104696429 xxxxxxx uopilot7 xxxxxxx
18438822829 xxxxxxx uopilot8 xxxxxxx

надо что бы записалось в 2222.txt

12623337369 xxxxxxx uopilot1 xxxxxxx 17.07.18 07 18
14582563263 xxxxxxx uopilot2 xxxxxxx 27.07.18 07 19
13313003643 xxxxxxx uopilot2 xxxxxxx
12109811481 xxxxxxx uopilot4 xxxxxxx 04.07.18 07 19
16145055191 xxxxxxx uopilot3 xxxxxxx
16614242721 xxxxxxx uopilot4 xxxxxxx 26.06.18 07 18
12104696429 xxxxxxx uopilot7 xxxxxxx
18438822829 xxxxxxx uopilot8 xxxxxxx 03.07.18 07 19
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 18:58
Сообщение #97


**********

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



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


****

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



Цитата(cirus @ 26.8.2018, 16:58) *

код
Код
--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()  -- закрываем файл




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


****

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



парни , последний вопрос ))
как сделать , с такими же документами (1111.txt и 2222.txt ) что бы с 1111.txt брало с первой строки первое слово (12623337369) ,находило в 2222.txt , удаляла полную строку (12623337369 xxxxxxx uopilot1 xxxxxxx) , и записывало в 3333.txt ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.8.2018, 21:42
Сообщение #100


**********

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



Т. е. чтобы в 2222 остались те строки, в которых не было совпадения, а в 3333 те, в которых были совпадения?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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