使用Lua从文本框编写文件

最近我一直在尝试制作一个基本的单词添加程序。我想让用户点击文本框,然后输入所需的单词,然后将其写入一个 .txt 文件中(预先创建的或不创建)。我对编码不是很擅长,我很难利用示例/其他人的 Stack Exchange 问题学习。我只有一些无法共同使用的代码片段,我不确定我需要做什么才能让它们共同使用 (这些代码不是我的)

local textBox = native.newTextBox( 200, 200, 280, 140 )
textBox.text = "This is line 1.\nAnd this is line2"
textBox.isEditable = true

local file = io.open( filePath, "r" )
if file then
-- read all contents of file into a string
local contents = file:read( "*a" )

print( "Contents of " .. filePath )
print( contents )

io.close( file ) -- Important to close (python knowledge)

local t = display.newText( "Contents of ", 5, 80, nil, 16 ); -- w, h, ?, size
t:setFillColor( 1, 1, 135/255 ); -- edit
local t = display.newText( filePath, 5, 100, nil, 10 );
t:setFillColor( 1, 1, 135/255 );

local ylast = 130 -- how far down the Y value it can make words on the screen
for line in io.lines(filePath) do
    local t = display.newText ( line, 15, ylast, nil, 14); -- dont understand
    t:setFillColor( 1, 1, 1 );
    ylast = ylast + 20
    end
end

local function inputListener( event )
if event.phase == "began" then

    -- user begins editing textBox
    print( event.text )

elseif event.phase == "ended" then
    textBox.text = event.text
    local path = system.pathForFile( "myfile.txt", system.DocumentsDirectory )

    local file = io.open( path, "w" )
    file:write( textBox.text )
    io.close( file )
    file = nil

elseif event.phase == "editing" then

    print( event.newCharacters )
    print( event.oldText )
    print( event.startPosition )
    print( event.text )

end
end

textBox:addEventListener( "userInput", inputListener )
点赞
用户5998436
用户5998436

我建议使用 loadsave 函数,这样会更容易。

你可以从这里下载这些函数。

https://github.com/robmiracle/Simple-Table-Load-Save-Functions-for-Corona-SDK

下载后,将 loadsave.lua 文件放入主项目文件夹中。

现在,你可以这样使用它。

示例:

local loadsave = require("loadsave")

local tableToSave = {}

-- 将文本加载到一个表中
tableToSave ['saved-text'] = textYouWantToSave

-- 保存文本
loadsave.saveTable(tableToSave, "filename.json")

local savedTable = {}

-- 加载文本
savedTable = loadsave.loadTable("filename.json")

-- 存储文本在这里
savedTable['saved-text']
2016-02-29 16:16:07