чтение файла txt в mimgui

$Mr.R1ch$

Активный
Автор темы
260
37
Версия MoonLoader
Другое
Приветствую, хочу читать информацию с текстового файла в мимгуи, но проблема в том, что файл у меня не читается. Полазал по темам другим и искал решение, но не одно из них у меня не работает, быть может делаю что то я не так.

Lua:
imgui.OnFrame(function() return Criminal_Code[0] and not isGamePaused() end, function(criminal)
     imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
     imgui.SetNextWindowSize(imgui.ImVec2(1010, 760), imgui.Cond.FirstUseEver)
     imgui.Begin(u8'Уголовное законодательство', Criminal_Code)
-- тут должен открываться файл и читаться, но этого не происходит 
     local file = io.open(getWorkingDirectory().. "/Example/test/ук/ук.txt", "r")
     if file then
        a = file:read("*a")
        file:close()

        --тут я паршу текст с файла
        for code, criminal in ipairs(a) do
           imgui.TextWrapped(u8(criminal))
        end
    else
       imgui.Text(u8'Ошибка! Не удалось получить информацию!.')
       imgui.Text(u8'Сервер: '..serverName)
     end
        imgui.End()
  end)
 
Решение
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local text = {}
imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil

    local directory = getWorkingDirectory()
    local path = ("%s\\yk.txt"):format(directory)

    for line in io.lines(path) do
        table.insert(text, u8(line))
    end
end)

imgui.OnFrame(function() return true end,
function()
    for _, line in ipairs(text) do
        imgui.TextWrapped(line)
    end          
end)

1730459191020.png


for io.lines(path) парсит по строчке документ

то чувство, когда читал книгу по луа и запомнил io.lines 🥹

$Mr.R1ch$

Активный
Автор темы
260
37
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local text = {}
imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil

    local directory = getWorkingDirectory()
    local path = ("%s\\yk.txt"):format(directory)

    for line in io.lines(path) do
        table.insert(text, u8(line))
    end
end)

imgui.OnFrame(function() return true end,
function()
    for _, line in ipairs(text) do
        imgui.TextWrapped(line)
    end         
end)

Посмотреть вложение 255964

for io.lines(path) парсит по строчке документ

то чувство, когда читал книгу по луа и запомнил io.lines 🥹
спасибо, очень выручил!
 
  • Нравится
Реакции: ChаtGPT