0
ファイルからデータをテーブルに入れ、各行の最初の単語にキーを設定することができました。どのようにして、キーだけで別のファイルを読むことに基づいて、テーブル内に何を表示するのですか?あなたは、あなたのコード内のいくつかのミス持つ読み込んだファイルに基づいてテーブル情報を表示
-- see if the file exists
function file_exists(file)
local f = io.open("data.txt", "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("data.txt") do
first_word = string.gmatch(line, "%a+") -- word
lines[first_word] = line
end
return lines
end
local lines = lines_from(file)
end
ファイルの保存場所をdata.txtとして保存する必要がありますか?私はそれが私にエラーを与えるファイルを作るとき – CorDell
私はどのように最初のアウトの前に行1を追加するなど? – CorDell
@CorDell:関数を使用しているので、 'lines_from(" data.txt ")'(私の最後のコード例のように)を呼び出すと仮定しました。 ルアはこれをしないでくださいが、ファイル名にnilの値を受け取り、それは動作しません。 ファイル名をluaに渡す必要があります。あなたの例では、最初のファイル名は "data.txt"です。私はちょうど "keys.txt"を取ったキーファイルのためです。しかし、あなたは確かにあなたのケースにこれを採用する必要があります。 2番目のコメント:string.formatとともにprintを使用します。私はこれを達成するために私の答えを編集しました。 – pschulz