チェンジセット 28

差分発生行の前後
無視リスト:
コミット日時:
2007/06/19 20:12:14 (6 年前)
コミッタ:
kujirahand
ログメッセージ:

CSVUtils の間違いを修正。
ASDoc用のコメントを追加。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • kujirahand/as3/com/kujirahand/CSVUtils.as

    r27 r28  
    11/** 
    22 *  Excel 準拠の CSV ファイルを配列変数に変換するクラス 
    3  *  @author クジラ飛行机(http://kujirahand.com) 
    43 */ 
    5 /* 
    6  * SVNリポジトリ ... http://snippets.libspark.org/svn/as3/com/kujirahand 
    7  * 最新版の入手は... http://snippets.libspark.org/svn/kujirahand/as3/com/kujirahand/CSVUtils.as 
    8  */ 
     4 
    95package com.kujirahand 
    106{ 
     
    128     
    139    /** 
    14      * CSV 処理に関数する手続きをまとめたもの 
    15      * 区切り文字 SPLITTER は、必ず1文字にすること 
     10     * CSV ファイル(Excel準拠)のテキストを、Array や ArrayCollection に変換するもの。 
     11     * @author クジラ飛行机(http://kujirahand.com) 
     12     * @langversion ActionScript 3.0 
     13     * @example CSV形式のテキストを配列に変換する 
     14     * <listing version="3.0" > 
     15     *    var csv_str = "name, value\naaa,30\nbbbb,50\ncccc,30\n"; 
     16     *    var csv_ary:Array = CSVUtils.CsvToArray(csv_str); // CSV→Array 
     17     *    trace( CSVUtils.ArrayToCsv(csv_ary) ); // Array→CSV 
     18     * </listing> 
     19     * @example DataGrid に CSVテキストを表示する 
     20     * <listing version="3.0" > 
     21     *    // &lt;mx:DataGrid id="data_grid"&gt; 
     22     *    //    &lt;mx:DataGridColumn dataField="name"/&gt; 
     23     *    //    &lt;mx:DataGridColumn dataField="tel"/&gt; 
     24     *    //    &lt;mx:DataGridColumn dataField="memo"/&gt; 
     25     *    // &lt;/mx:DataGrid&gt; 
     26     *    var csv_str = "name, tel, memo\naaa,03-xxx-xxxx,memo\nbbbb,03-xxx-xxxx\n"; 
     27     *    var csv_ary:Array = CSVUtils.CsvToArray(csv_str); // CSV→Array 
     28     *    var mapping:Array = ['name', 'tel', 'memo']; 
     29     *    var csv_ac:ArrayCollection; 
     30     *    csv_ac = CSVUtils.ArrayToArrayCollection(csv_ary, mapping, true); 
     31     *    data_grid.dataProvider = csv_ac; // set to DataGrid 
     32     * </listing> 
     33     * @see http://snippets.libspark.org/svn/kujirahand/as3/com/kujirahand/CSVUtils.as   最新版ダウンロード(SVNリポジトリ) 
     34     * @see http://kujirahand.com/as3/com/kujirahand/CSVUtils.html ASDoc 
    1635     */  
    1736    public class CSVUtils 
    1837    { 
    1938        // 静的メソッド 
    20         /** CSV の区切り記号 */   
     39        /** CSV の列の区切り記号(1文字のみ対応) */   
    2140        public static var DEFAULT_SPLITTER:String = ","; 
     41        /** 行の区切り記号は \n で固定 */ 
    2242        public static const LINE_SPLLITER:String = "\n"; 
    2343         
     
    5070        } 
    5171        /** 
    52         * CSVファイルをデータグリッドに表示するために、ArrayCollectionに変換する 
    53         * @param    csv_ary    二次元配列変数 
    54         * @param    mapping     マッピングするフィールド名の配列 
    55         * @param    topline_is_header 1行目をヘッダとして利用しているなら true にすると削る 
    56         * @return    変換された ArrayCollection 
    57         */ 
     72        * CSVファイルをデータグリッドに表示するために、ArrayCollectionに変換する 
     73        * @param    csv_ary    二次元配列変数 
     74        * @param    mapping     マッピングするフィールド名の配列 
     75        * @param    topline_is_header 1行目をヘッダとして利用しているなら true にすると削る 
     76        * @return    変換された ArrayCollection 
     77        */ 
    5878        public static function ArrayToArrayCollection(csv_ary:Array, 
    5979            mapping:Array, topline_is_header:Boolean = false):ArrayCollection { 
    6080            if (topline_is_header) { // 1行目をヘッダとして使うなら削る 
    61                 csv_ary = csv_ary.splice(0, 1); 
     81                csv_ary.splice(0, 1); 
    6282            } 
    6383            var result_ary:ArrayCollection = new ArrayCollection(); 
     
    7696        } 
    7797        /** 
    78         * 二次元配列をCSV形式に変換する 
    79         * @param csv_ary        配列変数 
    80         * @param splitter        区切り記号 
    81         * @param use_escape    必ず ダブルコーテーションで囲う場合 
    82         * @return CSV形式の文字列 
    83         */ 
     98        * 二次元配列をCSV形式に変換する 
     99        * @param csv_ary        配列変数 
     100        * @param splitter        区切り記号 
     101        * @param use_escape    必ず ダブルコーテーションで囲う場合 
     102        * @return CSV形式の文字列 
     103        */ 
    84104        public static function ArrayToCsv(csv_ary:Array, splitter:String, 
    85105            use_escape:Boolean = false):String { 
     
    101121        } 
    102122        /** 
    103         * 文字列を ".." で括る必要があるかチェックする 
    104         */ 
     123        * 文字列を ".." で括る必要があるかチェックする 
     124        */ 
    105125        public static function hasEscapeChar(cell:String, splitter:String):Boolean { 
    106126            if (cell.indexOf('"') >= 0) return true; 
     
    113133        } 
    114134        /** 
    115         * 文字列を ".." で括ってエスケープする 
    116         */ 
     135        * CSVのセル(文字列)を ".." で括ってエスケープする 
     136        */ 
    117137        public static function escapeCell(cell:String):String { 
    118138            cell = replaceStr(cell, '"', '""');