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…処理対象テキストのファイル名
utf8…filenameの文字コードが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…処理対象テキストファイル名
utf8…filenameの文字コードが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;