開発環境
- 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 コメント:
コメントを投稿