2013年12月5日木曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の14章(ファイル入出力)、14.1(ファイル関数)、14.2(変換ルーチン)、14.3(バイナリファイルとASCIIファイル)、14.4(行終端にまつわる謎)、14.5(バイナリI/O)、14.6(バッファリングの問題)、14.7(バッファリングを行わないI/O)、14.8(ファイル形式の設計)、14.10(プログラミング実習)、実習 14-5をDartで解いてみる。

その他参考書籍

実習 14-5.

コード

sample.dart

import 'dart:html';

void main(){
  InputElement input = querySelector('#f0');
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  Element div = querySelector('#d0');
  TextAreaElement textarea = new TextAreaElement();
  textarea.readOnly = true;
  textarea.style.width = '650px';
  textarea.style.overflow = 'auto';
  textarea.style.wordWrap = 'normal';
  var reader = new FileReader();
  run.onClick.listen((MouseEvent event){
    pre.text = window.navigator.userAgent + '\n';
    try{
      File file = input.files.first;
      reader.readAsArrayBuffer(file);
      reader.onLoad.listen((Event event){
        Iterable contents = reader.result;
        String s = new String.fromCharCodes(
            contents.where((int n) => n & 0x80 == 0));
        textarea.rows = s.split('\n').length;
        textarea.text = s;
        div.append(textarea);
        textarea.select();
      });
    } catch (e){
      div.text = '$e';
    }
  });
  textarea.onClick.listen((MouseEvent event) => textarea.select());
  clear.onClick.listen((MouseEvent event) => div.text = '');
}


dart2jsで変換したJavaScriptだと上手くいかないみたい。

0 コメント:

コメントを投稿