2014年4月3日木曜日

開発環境

初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)、9章(正規表現によるテキスト処理)の9.6(練習問題)3.をDartで考えてみる。

その他参考書籍

9.6(練習問題)3.

コード

sample.dart

import 'dart:html';

void main() {
  run.onClick.listen((MouseEvent event) {
    try {
      File file = input.files[0];
      reader.readAsText(file);
      reader.onLoad.listen((ProgressEvent event) {
        String before = reader.result;
        String temp1 = before.replaceAll(pattern1, '\0\0\0\0\0');
        String temp2 = temp1.replaceAll(pattern2, 'Fred');
        String after = temp2.replaceAll(pattern3, 'Wilma');
        t1
            ..text = before
            ..rows = before.split(pattern4).length
            ..style.width = '650px';
        t2
            ..text = after
            ..rows = after.split(pattern4).length
            ..style.width = '650px';
        div
            ..innerHtml = ''
            ..append(new Text('元の内容'))
            ..append(new BRElement())
            ..append(t1)
            ..append(new BRElement())
            ..append(new Text('置換後'))
            ..append(new BRElement())
            ..append(t2);
      });
    } catch (e) {
      div.text = '$e';
    }
  });
  t1.onClick.listen((MouseEvent event) => t1.select());
  t2.onClick.listen((MouseEvent event) => t2.select());
}

ButtonElement run = querySelector('#run_dart');
InputElement input = querySelector('#f0');
DivElement div = querySelector('#d0');
FileReader reader = new FileReader();
TextAreaElement t1 = new TextAreaElement();
TextAreaElement t2 = new TextAreaElement();
RegExp pattern1 = new RegExp(r'fred', caseSensitive: false);
RegExp pattern2 = new RegExp(r"wilma", caseSensitive: false);
RegExp pattern3 = new RegExp('\0\0\0\0\0');
RegExp pattern4 = new RegExp(r'\n');

0 コメント:

コメントを投稿