Packagejp.naggg.net
Classpublic class CSVLoader
InheritanceCSVLoader Inheritance flash.net.URLLoader

CSV を読み込み、解析を行うクラスです. flash.net.URLLoader を継承しており、通常の URLLoader と同じようにアクセスを行います. また、イベントも同様のものを伝播するよう設計しています.

View the examples



Public Properties
 PropertyDefined By
  delimiter : String = ,
デリミタ、デフォルトはカンマ ","、タブを渡すときは "\t" を指定します.
CSVLoader
  parseProgress : Number
[read-only] パースの進捗、0 ~ 1 の値をとります.
CSVLoader
  parseSpeed : int = 0
パース速度、PARSE_INTERVAL ごとにパースする CSV の行数です.0 を指定するとすべてをパースします.
CSVLoader
Protected Properties
 PropertyDefined By
  mode : int = 0
内部的なモード、0: 何もしない、1: ロード中、2: パース中
CSVLoader
  parsedData : Array
パース実行中に扱う、一時データ格納先、パース後は null になります.
CSVLoader
  _parseProgress : Number = 0
CSVLoader
  parseTimer : Timer
遅延パースタイマー.
CSVLoader
  source : Array
パース対象データ(多重配列)、一時的に保持されて、パース完了時に null になります.
CSVLoader
Public Methods
 MethodDefined By
  
CSVLoader(request:URLRequest = null, delimiter:String = ,, parseSpeed:int = 0)
CSVLoader オブジェクトを生成します.
CSVLoader
  
cloneCSV():Array
CSV のデータを複製した多重配列を返します.ByteArray による複製を行います.
CSVLoader
  
load(request:URLRequest):void
[override] CSVLoader クラスは、このプロパティまたはメソッドを実装しません.load() ではなく loadCSV() を使用してください.
CSVLoader
  
loadCSV(request:URLRequest = null, delimiter:String = ,, parseSpeed:int = 0):void
CSV の読込を開始します. このクラスでは、load() ではなく loadCSV() を使用してください. これは引数に設定が必要なものがあるからです.
CSVLoader
  
parseCSV(source:String, delimiter:String = ,, parseSpeed:int = 0):void
CSVの文字列をパースを二重配列を生成します. 生成されたデータは、data プロパティよりアクセスが可能となります. 例)data[0][0] また、パースは対象文字列が大きいほど処理に時間を要しますので、 parseSpeed で一度のパースで処理する行の数を指定することで遅延パースをかけることができます. パース完了時に、CSVLoader.PARSE_COMPLETE イベントを配信します. 行ごとの遅延パースは可能ですが、改行コードの統一(\n)はその前に実行されるので、 あらかじめ取り込むデータの改行コードを "\n" に統一しておくと処理が一層早くなります.
CSVLoader
  
toString():String
[override] 文字列表現を返します. 呼び出されると data プロパティ(多重配列)を文字列に変換する、必要でなければ呼び出さないよう注意してください.
CSVLoader
Protected Methods
 MethodDefined By
  
completeHandler(evt:Event):void
CSV 読込み完了時の内部処理、最高の優先度で登録されます.
CSVLoader
  
openHandler(evt:Event):void
CSV 読込み開始時の内部処理、最高の優先度で登録されます.
CSVLoader
  
まるっとパースして data プロパティに反映します.
CSVLoader
  
parseTimerTimerCompleteHanlder(evt:TimerEvent):void
遅延パースのメインロジック
CSVLoader
  
removeEmptyLine():Boolean
data プロパティに格納すべき多重配列の最後のデータが空であれば削除します.
CSVLoader
Events
 Event Summary Defined By
  loadCSV() による読込が完了した時に送出されます.CSVLoader
  loadCSV() により読込が開始した時に送出されます.EVEN.OPEN の直後になります.CSVLoader
  parseCSV() でのパースが完了した時に送出されます.CSVLoader
  parseCSV() によるパースが開始した時に送出されます.CSVLoader
  parseCSV() での遅延パースを行う場合、一定間隔ごとに送出されます.CSVLoader
