2

コードを実行しようとすると、次のエラーが表示されます。

lua:readFile.lua:7: attempt to call method 'split' (a nil value) 

独学で Lua を学び、いくつかの演習を行っています。テキスト ファイル内の個々の値を解析して、それらを処理しようとしています。ファイルを開くことができ、値を解析しようとしない場合は、内容を出力できます。
私は別々に試しました:

dollars, tickets = line:split(" ")  
dollars, tickets = line:split("(%w+)", " ")  

他のいくつかの反復とともに、現時点では思い出すことができません。

これが私のコードです:

myfile = io.open("C:\\tickets.txt", "r")

if myfile then
print("True")    --test print
for line in myfile:lines() do
    local dollars, tickets = unpack(line:split(" "))
    print(dollars)
end
end
print("Done")  --test print
myfile:close()

これは、tickets.txt ファイル全体の内容です。

250 5750
100 28000
50 35750
25 18750

私は明らかに分割方法で何かが欠けていますが、何を知るのに十分ではありません。

よろしく。

4

2 に答える 2

3

ファイルから数字を読み取るだけで、各行に2つになるように強制したくない場合は、次のコードを使用できます。

while true do
  local dollars,tickets = myfile:read("*n","*n")
  if dollars==nil or tickets==nil then break end
  print(dollars)
end
于 2012-09-21T12:59:55.157 に答える
2

Luaの文字列ライブラリには「split」関数は含まれていません。自分で実装するか(Lua wikiに例があります)、Luaのパターンマッチング機能を使用して断片を解析する必要があります。たとえば、次のようなことができます。

local dollars, tickets = line:match("(%d+) (%d+)")
于 2012-09-21T12:36:24.750 に答える