1

作成中のゲームの一部であるファイルがあり、それをコードで操作しようとしています。

ファイルは次のとおりです。

tech = 
{
    weaponstech = 1.5,
    armortech = 1.8,
    shieldstech = 2 
}

このようなファイルを開こうとしています

local file = io.open("tech")

次に、変数「shieldstech」の値を 2.2 に変更してみてください。

関数を実行するたびにこれを自動的に行う必要があります。

私は通常、次のような単一の変数ファイルを使用します。

v = 1

しかし、それは管理できないファイルの混乱を私に与えます。

だから今、私は技術ファイルを書いた方法で変数を保存します。

これは、これらの単一変数ファイルを編集するために使用した方法です。

local file = io.open("file", "w")
file:write("v = "..var)
file.close()

しかし、ファイル全体を 1 行またはコードで書き直すのは手間がかかりすぎるため、次のように変数を変更して保存するだけです。

local file = io.open("tech", "w")
shieldstech = 2.2
file:close()

しかし、それはそのようには機能しません。その理由はわかっています。プログラムにファイルを編集するように言っているのではなく、プログラムのそのインスタンスの変数を編集するように言っているのです。私がファイルに対して行っているのは、ファイルを開いてから閉じることだけです。

これを行う方法を知っている人はいますか?

どうも、

  • ブレンダン
4

2 に答える 2

2

私の提案は、そのタスク用に設計されたものを使用することです。以下に例を示します: https://github.com/2ion/ini.lua これにより、データを読み込んで、好きなだけ変更を加えてから書き戻すことができます。

編集: これはこれに依存しています: https://github.com/stevedonova/Penlight/blob/master/lua/pl/path.lua

代わりに inih を試してみてください (C で書かれているため、統合にはもう少し知識が必要です): http://luarocks.org/repositories/rocks/#lua-inih

于 2013-09-25T17:22:08.317 に答える