Public Constants
 ConstantDefined By
  LOAD_COMPLETE : String = loadComplete
[static]
CSVLoader
  LOAD_INIT : String = loadInit
[static]
CSVLoader
  PARSE_COMPLETE : String = parseComplete
[static]
CSVLoader
  PARSE_INIT : String = parseInit
[static]
CSVLoader
  PARSE_INTERVAL : uint = 50
[static] パースを実行するタイマーの間隔です.parseSpeed の値で 0 以下を指定した場合に有効となります.
CSVLoader
  PARSE_PROGRESS : String = parseProgress
[static]
CSVLoader
Property Detail
_parseProgressproperty
protected var _parseProgress:Number = 0

delimiterproperty 
public var delimiter:String = ,

デリミタ、デフォルトはカンマ ","、タブを渡すときは "\t" を指定します.

modeproperty 
protected var mode:int = 0

内部的なモード、0: 何もしない、1: ロード中、2: パース中

parsedDataproperty 
protected var parsedData:Array

パース実行中に扱う、一時データ格納先、パース後は null になります.

parseProgressproperty 
parseProgress:Number  [read-only]

パースの進捗、0 ~ 1 の値をとります.


Implementation
    public function get parseProgress():Number
parseSpeedproperty 
public var parseSpeed:int = 0

パース速度、PARSE_INTERVAL ごとにパースする CSV の行数です.0 を指定するとすべてをパースします.

parseTimerproperty 
protected var parseTimer:Timer

遅延パースタイマー.

sourceproperty 
protected var source:Array

パース対象データ(多重配列)、一時的に保持されて、パース完了時に null になります.

Constructor Detail
CSVLoader()Constructor
public function CSVLoader(request:URLRequest = null, delimiter:String = ,, parseSpeed:int = 0)

CSVLoader オブジェクトを生成します.

Parameters
request:URLRequest (default = null) — CSVデータのURLRequest、指定すると直ちに読み込み操作が開始されます
 
delimiter:String (default = ,) — デリミタ、プロパティに反映されます
 
parseSpeed:int (default = 0) — パース速度、プロパティに反映されます
Method Detail
cloneCSV()method
public function cloneCSV():Array

CSV のデータを複製した多重配列を返します.ByteArray による複製を行います.

Returns
Array — 複製された CSV データ(多重配列)
completeHandler()method 
protected function completeHandler(evt:Event):void

CSV 読込み完了時の内部処理、最高の優先度で登録されます.

Parameters

evt:Event

load()method 
override public function load(request:URLRequest):void

CSVLoader クラスは、このプロパティまたはメソッドを実装しません.load() ではなく loadCSV() を使用してください.

Parameters

request:URLRequest

loadCSV()method 
public function loadCSV(request:URLRequest = null, delimiter:String = ,, parseSpeed:int = 0):void

CSV の読込を開始します. このクラスでは、load() ではなく loadCSV() を使用してください. これは引数に設定が必要なものがあるからです.

Parameters

request:URLRequest (default = null) — 対象CSVを読み込むリクエストです.
 
delimiter:String (default = ,) — CSV のデリミタです.デフォルトは "," です.
 
parseSpeed:int (default = 0)

openHandler()method 
protected function openHandler(evt:Event):void

CSV 読込み開始時の内部処理、最高の優先度で登録されます.

Parameters

evt:Event

parseAllLines()method 
protected function parseAllLines():void

まるっとパースして data プロパティに反映します.

parseCSV()method 
public function parseCSV(source:String, delimiter:String = ,, parseSpeed:int = 0):void

