GSL Shell 学習:split 関数(再)

2016-03-12 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、1、 0、0、0、0、0(40)で、換算ポイント 88pt 。
「Perl」「化学業界」「硝子業界」「FM COCOLO」「e-radio」、
「グルコサミン」「Python」「Firefox」bg値変動のみ。
「C言語」「FM青森」全く変化無し。
・-・ - -・

さて、本文。

“Lua”には、文字列分割用の“split”関数が無い。

なので、
今年初め(2016-01-10)の記事:「Lua 学習:文法に無いもの
で書いた如く:
  ・・・・・
  ・・・・・
  「良いもの。悪いもの。」の「Lua基礎文法最速マスター」に
    自前でsplit関数が
  載っている。
  ・・・・・
  ・・・・・

これは重宝する。


ところが、・・・・・
x = '0.030000  0.0  0.110000'
v = split( x, ' ' )
print( v ) -- → {"0.030000", "0.0", "0.110000"}

y = ' 85.8342 -0.0000 210.9051'
w = split( y, ' ' )
print( w ) -- → {"85.8342", "-0.0000", "", "210.9051"}
これバグですよネ。


探したら、なんと「Stack Overflow」に載っていた:
Split string in lua?
  I need to do a simple split of a string,
   but there doesnt seem to be a function for this,
   and the manual way i tested didn't seem to work.
  How would i do it?

===例の翻訳サイトの結果:

  文字列の単純な分割を行う必要がありますこのため、
   機能していないよう、
   マニュアルの方法を試したが動作していないましょう。
  それか。

?????


それで、中程にある“回答:38”
  Here is my really simple solution.
  Use the gmatch function to capture strings
   which contain at least ONE character of ANYTHING other than
   the desired separator.
  The separator is ANY whitespace (%s in Lua) by default:

===例の翻訳サイトの結果:

  ここでは私の本当にシンプルなソリューションです。
  Gmatch 関数を使用して、
   必要な区切り文字以外の少なくとも 1 文字を含む
   文字列をキャプチャします。
  区切り記号は、既定では空白 (Lua で %s)。

?????


まあ、これを頂こう!(一部手直しした)
function mysplit( inputstr, sep )
if sep == nil then sep = '%s' end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str i = i + 1
end
return t
end
これを使ったら、

最初の<紙>の例は:
x = '0.030000  0.0  0.110000'
v = mysplit( x, ' ' )
print( v ) -- → {"0.030000", "0.0", "0.110000"}

y = ' 85.8342 -0.0000 210.9051'
w = mysplit( y, ' ' )
print( w ) -- → {"85.8342", "-0.0000", "210.9051"}
これで正解ですネ。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160212
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク