開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の8章(ファイル処理)、8.8(練習問題)、2.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
8.8(練習問題)、2.
コード
sample.dart
import 'dart:html'; void main(){ var run = querySelector('#run'), clear = querySelector('#clear'), pre0 = querySelector('#pre0'), reader = new FileReader(); InputElement input = querySelector('#f0'); run.onClick.listen((MouseEvent event){ var result = window.navigator.userAgent + '\n'; try { File file = input.files[0]; reader.readAsText(file); reader.onLoad.listen((Event event){ String text = reader.result; result += '元のテキスト\n'; result += '$text\n'; for (var item in readWeatherData(text)){ result += '$item\n'; } pre0.text = result; }); } catch (e){ result += e.toString(); pre0.text = result; } }); clear.onClick.listen((MouseEvent event) => pre0.text = ''); } List<List<num>> readWeatherData(String s){ List<List<List<num>>> result = []; var fields = [[[4, 'int'], [2, 'int'], [2, 'int']], [[2, 'int'], [2, 'int'], [2, 'int']], [[2, 'int'], [2, 'int'], [2, 'int']], [[6, 'double'], [6, 'double'], [6, 'double']]]; s = s.trim(); List<String> lines = s.split('\n'); for(String line in lines){ int start = 0; List record = []; for(List field in fields){ print(field); List<num> group = []; for (List f in field){ int width = f[0]; String t = f[1]; print(line); String text = line.substring(start, start + width); num value = t == 'int' ? int.parse(text) : double.parse(text); group.add(value); start += width; } record.add(group); } result.add(record); } return result; }
0 コメント:
コメントを投稿