最初に、これがLuaの私の最初のプログラムだと言いたいと思います。 CSVファイルを読み込むLuaアプリケーションを開発する必要があります。このファイルは、4つの列と不明な行数で構成されています。したがって、私はファイルの行の最後まで読む必要があります。各行には、保存された点のxyz座標が格納されます。これらの座標は二重の値として格納されます。今度は、csvファイルから値をテーブル(Luaの配列)にコピーする必要があります。ファイルの後半で、私はigmロボット用のロボットプログラムを編集する必要があります。だから私はテーブルが必要です。今まで私は、休閑コードを持っているが、私は、これは、この起動するrigthの方法であるのかはわからない。だから、最初csvファイルからテーブルにdouble値を読み込みます
local open = io.open
local function read_file(path)
local file = open(path, "r") -- 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
end
os.execute("OpenGLM_3.exe -slicesize 3 -model cube_2.stl -ascii - eulerangles 0 0 0")
local fileContent = read_file("data.csv");
return 0;
を私はcsvファイルを作成し、C++プログラムを、実行したが、後に、私がしたいですプロセスを変更して、C++プログラムがLuaスクリプトから独立しているようにします。ここでこの行はテスト用です。この行の後、私はcsvファイルからテーブルにデータを読み込み、テーブルを画面に表示したいと思います。ですから私にとっては、ファイルの内容をコマンドラインに出力するだけで、スクリプトが正しく動作しているかどうかを確認できます。
私は以前はルアとは仕事をしていませんでしたが、ドキュメントは本当にわかりにくいです。だから私はあなたが私に与えることができるすべての助けに感謝します。
編集:私は今投稿をuser3204845で編集してコードを更新しました。画面にテーブルを印刷するには、printコマンドを使用しました。しかし、そのように私はちょうど0069b568
を得た。だから私の考えはfor
-loopを使うことでした。しかし、それは動作しません。誰かが私にLuaのテーブルのエントリにアクセスする方法を伝えることができますか? HERESに私のコード:
local open = io.open
local function read_file(path)
local file = open(path, "r") -- r read mode and b binary mode
if not file then return nil end
local coordinates = {}
for line in io.lines(path) do
local coordinate_x, coordinate_y, coordinate_z = line:match("%s*(.-),%s*(.-),%s*(.-)")
coordinates[#coordinates+1] = { coordinate_x = coordinate_x, coordinate_y = coordinate_y, coordinate_z = coordinate_z }
end
file:close()
return coordinates
end
os.execute("OpenGLM_3.exe -slicesize 3 -model cube_2.stl -ascii - eulerangles 0 0 0")
local coordinates = read_file("data.csv")
for line in coordinates
print(coordinates[line])
end
return 0;
ありがとうございました。私はまだ質問があります。私がLuaEditで自分のスクリプトをデバッグしたいとき、 'print'の近くに' do'コマンドがあるとのエラーメッセージが表示されます。だから、私のループは正しいとは思われません。 – user3794592
エラーが見つかりました。私はforループでdoを気にしませんでしたが、まだ動作しません。テーブル上で反復する場合には '行内の行に対して'コードが偽と思われます。 – user3794592
'ipairs'を使用してテーブルを反復処理することができます。また、不要なコードがあったので、 'read_file'メソッドをクリーンアップしました。 –