開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
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-3をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
実習 14-3.
コード
sample.dart
import 'dart:html'; void main(){ InputElement input = querySelector('#f0'); InputElement run = querySelector('#run_dart'); InputElement clear = querySelector('#clear'); Element div = querySelector('#d0'); TextAreaElement textarea1 = new TextAreaElement(); TextAreaElement textarea2 = new TextAreaElement(); textarea1.readOnly = true; textarea2.readOnly = true; textarea1.style.width = '650px'; textarea1.style.overflow = 'auto'; textarea1.style.wordWrap = 'normal'; textarea1.cols = 2; textarea2.style.width = '650px'; textarea2.style.overflow = 'auto'; textarea2.style.wordWrap = 'normal'; textarea2.rows = 2; var reader = new FileReader(); run.onClick.listen((MouseEvent event){ String result = window.navigator.userAgent + '\n'; try{ File file = input.files.first; reader.readAsText(file); reader.onLoad.listen((Event event){ String contents = reader.result; List<String> strings = triple(contents); textarea1.text = strings.first; textarea2.text = strings[1]; div..append(textarea1) ..append(textarea2); }); } catch (e){ div.text = '$e'; } }); textarea1.onClick.listen((MouseEvent event) => textarea1.select()); textarea2.onClick.listen((MouseEvent event) => textarea2.select()); clear.onClick.listen((MouseEvent event) => div.text = ''); } List<String> triple(String s){ List<String> result = ['', '']; RegExp pattern = new RegExp(r'(\s+|\n)'); for (String x in s.split(pattern)){ if (!pattern.hasMatch(x) && !(x == '') && new RegExp(r'(-)?\d+').hasMatch(x)){ if (int.parse(x) % 3 == 0){ result[0] += '$x '; } else { result[1] += '$x '; } } } return result; }
0 コメント:
コメントを投稿