CSVの文字列をパースを二重配列を生成します. 生成されたデータは、data プロパティよりアクセスが可能となります. 例)data[0][0] また、パースは対象文字列が大きいほど処理に時間を要しますので、 parseSpeed で一度のパースで処理する行の数を指定することで遅延パースをかけることができます. パース完了時に、CSVLoader.PARSE_COMPLETE イベントを配信します. 行ごとの遅延パースは可能ですが、改行コードの統一(\n)はその前に実行されるので、 あらかじめ取り込むデータの改行コードを "\n" に統一しておくと処理が一層早くなります.

Parameters

source:String — CSV文字列
 
delimiter:String (default = ,) — デリミタ
 
parseSpeed:int (default = 0) — パース速度

parseTimerTimerCompleteHanlder()method 
protected function parseTimerTimerCompleteHanlder(evt:TimerEvent):void

遅延パースのメインロジック

Parameters

evt:TimerEvent

removeEmptyLine()method 
protected function removeEmptyLine():Boolean

data プロパティに格納すべき多重配列の最後のデータが空であれば削除します.

Returns
Boolean — 削除したかどうかを返します、削除する必要がなければ false を返します.
toString()method 
override public function toString():String

文字列表現を返します. 呼び出されると data プロパティ(多重配列)を文字列に変換する、必要でなければ呼び出さないよう注意してください.

Returns
String — CSV配列すべてを含む文字列
Event Detail
loadComplete Event
Event Object Type: jp.naggg.net.CSVLoader
CSVLoader.type property = jp.naggg.net.CSVLoader.LOAD_COMPLETE

loadCSV() による読込が完了した時に送出されます.

loadInit Event  
Event Object Type: jp.naggg.net.CSVLoader
CSVLoader.type property = jp.naggg.net.CSVLoader.LOAD_INIT

loadCSV() により読込が開始した時に送出されます.EVEN.OPEN の直後になります.

parseComplete Event  
Event Object Type: jp.naggg.net.CSVLoader
CSVLoader.type property = jp.naggg.net.CSVLoader.PARSE_COMPLETE

parseCSV() でのパースが完了した時に送出されます.

parseInit Event  
Event Object Type: jp.naggg.net.CSVLoader
CSVLoader.type property = jp.naggg.net.CSVLoader.PARSE_INIT

parseCSV() によるパースが開始した時に送出されます.

parseProgress Event  
Event Object Type: jp.naggg.net.CSVLoader
CSVLoader.type property = jp.naggg.net.CSVLoader.PARSE_PROGRESS

parseCSV() での遅延パースを行う場合、一定間隔ごとに送出されます.

Constant Detail
LOAD_COMPLETEConstant
public static const LOAD_COMPLETE:String = loadComplete

LOAD_INITConstant 
public static const LOAD_INIT:String = loadInit

PARSE_COMPLETEConstant 
public static const PARSE_COMPLETE:String = parseComplete

PARSE_INITConstant 
public static const PARSE_INIT:String = parseInit

PARSE_INTERVALConstant 
public static const PARSE_INTERVAL:uint = 50

パースを実行するタイマーの間隔です.parseSpeed の値で 0 以下を指定した場合に有効となります.

PARSE_PROGRESSConstant 
public static const PARSE_PROGRESS:String = parseProgress

Examples
     import jp.naggg.net.CSVLoader;
     var csvLoader:CSVLoader = new CSVLoader();
     csvLoader.addEventListener(CSVLoader.LOAD_COMPLETE, csvLoaderLoadCompleteHandler);
     csvLoader.addEventListener(CSVLoader.PARSE_COMPLETE, csvLoaderParseCompleteHandler);
     csvLoader.addEventListener(Event.COMPLETE, csvLoaderCompleteHandler);
     csvLoader.loadCSV(new URLRequest("csv.csv"), ",", 100);
     function csvLoaderCompleteHandler(evt:Event):void{
        trace(csvLoader.progress); // 1
        trace(csvLoader);
        // 1 aaa,bbb
        // 2 ccc,ddd
        // 3 eee,fff
     }
     function csvLoaderLoadCompleteHandler(evt:Event):void{}
     function csvLoaderParseCompleteHandler(evt:Event):void{}