====== CSVをロードする ====== Streamを受け取ってArray列に展開します。 スクリプト言語の例に漏れずXtalでも文字列処理は簡単にできるんです。た、たぶん。 // stream: Iteratorのサブクラス(まあPointerStreamやFileStreamを想定していますが) // pattern: 文字かxpegのパターン // ret: ArrayのArray fun load_csv(stream, pattern) { ret : []; stream.scan(xpeg::eol){ line : it.prefix; if (line.length>0){ ret.push_back(line.split(pattern)[]); } } return ret; } こんな感じで使います。 // delimiterが";" load_csv(FileStream("map1.csv", "r"), ";").p; // delimiterが";"か"," load_csv(FileStream("map2.csv", "r"), xpeg::set(";,")).p;