- ベストアンサー
テキストファイルの読み込み方法
すいません、また質問です。 http://hakuhin.hp.infoseek.co.jp/main/as3/loader.html#LOADER_03 var url : URLRequest = new URLRequest("test.txt"); var url_loader : URLLoader = new URLLoader(); // 読み込み完了時に呼び出されるイベント url_loader.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc); function LoaderInfoCompleteFunc (event : Event) { var str : String = url_loader.data; trace(str); } テキストファイルを外部から読み込んで表示させる方法は上記で分かりました。 テキストデータには以下の文章がタブ区切りで入っております。 さんま 1個 90円 たこ 1個 180円 上記の方法だとこれが全て表示されてしまっています。 これを一つ一つ表示や列、行だけ表示したいのですがどうすれば良いのでしょうか?。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ActionScript3.0 がわからない者(検証できないので回答したくない者)ですみません。 ActionScript2.0 では普通次のようにします。 Arrayクラス や Stringクラス は AS3 も 2 も基本的に同じだったと思います。 ご質問の本題は,読み込み方法ではなく,文字列データの操作です。 ロードと文字列データ操作は全く別ですから, とりあえず切り離して考えた方が良いです。 下記スクリプトは, 外部ファイルをロードして str に文字列を取得できたところからの続きです。 -------------------------------------------- // …上は略… var str : String = url_loader.data; // str を改行コードで分割して配列にする var tmp:Array = str.split("\n"); // データ用配列を作成(後に二次元配列になります) var arr:Array = new Array(); // 配列 tmp のエレメント数分 ループ for (var i:Number = 0; i<tmp.length; i++) { arr.push(tmp[i].split("\t")); } // … 検証 … trace("arr[0][0] = "+arr[0][0]); trace("arr[0][1] = "+arr[0][1]); trace("\n … … 略… … \n"); trace("arr[1][2] = "+arr[1][2]); -------------------------------------------- 改行コードを一応 \n としていますが, これはデータを作成するソフトによって変わります。 \r\n の場合もありますし \r の場合もあります。 TAB は \t で良いと思います。 ActionScript2.0 では, 数は Number しかないので // 配列 tmp のエレメント数分 ループ for (var i:Number = 0; i<tmp.length; i++) { としていますが, ActionScript3.0 では // 配列 tmp のエレメント数分 ループ for (var i:int = 0; i<tmp.length; i++) { になると思います。 その他,細かい部分が違う可能性もありますが, 大筋は上のように 配列に格納してしまう方法 でできると思います。
その他の回答 (1)
- suzuko
- ベストアンサー率38% (1112/2922)
一括表示ならば、書かれているスクリプトでいいでしょうが、ご要望の場合は、参考の「読み込んだデータを表示する」ではなく、その下の「XMLファイルを読み込む」をされるか、「TextField クラスについて 」の「テキストフィールドに文字を表示する」を使用されてはいかが?
お礼
お二人とも回答ありがとうございました。 BlurFiltan様 丁寧な説明で理解ができました。 2→3の説明もして頂きありがとうございました。