LUA を使用してテーブル内にテーブルを作成していますが、問題が発生しています。表示される NIL 値も入力する必要がありますが、正しく取得できないようです。
操作中の文字列:
PatID = '07-26-27~L73F11341687Per^^^SCI^SP~N7N558300000Acc^'
for word in PatID:gmatch("[^\~w]+") do table.insert(PatIDTable,word) end
local _, PatIDCount = string.gsub(PatID,"~","")
PatIDTableB = {}
for i=1, PatIDCount+1 do
PatIDTableB[i] = {}
end
for j=1, #PatIDTable do
for word in PatIDTable[j]:gmatch("[^\^]+") do
table.insert(PatIDTableB[j], word)
end
end
これにより、現在、次の出力が生成されます。
table
[1]=table
[1]='07-26-27'
[2]=table
[1]='L73F11341687Per'
[2]='SCI'
[3]='SP'
[3]=table
[1]='N7N558300000Acc'
しかし、私はそれを生成する必要があります:
table
[1]=table
[1]='07-26-27'
[2]=table
[1]='L73F11341687Per'
[2]=''
[3]=''
[4]='SCI'
[5]='SP'
[3]=table
[1]='N7N558300000Acc'
[2]=''
編集:探しているものを説明するのが悪い仕事をしたと思います。カラットが「NIL」または「空」であると見なされることは必ずしも必要ではなく、新しいストリングが開始されることを意味します。
それらは、より良い説明がないため、位置識別子です。
たとえば、次のようになります。
L73F11341687Per^^^SCI^SP
実際には次のように変換されます。
1. L73F11341687Per
2.
3.
4. SCI
5. SP
もし私が持っていたら
L73F11341687Per^12ABC^^SCI^SP
次に、ポジションは次のとおりです。
1. L73F11341687Per
2. 12ABC
3.
4. SCI
5. SP
そして、テーブルは次のようになります。
table
[1]=table
[1]='07-26-27'
[2]=table
[1]='L73F11341687Per'
[2]='12ABC'
[3]=''
[4]='SCI'
[5]='SP'
[3]=table
[1]='N7N558300000Acc'
[2]=''
うまくいけば、これは私がやろうとしていることをもう少し明らかにします。