Помощь - Поиск - Пользователи - Календарь
Полная версия: работа с текстом
UoKit.com Форумы > Кликер > UO Pilot
portos
парни подскажите с lua ,как с трёх текстовых документов (1.txt,2.txt,3.txt) взять с первых строк определённые слова и вписать в четвёртый (4.txt) и так же со следующими строками
cirus
Приводите содержимое документов и что в итоге должно получится.
Цитата
определённые слова

Нужно конкретнее описывать что за слова. Могут ли они меняться, есть ли рядом с ними другие слова, какие-то числа, символы или еще что-то, чтобы понять что искать.
portos
1.txt - 81 351920450784
2.txt - 81 109.248.51.148 24531 aaaaaa 2bb2bbb2b
3.txt - 81 Mozilla/5.0 (Linux; Android 4.0; F3555 Build/23.2.B.4.70) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.362
результат
4.txt - 351920450784:nnnnnn|109.248.51.148:24531:aaaaaa:2bb2bbb2b|Mozilla/5.0 (Linux; Android 4.0; F3555 Build/23.2.B.4.70) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.362

из 1.txt берём номер (351920450784) добавляем : двоеточие и слово (оно одинаково во всех строках)
знак |
из 2.txt берём 109.248.51.148 24531 aaaaaa 2bb2bbb2b (вместо пробелов ставим smile.gif
знак |
из 3.txt берём Mozilla/5.0 (Linux; Android 4.0; F3555 Build/23.2.B.4.70) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.362

и так по порядку все строки (81 это номер строки)
cirus
код
Код
--lua
local f1 = io.open([[C:\1.txt]], "r")
local f2 = io.open([[C:\2.txt]], "r")
local f3 = io.open([[C:\3.txt]], "r")
local f4 = io.open([[C:\4.txt]], "wb")

if f1 and f2 and f3 and f4 then
    -- чтение файлов в массивы
    local arr1, arr2, arr3 = {}, {}, {}
    for v in f1:lines() do arr1[#arr1+1] = v:match("%d+%s+(.+)") end
    for v in f2:lines() do arr2[#arr2+1] = string.gsub(v:match("%d+%s+(.+)"), " ", ":") end
    for v in f3:lines() do arr3[#arr3+1] = v:match("%d+%s+(.+)") end
    f1:close()  f2:close()  f3:close()   -- закрыть файлы

    local min = math.min (#arr1, #arr2, #arr3)
    for i = 1, min do     -- запись в файл
        f4:write(arr1[i])
        f4:write(":nnnnnn|")
        f4:write(arr2[i])
        f4:write("|")
        f4:write(arr3[i])
        f4:write("\r\n")
    end
    f4:close()  -- закрыть файл
else
    log ("Какой-то из файлов не открылся или не найден")
end
portos
работает отлично и быстро ,спасибо . с lua быстрее работает чем с просто uopilot
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.