開発環境
- 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 (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅢ部(高度なプログラミング概念)の18章(モジュールプログラミング)、18-14(プログラミング実習)、実習18-1.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
18-14(プログラミング実習)、実習18-1.
コード
sample45library.dart
library sample45library; String defineHeader(String heading){ return '見出し: $heading\n'; } Map f(int n, String s){ var result = ''; var lineno = n; var lines = s.split('\n'); var rows = lines.length; var cols = lines.fold(0, (int prev, var elem) => elem.length > prev ? elem.length : prev); for(var line in lines){ if(n == 11){ result += '$lineno: \f$line\n'; n = 1; } else { result += '$lineno: $line\n'; } n += 1; lineno += 1; } return {'rows': rows, 'cols': cols, 'result':result}; }
コード
sample.dart
import 'dart:html'; import 'sample45library.dart' as lib; void main(){ InputElement input = querySelector('#f0'); InputElement run = querySelector('#run_dart'); InputElement clear = querySelector('#clear'); Element div = querySelector('#d0'); TextAreaElement textarea = new TextAreaElement(); textarea.readOnly = true; textarea.style.width = '650px'; textarea.style.overflow = 'auto'; textarea.style.wordWrap = 'normal'; run.onClick.listen((MouseEvent event){ div.innerHtml = window.navigator.userAgent + '<br />'; textarea.text = '1: ' + lib.defineHeader('出力'); textarea.rows = 1; try{ var file = input.files.first; var reader = new FileReader(); reader.readAsText(file); reader.onLoad.listen((Event event){ String contents = reader.result; var result = lib.f(2, contents); textarea.rows += result['rows']; textarea.text += result['result']; div.append(textarea); }); }catch(e){ div.innerHtml += e.toString(); } }); clear.onClick.listen((MouseEvent event) => div.innerHtml = ''); textarea.onClick.listen((MouseEvent event) => textarea.select()); }
0 コメント:
コメントを投稿