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

 
Ответить в эту темуОткрыть новую тему
> Как загрузить массив в lua?
Locker
сообщение 11.4.2021, 4:05
Сообщение #1


*

Registred
Сообщений: 1
Регистрация: 11.4.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.942
Возраст: 24



Имеем текстовый файл вида:
mail@mail login password
mail@mail2 login2 password2
...
Слова в строчке разделены табуляцией.
Нужно присвоить слова переменным и в нужный момент отправлять их в буфер.
На пилотовском языке всё просто, через загрузку массива, а в луа не понятно. Разделять файл на три файла и дёргать строками- как то совсем по деревенски. Есть более изящные способы?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.4.2021, 6:32
Сообщение #2


***********

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



идейно примерно так:
Код

    local result = {}
    local f = io.open(path,"r")
    for line in f:lines() do
        result[#result + 1] = {}
        result[1],result[2],result[3] = line:match("([^\t]+)\t([^\t]+)\t([^\t]+)")
    end


Сообщение отредактировал DarkMaster - 11.4.2021, 6:32


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


**********

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



Код
--lua
local result = {}
local f = io.open([[C:\123.txt]],"r")  -- путь к файлу

if f then   -- если файл открылся
    for line in f:lines() do      -- прочитать файл по строкам
        result[#result + 1] = {line:match("([^%s]+)%s([^%s]+)%s([^%s]+)")}  -- добавить в массив
    end
    f:close()  -- закрыть файл

    log 'clear' log 'mode compact'

    log ( result[1][1], result[1][2], result[1][3] )
    log ( result[2][1], result[2][2], result[2][3] )
else
    log('Файл не открылся')
end
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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