NDSでMQOビューアをつくる(1)
DSのマジコンを手に入れた。自作のプログラムを動かせるので、MQOを表示するソフトでも作ってみることにしたよ。
まずはMQOをパースしてデータを取り出してみようということで、一行取得して空白で切り出して…とかがんばってたけど、http://rainer.blog7.fc2.com/blog-entry-97.htmlこんな楽勝なコードでパースできたとは!
$fp = fopen($filename, 'r'); while ($line = fgets($fp)) { $match = array(); $reg = '/(\-?\d+\.?\d*)|("[^"]+")|([_a-zA-Z][_a-zA-Z1-9]*)/i'; if (preg_match_all($reg, $line, $match)) { var_dump($match[0]); } } fclose($fp);
これを実行すると
array(2) { [0]=> string(11) "Metasequoia" [1]=> string(8) "Document" } array(4) { [0]=> string(6) "Format" [1]=> string(4) "Text" [2]=> string(3) "Ver" [3]=> string(3) "1.0" } array(1) { [0]=> string(5) "Scene" } array(4) { [0]=> string(3) "pos" [1]=> string(6) "0.8786" [2]=> string(9) "-176.7551" [3]=> string(9) "1500.0000" }
正規表現奥が深いよ…。