2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

■吉里吉里/KAG/TJS雑談質問スレ■その29

415 :名前は開発中のものです。:2015/08/21(金) 03:28:13.96 ID:2sqZawow.net
CSVParser.parse()は引数テキストに対して自身のdoLine呼び出すだけで
分割されたarrayが返るわけではないのでその使い方はおかしい(manual.tjsは熟読しよう)
あとparserに文字列を代入してるので元のCSVParserの参照がなくなってたり
parser.parseって関数を直接参照しようとしてたり本当にTJSわかってるのレベルなんですが
まあ一応使い方サンプル書いとくけどもっと勉強したほうがいい

var text = "012,456,89,bcd";
var parser = new CSVParser();
with (parser) {
.result = [];
.doLine = function (c) { result.add(c); } incontextof parser;
.parse(text);
}
var stack = parser.result; // === [ [ "012", "456", "89", "bcd" ] ]
Debug.message(stack[0]*); // -> 012, 456, 89, bcd

stackは二重arrayになってるので注意ね
(text文字内に改行コードがあれば [ [1行目], [2行目], [3行目] ... ]になる)
1行目しか使わないなら doLine のとこ工夫すればどうとでもなる

あとお手軽に文字を区切りたいなら「"〜".split()」を使うという手もある
var text = "012,456,89,bcd";
var split = text.split(","); // === [ "012", "456", "89", "bcd" ]
Debug.message(split*); // -> 012, 456, 89, bcd
厳密にはCSVParserの動作とは違うけど(csv内のダブルクォートの扱いとか)
圧倒的にこっちの方が記述量が少なくて楽

総レス数 1003
317 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200