MyNoteBook weblog

自作ソフトウェアや気になるものについて書いています

Adobe AIR その3 テキストファイルの読込

eyes0945.jpg
ブラウザはセキュリティの問題でローカルファイルを読み込むことができなかった。
それが、AIRではできるということでやってみた。
戸惑った点がいくつかあったので、参考に書いてみる。
このサイトを参考にしました。
所詮シロートなので、間違いはご容赦_(__;)ゞ

(1)f.addEventListener(air.Event.SELECT,do_file_open);ってところが最初よくわからなかったが、ファイルを選択するダイアログを開いて、ファイルが選択してOKボタンをクリックしたら、do_file_openという関数を実行するということらしい。
(2)ダイアログが開いたとき、表示させるファイルの拡張子を設定できる。
 var txt_ff = new air.FileFilter("テキスト","*.txt");
 var csv_ff = new air.FileFilter("csv","*.csv");
と複数作って、
 f.browseForOpen("どのファイルを開きますか?",[txt_ff,csv_ff]);
のように並べて記述する。配列なんだね。
(3)readUTFBytesをつかわずに、readMultiByteを使うと、文字コードがいろいろでも文字化けしないようです。(最後のsがあるのとないのがまぎらわしい)
(4)try{}catch{}でエラー処理も忘れずに。

できたソースはこんな感じです。
function data_open(){
 var f = new air.File();
 var fs = new air.FileStream();
 var txt_ff = new air.FileFilter("テキスト","*.txt");

 f.addEventListener(air.Event.SELECT,do_file_open); 
 f.browseForOpen("どのファイルを開きますか?",[txt_ff]); 

 function do_file_open(){
  try
  {
   fs.open(f,air.FileMode.READ);
   var inData = fs.readMultiByte(fs.bytesAvailable,air.File.systemCharset);
   document.getElementById("DataArea").value = inData;
   fs.close();
  }catch(Error){
   alert("ファイルが読み込めません。");
  }
 }
}
ソフトウエア | - | trackbacks (0)

Trackbacks

■同一カテゴリー記事(最新5)
CATEGORIES
NEW ENTRIES
RECOMMEND
【いちばんやさしい教える技術】…
いちばんやさしい教える技術

Book (発売日:2012-04-16)
【いままでのA面、B面ですと!?(通常盤)】…
いままでのA面、B面ですと!?(通常盤)

Music (発売日:2009-11-25)
RECENT TRACKBACK
ARCHIVES
PROFILE
OTHER