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

> Найти текст в документе и показать всю строку, Найти текст в документе и показать всю строку
dontail
сообщение 1.4.2018, 15:12
Сообщение #1


**

Neophyte
Сообщений: 15
Регистрация: 1.4.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.887
Возраст: 21



Добрый день форумчане, надеюсь мне поможете)) Есть документ, в нем 600 строк и нужно найти в нем одно слово, может и повторяться. Мне нужно чтобы выводились все строки найденные с этим словом. Уже 2-ой день пыхчу и не могу найти(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 3.6.2018, 21:25
Сообщение #2


**********

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



Цитата
т.е надо чтобы поиск игнорировал всё что написано до знака = в каждой строчке

код
Код
--lua
log "clear" log "mode compact"
local path=[[C:\\Rus]]   -- путь к папке с файлами
local path2=[[C:\\Rus2]]  -- куда сохранять изменённые файлы

local files_in, count = dir (path, "*.txt", "norecursion")   -- получаем список всех txt файлов в папке
dircreate (path2)  -- создаём папку если её не было

local first, result_file = {}, {}

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

for i=1, count do
    local first  = io.open(files_in[i][1], "r")
    local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")

    for v in first:lines() do
        local v1 = v:match(".-%=")         -- получаем из строки всё что идёт до = (включая и сам знак равно)
        if v1 then                               -- если строка не пустая
            local v2 = v:match("%=(.*)")   -- получаем из строки всё что идёт после =
            result_file:write(v1 .. string.gsub(v2, "[a-zA-Zа-яА-Я]+", t).."\r\n")
        else                                      -- если знак = не был найден
            result_file:write(v .. "\r\n")        -- записываем строку без изменений
        end
    end
    first:close()
    result_file:close()
end
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 5.6.2018, 16:09
Сообщение #3


****

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



Цитата(cirus @ 3.6.2018, 21:25) *

код
Код
--lua
log "clear" log "mode compact"
local path=[[C:\\Rus]]   -- путь к папке с файлами
local path2=[[C:\\Rus2]]  -- куда сохранять изменённые файлы

local files_in, count = dir (path, "*.txt", "norecursion")   -- получаем список всех txt файлов в папке
dircreate (path2)  -- создаём папку если её не было

local first, result_file = {}, {}

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

for i=1, count do
    local first  = io.open(files_in[i][1], "r")
    local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")

    for v in first:lines() do
        local v1 = v:match(".-%=")         -- получаем из строки всё что идёт до = (включая и сам знак равно)
        if v1 then                               -- если строка не пустая
            local v2 = v:match("%=(.*)")   -- получаем из строки всё что идёт после =
            result_file:write(v1 .. string.gsub(v2, "[a-zA-Zа-яА-Я]+", t).."\r\n")
        else                                      -- если знак = не был найден
            result_file:write(v .. "\r\n")        -- записываем строку без изменений
        end
    end
    first:close()
    result_file:close()
end


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


****

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



Проблемка образовалась, не работает 12 13 и 14 задача в примере. т.е скрипт делает замену, только если меняется первое слово после знака =, либо же фраза от первого слова после знака =. А если менять текст в середине строки, то не работает.В чем косяк?
Код
задача1=слово
задача2 =слово
задача3= слово
задача4 = слово
задача5=слово=слово
задача6=слово =слово=+слово
задача7=мемуар истины
задача8 =мемуар истины
задача9= мемуар истины
задача10 = мемуар истины
задача11 = мемуар истины =мемуар истины
задача12=Пишем мемуар истины
задача13=Hello how are you
задача14 = Hello how are you =Hello how are you  


код
Код
--lua
log "clear" log "mode compact"
local path=[[C:\\Rus\\TEST]]   -- путь к папке с файлами
local path2=[[C:\\Rus\\TEST2]]  -- куда сохранять изменённые файлы
local files_in, count = dir (path, "*.txt", "norecursion")   -- получаем список всех txt файлов в папке
dircreate (path2)  -- создаём папку если её не было

local first, result_file = {}, {}

local t={
["слово"]="ОК",
[" слово"]="ОК",
["слово "]="ОК",
[" слово "]="ОК",
["мемуар истины"]="ОК",
[" мемуар истины"]="ОК",
["мемуар истины "]="ОК",
[" мемуар истины "]="ОК",
["how are"]="ОК",
["how are "]="ОК",
[" how are"]="ОК",
[" how are "]="ОК",
}

for i=1, count do
    local first  = io.open(files_in[i][1], "r")
    local result_file = io.open(path2.."\\"..files_in[i][3]..files_in[i][4], "wb")

    for v in first:lines() do
        local v1 = v:match(".-%=")         -- получаем из строки всё что идёт до = (включая и сам знак равно)
        if v1 then                               -- если строка не пустая
            local v2 = v:match("%=(.*)")   -- получаем из строки всё что идёт после =
            result_file:write(v1 .. string.gsub(v2, "[ a-zA-Zа-яА-Я]+", t).."\r\n")
        else                                      -- если знак = не был найден
            result_file:write(v .. "\r\n")        -- записываем строку без изменений
        end
    end
    first:close()
    result_file:close()
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
dontail   Найти текст в документе и показать всю строку   1.4.2018, 15:12
dron4938   Добрый день форумчане, надеюсь мне поможете)) Ест...   1.4.2018, 15:16
dontail   Notepad ++ же))) у меня через 9 дней экзамен) ну...   1.4.2018, 15:29
dron4938   Так сойдет? Скачать архив, распаковать, запустить...   1.4.2018, 16:10
dontail   Так сойдет? FINDSTR /L "dontail dron4938...   1.4.2018, 16:17
dontail   теперь застрял на том - как удалить в батнике прош...   1.4.2018, 16:34
dron4938   теперь застрял на том - как удалить в батнике про...   1.4.2018, 16:46
dontail   write (C:\123abc.bat FINDSTR /L ...   1.4.2018, 17:00
dron4938   Есть вариант не создавать новый, а менять его? Х...   1.4.2018, 17:04
dontail   одинаковое имя файла, просто заменит старый Он н...   1.4.2018, 17:06
dron4938   Он не заменяет, а дописывает еще текст поверх ста...   1.4.2018, 17:13
DarkMaster   set linedelay 0 set $sub ywf // указываем ваш...   1.4.2018, 18:44
dontail   [code]set linedelay 0 set $sub ywf // указыв...   1.4.2018, 19:20
dron4938   if #i == 853   1.4.2018, 19:29
DarkMaster   выкинуть после end_for поставить: end_script   1.4.2018, 19:49
dontail   еще такой вопрос - как сохранить в "горячих к...   1.4.2018, 20:19
cirus   Все настройки хранятся в uopilot.ini. Т. е. на дру...   1.4.2018, 20:31
dontail   Все настройки хранятся в uopilot.ini. Т. е. на др...   1.4.2018, 20:43
cirus   В пилоте, вкладка 'Ещё', кнопка 'Edit...   1.4.2018, 21:05
dontail   В пилоте, вкладка 'Ещё', кнопка 'Edit...   1.4.2018, 21:21
dontail   Кто нибудь может подсказать - можно ли создать тек...   2.4.2018, 13:10
cirus   for #i 1 600 set %a[#i] Строка номер #i e...   2.4.2018, 13:33
dontail   for #i 1 600 set %a[#i] Строка номер #i ...   2.4.2018, 17:43
DarkMaster   Что именно не понятно? Вы просили создание докумен...   2.4.2018, 18:24
dontail   Что именно не понятно? Вы просили создание докуме...   2.4.2018, 18:40
cirus   Вопросы и ответы пилот должен придумать? :)   3.4.2018, 1:26
DarkMaster   Ща чего-нибудь на генериурем) Может заодно пару ф...   3.4.2018, 9:33
dontail   Всем большое спасибо за помощь и за ваше терпение)   3.4.2018, 20:50
dron4938   есть 2 текстовых файла. 1ый содержит такие строки...   31.5.2018, 12:07
cirus   load_array %a C:\Users\abc\Desk...   31.5.2018, 12:54
dron4938   load_array %a C:\Users\abc\Des...   31.5.2018, 13:00
dron4938   load_array %a C:\Users\abc\Des...   31.5.2018, 14:52
DarkMaster   Из-за спецсимволов могут быть порблемы. Чтобы их и...   31.5.2018, 13:07
DarkMaster   Это называтся новый и старый скриптовый движок в...   31.5.2018, 15:27
dron4938   как удалить все знаки = из текста файла, а затем с...   31.5.2018, 18:56
DarkMaster   --lua log"clear" local first = io.open...   31.5.2018, 19:10
dron4938   --lua log"clear" local first = io.open...   31.5.2018, 20:06
dron4938   нужен скрипт автозамены сложных наборов текстов в ...   1.6.2018, 16:50
DarkMaster   было-стало приведите пример.   1.6.2018, 22:40
DarkMaster   --lua log"clear" local first = io.open...   1.6.2018, 22:54
dron4938   [code]--lua log"clear" local first = io....   2.6.2018, 21:58
DarkMaster   Т.е. пробелы нужно убрать? А я их наоборот сохраня...   2.6.2018, 22:09
dron4938   Т.е. пробелы нужно убрать? А я их наоборот сохран...   2.6.2018, 22:14
cirus   Всё работает.   2.6.2018, 22:18
dron4938   Всё работает. http://i.yapx.ru/Bdn06.jpg пример...   2.6.2018, 22:30
cirus   --lua log"clear" local first = io.open...   2.6.2018, 22:51
dron4938   [code]--lua log"clear" local first = io....   2.6.2018, 23:00
dron4938   все заработало, проблема в юникоде файла была) Я ф...   2.6.2018, 23:17
cirus   --lua log"clear" local first = io.open...   2.6.2018, 23:24
dron4938   --lua log"clear" local first = io.open...   2.6.2018, 23:59
cirus   Для начала неплохо бы это прочитать: --lua local...   3.6.2018, 0:13
dron4938   "[GameПрем]+" т.е. тут должны быт...   3.6.2018, 0:31
cirus   Можно конкретные символы [aws]+, можно диапазон [...   3.6.2018, 0:38
dron4938   А можно пилот заставить искать в файлах с другой к...   3.6.2018, 1:07
DarkMaster   Это не пилот, а lua. В луа нет поддержки юникода,...   3.6.2018, 10:09
cirus   Можно перевести в другую кодировку через батник. С...   3.6.2018, 11:29
DarkMaster   Функции работы с utf-8, подгружать через require.   3.6.2018, 14:35
dron4938   Нужно сразу в нескольких файлах сделать одну и ту ...   3.6.2018, 16:35
cirus   А зачем его вообще писать несколько раз? --lua l...   3.6.2018, 17:21
dron4938   А зачем его вообще писать несколько раз? [spoiler...   3.6.2018, 20:07
WKnight   Почему не работает --lua resultarray, count = dir...   3.6.2018, 19:13
cirus   Склероз :) Забыл что его правили.   3.6.2018, 20:04
dron4938   Проблемка образовалась, не работает 12 13 и 14 за...   8.6.2018, 0:57
dron4938   тест1=привет как дела(заменить "привет...   8.6.2018, 1:23
cirus   Если менять фразы, а не только слова, то проще так...   8.6.2018, 2:51
dron4938   Если менять фразы, а не только слова, то проще та...   8.6.2018, 9:27
portos   Если менять фразы, а не только слова, то проще та...   25.8.2018, 23:02
cirus   А так?: --lua log "clear" log "mode co...   8.6.2018, 13:51
dron4938   А так?: [spoiler=код][code]--lua log "clear...   8.6.2018, 15:14
cirus   Хз как так. Тут даже не чему выполняться столько ...   9.6.2018, 1:34
dron4938   Хз как так. Тут даже не чему выполняться столько ...   9.6.2018, 13:55
cirus   Лишний цикл был, исправил: --lua time=os.clock...   9.6.2018, 19:40
cirus   А что требуется сделать?   25.8.2018, 23:27
portos   А что требуется сделать? заменить одно слово в ...   25.8.2018, 23:33
cirus   --lua local path_in=[[C:\Users...   26.8.2018, 0:00
portos   --lua local path_in=[[C:\Users...   26.8.2018, 0:04
cirus   А версия пилота какая? Последнюю стабильную скачай...   26.8.2018, 0:29
portos   А версия пилота какая? Последнюю стабильную скача...   26.8.2018, 0:36
portos   А версия пилота какая? Последнюю стабильную скача...   26.8.2018, 0:42
cirus   Эту: Night version Stable 01.07.2018 Build 013   26.8.2018, 0:38
cirus   А путь кто будет менять... Проверки на существов...   26.8.2018, 0:46
portos   А путь кто будет менять... Проверки на существова...   26.8.2018, 0:57
cirus   А файл C:\Users\portos\Desktop...   26.8.2018, 1:06
portos   А файл C:\Users\portos\Desktop...   26.8.2018, 1:14
portos   как если надо несколько слов заменить на Привет ?   26.8.2018, 1:31
cirus   --lua local path_in=[[C:\Users...   26.8.2018, 1:48
DarkMaster   Имхо элегантнее выглядит: local t = {} t[#t +1] =...   26.8.2018, 13:24
portos   Имхо элегантнее выглядит: local t = {} t[#t +1] =...   26.8.2018, 16:42
cirus   Как-то понятнее объясните что нужно.   26.8.2018, 16:55
portos   Как-то понятнее объясните что нужно. записать с...   26.8.2018, 16:59
portos   надо выполнить взять из док 1111.txt первую строк...   26.8.2018, 17:10
cirus   --lua local arr = {"Hello", "Привет...   26.8.2018, 17:18
portos   --lua local arr = {"Hello", "Привет...   26.8.2018, 17:35
cirus   --lua -- не забываем указать нужный путь к файлам ...   26.8.2018, 18:58
portos   [spoiler=код][code]--lua -- не забываем указать н...   26.8.2018, 19:11
portos   парни , последний вопрос )) как сделать , с таким...   26.8.2018, 21:32
cirus   Т. е. чтобы в 2222 остались те строки, в которых н...   26.8.2018, 21:42
2 страниц V  1 2 >


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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