私の問題は、NodeMCU開発キットのテキストファイル(自分のコンピュータにある)を読むことです。私はLuaスクリプトを使ってUbuntu端末のファイルの内容を読むことができます。ここでは、私が読んで使用しているコードを共有しています。どちらもUbuntu端末でうまく動作しています。Luaを使ってNodeMCUでコンピュータにあるテキストファイルを読む
まず1:
local open = io.open
local function read_file(path)
local file = open(path, "rb") -- r read mode and b binary mode
if not file then return nil end
local content = file:read "*a" -- *a or *all reads the whole file
file:close()
return content
第二1:
local fileContent = read_file("output.txt");
print (fileContent);
function file_exists(file)
local f = io.open(file, "rb")
if f then f:close() end
return f ~= nil
end
-- get all lines from a file, returns an empty
-- list/table if the file does not exist
function lines_from(file)
if not file_exists(file) then return {} end
lines = {}
for line in io.lines(file) do
lines[#lines + 1] = line
end
return lines
end
-- tests the functions above
local file = 'output.txt'
local lines = lines_from(file)
-- print all line numbers and their contents
for k,v in pairs(lines) do
print('line[' .. k .. ']', v)
end
私の問題は、私は、コードを送信するためにEsplorerを使用して、NodeMCUにコードを送信したときに発生するが、エラーは次のように発生します。 :
attempt to index global 'io' (a nil value)
stack traceback:
applicationhuff.lua:5: in function 'file_exists'
applicationhuff.lua:13: in function 'lines_from'
applicationhuff.lua:23: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
私の汎用目的は、このデータを実際に読んで、それをMosquitto Bに公開することですMQTTプロトコルを使用しています。私はこれらのトピックに新しいです。誰かが私の問題を処理できるなら、それは感謝されます。ご協力いただきありがとうございます...
...それが十分助け願っています。その情報はおそらくコメントとしてよりよくなり、質問された質問に対する回答が容易に識別できるようになります。 さらに、「わからないことはわからない」という効果は、初心者が経験豊富な人には明らかな非効果的なGoogleクエリを使用する可能性があります。 –
@KelsonBall私は同意しない。 10年前はウェブ検索が効果がなかったかもしれません。しかし、今日私はマイクのアイコンをクリックして、コンピュータに "nodemcuでファイルを読むにはどうすればいいですか?"そして、それは私に例を使って奇妙な答えを与えるでしょう...これはどうやって効果がありませんか?その知識を得るためにプログラマーとして多くの経験を積むこともありません。実際にはあなたはGoogleを知る必要はありません。実際に開発キットに付属のドキュメントを参照すれば十分でしょう... – Piglet
@ピグレットあなたの欲求不満は完全に分かち合いますが、何らかの理由で私は続けます: -/ –