吉里吉里プラグインに関するメモ/lineParser.dll

Last-modified: 2016-02-19 (金) 12:59:10

LineParserクラス

コンストラクタ

LineParser.LineParser

機能/意味
LineParserオブジェクトの構築
タイプ
LineParserクラスのコンストラクタ
構文
LineParser(target = void)
引数
target…イベントの転送先オブジェクト。未指定時は自分自身に送る
戻り値
なし(void)
説明
LineParserオブジェクトを構築する

メソッド

LineParser.init

機能/意味
処理対象テキストの初期化
タイプ
LineParserクラスのメソッド
構文
init(text)
引数
text…処理対象テキスト
戻り値
なし(void)
説明
処理対象テキスト(テキストファイルから読み込んだ1行)をtextに変更する。parse()が呼び出されるまでパース処理は行われない

LineParser.initStorage

機能/意味
処理対象テキストファイルの初期化
タイプ
LineParserクラスのメソッド
構文
initStorage(filename, utf8 = false)
引数
filename…処理対象テキストのファイル名
utf8filenameの文字コードがUnicode(UTF-8エンコーディング)の場合はtrueを指定すること。省略時false
戻り値
なし(void)
説明
処理対象テキストファイルをfilenameに変更する。以降、getNextLine()を呼び出せば一行ずつパース処理が行われる

LineParser.getNextLine

機能/意味
処理対象テキストファイルから一行読み込み
タイプ
LineParserクラスのメソッド
構文
getNextLine()
引数
なし
戻り値
文字列。テキストファイルの終端に到達したらvoid
説明
initStorage()で指定された処理対象テキストファイルから一行読み込み、パース処理を行う。パース処理結果は文字列で返される

LineParser.parse

機能/意味
処理対象テキストのパース処理を行う
タイプ
LineParserクラスのメソッド
構文
parse(text = void)
引数
text…処理対象テキスト。省略時はinit()の引数が用いられる
戻り値
なし(void)
説明
処理対象テキストのパース処理を行い、doLine()イベントハンドラを呼び出す

LineParser.parseStorage

機能/意味
処理対象テキストファイルのパース処理を行う
タイプ
LineParserクラスのメソッド
構文
parseStorage(filename, utf8 = false)
引数
filename…処理対象テキストファイル名
utf8filenameの文字コードがUnicode(UTF-8エンコーディング)の場合はtrueを指定すること。省略時false
戻り値
なし(void)
説明
処理対象テキストファイルのパース処理を行い、一行ごとにdoLine()イベントハンドラを呼び出す

プロパティ

LineParser.currentLineNumber

機能/意味
現在の処理済み行番号を取得する
タイプ
LineParserクラスのプロパティ(読み出し専用)
説明
getNextLine()が処理した行番号を返す。行番号は1オリジンであることに注意

イベント

parse(), parseStorage()メソッドから呼び出されるイベントハンドラ。

LineParser.doLine

機能/意味
パース処理が終わった
タイプ
LineParserクラスのイベント
構文
doLine(text, lineNo)
引数
text…処理対象テキストファイルから読み込んだ一行(文字列)
lineNo…パース処理済みの行番号(1オリジン)
戻り値
なし(void)
説明
パース処理が終わったときに呼び出されるイベントハンドラ

使い方

使い方はCSVParserクラスとほぼ同じ。csvParser.dllの説明も参照のこと。

Debug.console.visible = Debug.controller.visible = true;
// lineParser.dllを読み込む
Plugins.link("lineParser.dll");
// LineParserオブジェクトを作る
var line = new LineParser();  // ターゲット省略
// テキストファイルを読み込み
line.initStorage("test.txt");
// 一行ずつ処理
var text;
while ((text = line.getNextLine()) !== void) {
  Debug.message(@"${line.currentLineNumber}行目: ${text}");
}
// LineParserオブジェクトを無効化
invalidate line;
Debug.console.visible = Debug.controller.visible = true;
// lineParser.dllを読み込む
Plugins.link("lineParser.dll");
// LineParserクラスを継承し、doLine()メソッドをオーバーライド
class LineParser2 extends LineParser {
  function LineParser2(et = void) { super.LineParser(...); }
  function finalize() { super.finalize(); }
  function doLine(text, lineNo) {
    Debug.message(@"LineParser2.doLine(): text = ${text}, lineNo = ${lineNo}");
  }
}
// LineParser2オブジェクトを作る
var line = new LineParser2();  // ターゲット省略
// テキストファイルを読み込み
line.parseStorage("test.txt");
// LineParser2オブジェクトを無効化
invalidate line;