<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>SilverBouquet</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/category/1516.aspx</link><description>SilverBouquet</description><managingEditor>επιστημη</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>επιστημη</dc:creator><title>なかったけ?</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/29/98617.aspx</link><pubDate>Sat, 29 Sep 2007 02:32:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/29/98617.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/98617.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/29/98617.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/98617.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/98617.aspx</trackback:ping><description>&lt;P&gt;.NET Framework には&lt;STRONG&gt;ビット集合&lt;/STRONG&gt;ってないんだっけ?&lt;BR&gt;&lt;BR&gt;お遊びにこしらえました。メソッド少な杉...あとは任したぜ &amp;gt; とりこびっち&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;namespace SilverBouquet {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;BitSet&lt;/FONT&gt;&lt;/STRONG&gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private sbyte[] bits_;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int size_;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;/// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 長さnbitsビットのビット集合を作る&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="nbits"&amp;gt;ビット数&amp;lt;/param&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BitSet(int nbits) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size_ = nbits;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int nbytes = (nbits+7)/8;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bits_ = new sbyte[nbytes];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;/// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 第nビットの参照と設定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="n"&amp;gt;ビット番号&amp;lt;/param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;第nビットの値&amp;lt;/returns&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public bool this[int n] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return (bits_[n/8] &amp;amp; (1 &amp;lt;&amp;lt; n%8)) != 0; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { if ( value ) { bits_[n/8] |= (sbyte)(1 &amp;lt;&amp;lt; n%8); }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { bits_[n/8] &amp;amp;= (sbyte)~(1u &amp;lt;&amp;lt; n%8); } }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;/// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 第nビットを反転する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="n"&amp;gt;ビット番号&amp;lt;/param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&amp;nbsp; public void Flip(int n) { this[n] = !this[n]; }&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;/// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// ビット数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Size { get { return size_; } }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;/// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 二進数による表現&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;'0'と'1'で表したビット集合&amp;lt;/returns&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string ToString() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Text.StringBuilder sb = new System.Text.StringBuilder();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( int i = size_-1; i &amp;gt;= 0; --i ) sb.Append(this[i] ? '1' : '0');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sb.ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/98617.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>...なさげ。</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98241.aspx</link><pubDate>Thu, 27 Sep 2007 13:42:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98241.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/98241.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98241.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/98241.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/98241.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=viewpost.ascx_TitleUrl HREF="/episteme/archive/2007/09/27/98213.aspx"&gt;&lt;FONT color=#0000ff&gt;...ないの?&lt;/FONT&gt;&lt;/A&gt; 　のコメント:&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#808080&gt;? SilverBouquetにお渡しした私のクラスの中で、最初はyieldを使ってたのがあったんですけど、&lt;BR&gt;? Visual Basicに書き直す時にわからなかった（さらに長くなりそうだったｗ）ので...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;あー。SilverBouquetはキホンVisual Basic .Net なのね。&lt;BR&gt;んじゃまyield使ってない版。こいつならVBにportできまっしゃろ。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System.IO;&lt;BR&gt;using System.Collections.Generic;&lt;BR&gt;using System.Collections;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;namespace SilverBouquet.IO {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;? public class LineEnumerator : IEnumerator&lt;string&gt; {&lt;BR&gt;??? private TextReader reader_;&lt;BR&gt;??? private string line_;&lt;BR&gt;??? public LineEnumerator(TextReader reader) { reader_ = reader; }&lt;BR&gt;??? public string Current { get { return line_; } }&lt;BR&gt;??? object IEnumerator.Current &lt;BR&gt;????? { get { return line_; }}&lt;BR&gt;??? public bool MoveNext() &lt;BR&gt;????? { line_ = reader_.ReadLine(); return line_ != null; }&lt;BR&gt;??? public void Reset() { throw new System.InvalidOperationException("SilverBouquet.IO.LineEnumerator.Reset() can not be called"); }&lt;BR&gt;??? public void Dispose() {}&lt;BR&gt;? }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;? internal class LineEnumerable : IEnumerable&lt;string&gt; {&lt;BR&gt;??? private TextReader reader_;&lt;BR&gt;??? public LineEnumerable(TextReader reader) { reader_ = reader; }&lt;BR&gt;??? public IEnumerator&lt;string&gt; GetEnumerator() &lt;BR&gt;????? { return new LineEnumerator(reader_); }&lt;BR&gt;??? IEnumerator IEnumerable.GetEnumerator()&lt;BR&gt;????? { return new LineEnumerator(reader_); }&lt;BR&gt;? }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;? public static class Util {&lt;BR&gt;??? public static IEnumerable&lt;string&gt; ReadLines(TextReader reader) {&lt;BR&gt;????? return new LineEnumerable(reader);&lt;BR&gt;??? }&lt;BR&gt;? }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;// おためし&lt;BR&gt;public class Program {&lt;BR&gt;? public static void Main() {&lt;BR&gt;??? TextReader reader = new StreamReader("ふぁいる");&lt;BR&gt;??? foreach ( string line in SilverBouquet.IO.Util.ReadLines(reader) ) {&lt;BR&gt;????? System.Console.WriteLine(line);&lt;BR&gt;??? }&lt;BR&gt;??? reader.Close();&lt;BR&gt;? }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/98241.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>...ないの?</title><link>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98213.aspx</link><pubDate>Thu, 27 Sep 2007 11:20:00 GMT</pubDate><guid>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98213.aspx</guid><wfw:comment>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/98213.aspx</wfw:comment><comments>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/archive/2007/09/27/98213.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/comments/commentRss/98213.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/services/trackbacks/98213.aspx</trackback:ping><description>&lt;P&gt;テキストファイル(つかストリーム)を一行ずつ読み出すって&lt;BR&gt;日常茶飯事のコード:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;T&lt;FONT color=#0000ff&gt;extReader&lt;/FONT&gt; reader = new &lt;FONT color=#0000ff&gt;StreamReader&lt;/FONT&gt;("ふぁいる");&lt;BR&gt;string line;&lt;BR&gt;while ( (line = reader.&lt;FONT color=#ff0000&gt;ReadLine&lt;/FONT&gt;()) != null ) {&lt;BR&gt;? Console.WriteLine(line);&lt;BR&gt;}&lt;BR&gt;reader.Close();&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;まいどおなじみのパターンですねぃ。 &lt;BR&gt;&lt;FONT face="Courier New"&gt;IEnumerable&lt;string&gt;&lt;/FONT&gt; を返してくれるメソッドが見当たりません。&lt;BR&gt;# 探し方がヘタなんでしょか...&lt;BR&gt;&lt;BR&gt;MSDNの森を彷徨うのに疲れたのでこしらえました。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System.IO;&lt;BR&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;namespace SilverBouquet.IO {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;? public static class Util {&lt;BR&gt;??? public static IEnumerable&lt;string&gt; &lt;FONT color=#ff0000&gt;ReadLines&lt;/FONT&gt;(TextReader reader) {&lt;BR&gt;????? string result;&lt;BR&gt;????? while ( (result = reader.ReadLine()) != null ) {&lt;BR&gt;??????? yield return result;&lt;BR&gt;????? }&lt;BR&gt;??? }&lt;BR&gt;? }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;// おためし&lt;BR&gt;public class Program {&lt;BR&gt;? public static void Main() {&lt;BR&gt;??? TextReader reader = new StreamReader("ふぁいる");&lt;BR&gt;??? foreach ( string line in &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;SilverBouquet.IO.Util.ReadLines&lt;/FONT&gt;&lt;/STRONG&gt;(reader) ) {&lt;BR&gt;????? System.Console.WriteLine(line);&lt;BR&gt;??? }&lt;BR&gt;??? reader.Close();&lt;BR&gt;? }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;επιστημηはSilverBouquetプロジェクトを応援します。&lt;BR&gt;使えそうならパクってくだちい &gt; とりこびっち&lt;BR&gt;# yieldってステキ♪&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ｅｐｉｓｔｅｍｅ/aggbug/98213.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>