2013年11月22日金曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、3をDartで解いてみる。

その他参考書籍

9.5(練習問題)、3.

コード

sample.dart

import 'dart:html';

void main() {
  InputElement input = querySelector('#f0');
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    String result = '${window.navigator.userAgent}\n';
    try{
      File file = input.files[0];
      FileReader reader = new FileReader();
      reader.readAsText(file);
      reader.onLoad.listen((Event event){
        String text = reader.result;
        result += getAuthors(text).toString();
        pre.text = result;
      });
    } catch (e){
      result += e.toString();
      pre.text = result;
    }
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

Set<String> getAuthors(String text){
  Set<String> result = new Set<String>();
  List<String> lines = text.split('\n');
  RegExp pattern = new RegExp(r'^author', caseSensitive: false);
  for (String line in lines){
    if (pattern.hasMatch(line)){
      List<String> authors = line.substring('author'.length).split(',');
      result.addAll(authors.map((String s) => s.trim()));
    }
  }
  return result;
}















						

0 コメント:

コメントを投稿