<?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>Fx1.0/1.1/2.0</title><link>http://blogs.wankuma.com/gshell/category/1060.aspx</link><description>.Net Framework2.0以前</description><managingEditor>ghost_shell (gshell@wankuma.com)</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>【落とし穴】　イテレータはラムダ式、匿名メソッド内では使えない</title><link>http://blogs.wankuma.com/gshell/archive/2008/04/04/IteratorInFunc.aspx</link><pubDate>Fri, 04 Apr 2008 18:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2008/04/04/IteratorInFunc.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/131709.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2008/04/04/IteratorInFunc.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/131709.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/131709.aspx</trackback:ping><description>&lt;p style="line-height: 2em"&gt;下図の中にあるコードは「yield ステートメントは、匿名メソッドまたはラムダ式の内部では使用できません」というコンパイルエラーが出ます。 &lt;/p&gt;  &lt;p style="line-height: 2em"&gt;&lt;a href="http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc1.png"&gt;&lt;img title="IteratorInFunc1.png (PNG Image, 852x1020 pixels) - Scaled (73%)" height="150" alt="http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc1.png" src="http://capture.heartrails.com/medium?http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc1.png" width="200" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p style="line-height: 2em"&gt;では、Result型のイテレータを返す関数オブジェクト（Func&amp;lt;IEnumerable&amp;lt;Result&amp;gt;&amp;gt;&lt;ienumerable&gt;&lt;tresult&gt;）は作れないのでしょうか？&lt;/p&gt;  &lt;p style="line-height: 2em"&gt;いえ、あります。    &lt;br /&gt;上の図のスタティックコンストラクタの２行目※の部分です。     &lt;br /&gt;※テキストの改行ではなくセミコロン基準です。&lt;/p&gt;  &lt;pre style="color: #eeeeee; background-color: #444444"&gt;            iterateFunc = new Func&amp;lt;IEnumerable&amp;lt;int&amp;gt;&amp;gt;(Iterate);&lt;/pre&gt;
&lt;p style="line-height: 2em"&gt;ラムダ式では式（構文）として記述できないだけで、宣言箇所と呼び出し方法の組み合わせによって動作が変わることはありません。 
  &lt;br /&gt;これはデリゲートや匿名メソッドで行った場合も当てはまります。 &lt;/p&gt;
&lt;p style="line-height: 2em"&gt;説明すればするほど、「あぁ、そんなことか。試してみるまでもないじゃん。」と思う人が増えるので、解説が不親切ですがこの辺でやめておきます。 
  &lt;br /&gt;（この記事の最後に貼ってある「この記事に関係する過去の記事」もご覧ください。）&lt;/p&gt;
&lt;p style="line-height: 2em"&gt;動作するサンプルコードと実行中の様子を以下に示します。 &lt;/p&gt;
&lt;p style="line-height: 2em"&gt;&lt;/p&gt;
&lt;pre style="color: #eeeeee; background-color: #444444"&gt;using System;
using System.Collections.Generic;
using System.Threading;
namespace IteratorInFunc
{
    static class Program
    {
        // 逐次処理をする関数オブジェクト
        private static Func&amp;lt;IEnumerable&amp;lt;int&amp;gt;&amp;gt; iterateFunc; 
        // 1 メソッドによる実装
        private static IEnumerable&amp;lt;int&amp;gt; Iterate()
        {
            for (int i = 0; i &amp;lt; 10; ++i)
            {
                Thread.Sleep(1000);
                yield return i;
            }
        }
        // スタティックコンストラクタ
        static Program()
        {
            // 2 【コンパイルエラー】ラムダ式バージョン
            //iterateFunc =
            //    () =&amp;gt;
            //    {
            //        for (int i = 0; i &amp;lt; 10; ++i)
            //        {
            //            Thread.Sleep(1000);
            //            yield return i;
            //        }
            //    };
            iterateFunc = new Func&amp;lt;IEnumerable&amp;lt;int&amp;gt;&amp;gt;(Iterate);
        }
        // メインメソッド
        static void Main(string[] args)
        {
            foreach (var result in iterateFunc())
            {
                DateTime dt = DateTime.Now;
                System.Diagnostics.Debug.WriteLine(String.Format(&amp;quot;{0} {1}&amp;quot;, result, (dt.Second * 1000 + dt.Millisecond).ToString(&amp;quot;D5&amp;quot;)));
            }
        }
    }
}&lt;/pre&gt;
&lt;p style="line-height: 2em"&gt;&lt;a href="http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc2.png"&gt;&lt;img title="IteratorInFunc2.png (PNG Image, 852x1045 pixels) - Scaled (71%)" height="150" alt="http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc2.png" src="http://capture.heartrails.com/medium?http://gshell.wankuma.com/images/2008/4-6/IteratorInFunc2.png" width="200" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;fieldset&gt;&lt;legend&gt;この記事に関係する過去の記事&lt;/legend&gt;
  &lt;p style="line-height: 2em"&gt;&lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/16/InvalidUsageOfYieldReturn.aspx"&gt;【落とし穴】 yield return の間違った使い方 （2007年8月16日） 
      &lt;br /&gt;http://blogs.wankuma.com/gshell/archive/2007/08/16/InvalidUsageOfYieldReturn.aspx&lt;/a&gt;&lt;/p&gt;
&lt;/fieldset&gt; 
 &lt;hr /&gt;  &lt;p style="line-height: 2em"&gt;(Posted Date) 19:20&lt;/p&gt; &lt;img src ="http://blogs.wankuma.com/gshell/aggbug/131709.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>【Webメソッド】 サーバー処理で使っている独自型をクライアントアプリケーションで使うには</title><link>http://blogs.wankuma.com/gshell/archive/2008/02/27/UseDerivativeTypeInDotNetWebMethods.aspx</link><pubDate>Wed, 27 Feb 2008 15:41:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2008/02/27/UseDerivativeTypeInDotNetWebMethods.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/125195.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2008/02/27/UseDerivativeTypeInDotNetWebMethods.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/125195.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/125195.aspx</trackback:ping><description>&lt;fieldset style="line-height: 2em"&gt;&lt;legend&gt;この記事の対象&lt;/legend&gt;対象開発環境： Visual Studio { 2005で確認 } 
  &lt;br /&gt;対象開発言語： C#(CSharp), VB.NET 他 （Visual Studio搭載言語） 
  &lt;br /&gt;対象実行環境: .NET対応Webサーバー、.NET Frameworkインストール済みクライアント&lt;/fieldset&gt; 
&lt;p style="line-height: 2em"&gt;.NETの基本型ではない独自で作成した型を引数や戻り値の型にしたメソッドをWebメソッドとして公開したいときがあります。 
  &lt;br /&gt;これはできます。特別な操作は要りません。&lt;/p&gt;
&lt;p style="line-height: 2em"&gt;ではそのWebメソッドをクライアントから呼ぶことはできるのでしょうか。 
  &lt;br /&gt;これもできます。特別な操作は要りません。 
  &lt;br /&gt;Web参照を追加した段階で、Web参照の名前空間に同名の型の宣言が作られます。 
  &lt;br /&gt;データはもちろんメタデータとも言える型の表現もXMLを通して行います。&lt;/p&gt;
&lt;p style="line-height: 2em"&gt;サーバーとクライアントで使用する共通クラスライブラリを作っていましたが、このことにより不要になりました。 
  &lt;br /&gt;（サーバー側の使用している部分から見えるところに宣言します。）&lt;/p&gt;
&lt;p style="line-height: 2em"&gt;.NETのWebメソッドではプリミティブ型しか受け渡しできないことになっています。 
  &lt;br /&gt;スタブではなく同一の型（共通ライブラリの型）でやりとりしたくても、これはできません。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/125195.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>【落とし穴】ListControl に Items プロパティは無い</title><link>http://blogs.wankuma.com/gshell/archive/2007/09/07/NotExistItemsPropertyInListControl.aspx</link><pubDate>Fri, 07 Sep 2007 19:37:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/09/07/NotExistItemsPropertyInListControl.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/94675.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/09/07/NotExistItemsPropertyInListControl.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/94675.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/94675.aspx</trackback:ping><description>&lt;P&gt;cf: System.Windows.Forms（バージョン2.0.0.0）&lt;/P&gt;
&lt;P&gt;あるソースを見ていて「ComboBox限定にしなくていいのになー。」と思って何気なくMSDNライブラリを覗いて見たところ、ListControl に Items が定義されていませんでした。&lt;/P&gt;
&lt;P&gt;ＷＰＦでは相当する基底クラスに相当機能がありました。&lt;/P&gt;
&lt;P&gt;「ListControl に対する私のイメージが外れているのかな？」と思いながら調べていくと、派生クラスである ListBox、 ComboBox で ObjectCollection 型の Items が定義されていました。&lt;/P&gt;
&lt;P&gt;ObjectCollection クラス（IList インターフェースを実装しています）は XxxCollection というクラス名からメソッドやプロパティを想像通りに使うことができますが、どこで定義されているのだろうと気になり、それも調べてみました。&lt;/P&gt;
&lt;P&gt;＃（定義場所を見て）これって・・・&lt;BR&gt;＃したいとおもったことを現プロジェクト（２つのＣ＃製アプリケーションの統合）の他の箇所にも見つけました。&lt;BR&gt;＃リファクタリングって、楽しい！&lt;/P&gt;
&lt;P&gt;＃・・・って、スケジュールがおしていない状況だから言えるんですよね、おそらく。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/94675.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>色付き置換４</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/17/ReplaceWithColor_UseRichTextBox4.aspx</link><pubDate>Fri, 17 Aug 2007 19:28:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/17/ReplaceWithColor_UseRichTextBox4.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90778.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/17/ReplaceWithColor_UseRichTextBox4.aspx#Feedback</comments><slash:comments>29</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90778.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90778.aspx</trackback:ping><description>&lt;P&gt;19時です。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/16/ReplaceWithColor_UseRichTextBox3.aspx"&gt;昨日紹介した方法&lt;/A&gt;でよく分からないバグ（下の方で選択位置がずれていました）がありました。&lt;/P&gt;
&lt;P&gt;原因を解明せず、Match.Value プロパティ（一致した部分文字列）をもう一度 RichTextBox.Find （戻り値はテキストでの位置です）で探す安全策をとりました。&lt;BR&gt;（ RichTeatBox.Find メソッドで検索開始位置を指定して対象を絞り込むこめます。）&lt;/P&gt;
&lt;P&gt;見切りを付けたのが早かったので時間はとられなかったのですが、今日も正規表現の洗礼が・・・。&lt;/P&gt;
&lt;P&gt;プレビュー画面が表示されない！&lt;BR&gt;（どういうわけかフリーズはしていませんでした。）&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;何とか自力で解決しました。&lt;BR&gt;（今回初挑戦で、名前付きキャプチャーを使用したタグ付き置換、MatchEvaluatorを使った置換までの一通りのことはやりましたが、手なずけたと思わないように身構えています。）&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;今日で現在の開発を終了することになりました。&lt;/P&gt;
&lt;P&gt;月末まではプログラミングに携われなさそうなので、今日でこの連載はひとまず終了とさせていただきます。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90778.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>【落とし穴】　yield return の間違った使い方</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/16/InvalidUsageOfYieldReturn.aspx</link><pubDate>Thu, 16 Aug 2007 18:41:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/16/InvalidUsageOfYieldReturn.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90615.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/16/InvalidUsageOfYieldReturn.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90615.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90615.aspx</trackback:ping><description>    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p&gt;
        voidメソッドを書いているときに不意に「処理で得られた情報を返してやろう。」と戻り値の型を変更して、yield return なんてしたら駄目ですよ。&lt;/p&gt;
    &lt;p&gt;
        たとえ DEBUG モードでも処理は行われませんよ。&lt;br /&gt;
        （foreachブロックで使わないとメソッドは実行されません。）&lt;/p&gt;
    &lt;p&gt;
        補足１．イテレータ（yield return, yield break）を使う場合、型はIEnumerable&amp;lt;T&amp;gt;（←リストなどを返す場合）、IEnumerator&amp;lt;T&amp;gt;両方解釈してくれます。&lt;br /&gt;
        補足２．.Net Framework 1.xで使える従来の IEnumerable / IEnumerable&amp;lt;T&amp;gt; オブジェクトを返す手段では、得られるオブジェクトを使わなくても処理は行われます。&lt;/p&gt;
    &lt;p&gt;
        ＃イテレータはクラスに展開されている、実際に処理が中断・再開されている、ことは理解していたのに陥りました。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        参考リンク　　&lt;a href="http://journal.mycom.co.jp/articles/2005/09/29/dotnet2/index.html"&gt;http://journal.mycom.co.jp/articles/2005/09/29/dotnet2/index.html&lt;/a&gt;&lt;/p&gt;
        &lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90615.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>GetLineFrom「茶～。」Index　色付き置換３</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/16/ReplaceWithColor_UseRichTextBox3.aspx</link><pubDate>Thu, 16 Aug 2007 12:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/16/ReplaceWithColor_UseRichTextBox3.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90570.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/16/ReplaceWithColor_UseRichTextBox3.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90570.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90570.aspx</trackback:ping><description>    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p&gt;
        月曜に最低アクセス数（7/9～）を記録し、火曜持ち直しました。&lt;br /&gt;
        昨日（水曜）はさらに増えたのですが、コメントは付きませんでした。&lt;br /&gt;
        ＃反応がつきにくいのは分かっていますが、ちょっと悲しいです。&lt;/p&gt;
    &lt;p&gt;
        それでもフォローアップはしていきます。&lt;/p&gt;
    &lt;p&gt;
        &lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox.aspx" title="タイトル：色付き置換 (RichTextBox)"&gt;起点となったエントリ&lt;/a&gt;では「RichTextBoxを使ってテキスト修正（文字列置換）のプレビュー機能を作れます」&lt;br /&gt;
        &lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox2.aspx" title="タイトル：色付き置換 (RichTextBox) の続き"&gt;続きのエントリ&lt;/a&gt;では「RichTextBox中の部分文字列の位置指定の挙動が思った通りではありませんでした」&lt;br /&gt;
        といった内容で書きました。&lt;/p&gt;
    &lt;p&gt;
        原因について、RichTextBoxでは改行は目に見える文字ではないので文字数をカウントしていない、と推理してみました。&lt;/p&gt;
    &lt;p&gt;
        とりあえず以下のコードに書き換えて動かしてみました。（上が前回のコード、下が新しいコード）&lt;/p&gt;
    &lt;p class="csharpcode"&gt;
        Match match = new Regex("t").Match(richTextBox_Preview.Text);&lt;br /&gt;
        &lt;span class="kwrd"&gt;while&lt;/span&gt; (match.Success)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.Select(match.Index, match.Length);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = match.NextMatch();&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p class="csharpcode"&gt;
        Match match = new Regex("t").Match(richTextBox_Preview.Text&lt;b&gt;.Replace("\n", "")&lt;/b&gt;);&lt;br /&gt;
        &lt;span class="kwrd"&gt;while&lt;/span&gt; (match.Success)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.Select(match.Index, match.Length);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = match.NextMatch();&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p&gt;
        非検索文字列から改行を取り除いて文字列検索しています。&lt;br /&gt;
        richTextBox_Preview.Text.Replace("\n", "") しても richTextBox_Preview.Text は上と変わっていないこと[改行入りのまま]に注意してください。&lt;/p&gt;
    &lt;p&gt;
        これはうまくいきます。実際の文字列と違うことになっていますが、行数を調べなくていいので、場合によってはかなり有用です。&lt;/p&gt;
    &lt;p&gt;
        開始位置を補正する方法も考えてみました。&lt;/p&gt;
    &lt;p class="csharpcode"&gt;
        Match match = new Regex("t").Match(richTextBox_Preview.Text);&lt;br /&gt;
        &lt;span class="kwrd"&gt;while&lt;/span&gt; (match.Success)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.Select(&lt;b&gt;ToRTBIndex(richTextBox_Preview, &lt;/b&gt;match.Index&lt;b&gt;)&lt;/b&gt;, match.Length);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = match.NextMatch();&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p&gt;
        ToRTBIndexメソッドは以下になります。&lt;/p&gt;
    &lt;p class="csharpcode"&gt;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; ToRTBIndex(RichTextBox rtb, &lt;span class="kwrd"&gt;int&lt;/span&gt; matchindex)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kwrd"&gt;int&lt;/span&gt; rtbindex = matchindex - rtb.GetLineFromCharIndex(matchindex);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kwrd"&gt;while&lt;/span&gt; (rtbindex + rtb.GetLineFromCharIndex(rtbindex) &lt; matchindex)&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rtbindex++;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="kwrd"&gt;return&lt;/span&gt; rtbindex;&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p&gt;
        注意が必要なのはRichTextBoxの設定です。&lt;br /&gt;
        これを使う場合はWordWrap（右端で改行するかどうか）をFalseにしておく必要があります。&lt;br /&gt;
        Trueで試していて「自動改行されていないのにな～。おかしいな～。」と思ったら、400ピクセル四方のウィンドウをデバッグごとに手動で最大化していたことに気づかなかった、なんてことがありました。&lt;/p&gt;
    &lt;p&gt;
        参考にどうぞ　　&lt;a href="http://dobon.net/vb/dotnet/control/tbgetcaretposition.html"&gt;TextBox（またはRichTextBox）の現在のカレット位置（行と列）を取得する&lt;/a&gt;　(DOBON.NET)&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        ＃【アンケート】 仕事中、プログラミング中、何を飲んでいますか。&lt;br /&gt;
        ＃お茶（←ペットボトル飲料）が多いです。コーヒー（←インスタントコーヒー）も飲みますが、コーヒーばっかりはないですかね。&lt;br /&gt;
        ＃利尿作用があるといわれていますが、トイレに行くと気分転換になるので支障はありません。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90570.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>色付き置換 (RichTextBox) の続き</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox2.aspx</link><pubDate>Wed, 15 Aug 2007 18:22:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox2.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90445.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox2.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90445.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90445.aspx</trackback:ping><description>    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px; font-family: Consolas, 'Courier New', Courier, Monospace; background-color: #ffffff;"&gt;
        for (int i = 0; i &lt; regexes.Count; ++i)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text = regexes[i].Replace(text, replaces[i]);&lt;br /&gt;
        }&lt;br /&gt;&lt;/p&gt;
    &lt;p&gt;
        &lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox.aspx" title="タイトル：色付き置換 (RichTextBox)"&gt;前エントリ&lt;/a&gt;では RichTextBox を使った検索箇所強調表示置換のアイデアを書きました。&lt;/p&gt;
    &lt;p&gt;
        このアイデアでは上記のような text 自身を更新する置換コードは使えません。タグ付き正規表現で置換する場合はRegex.Replaceメソッドも使っていくことになると思いますが、使用するメソッドは
        Regex.Replace からRegex.Match に代わります。&lt;/p&gt;
    &lt;p&gt;
        Regex.Match は Match クラス（ System.Text.RegularExpressions 名前空間）のインスタンスを返します。 Match
        クラスを深く知るには、スーパークラスである Group や Capture についても知っておくと良いでしょう。&lt;/p&gt;
    &lt;p&gt;
        置換の方法を詳しく知りたかったので今まではあまり役に立ちませんでしたが、下記の記事ではMatchクラスをよく知ることが出来ます。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px"&gt;
        Title: スマートな文字列処理のための正規表現入門（後編）&lt;br /&gt;
        URL  : &lt;a href="http://www.atmarkit.co.jp/fdotnet/basics/regex02/regex02_01.html"&gt;http://www.atmarkit.co.jp/fdotnet/basics/regex02/regex02_01.html&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;
        &lt;span style="font-family: Consolas, 'Courier New', Courier, Monospace"&gt;一通り上記の記事とMSDNライブラリのクラスライブラリを読み、&lt;/span&gt;やってみました。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px; font-family: Consolas, 'Courier New', Courier, Monospace; background-color: #ffffff;"&gt;
        Match match = new Regex("xml").Match(richTextBox_Preview.Text);&lt;br /&gt;
        while (match.Success)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.Select(match.Index, match.Length);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = match.NextMatch();&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p&gt;
        ASCIIの範囲内で（マルチバイト文字出現前で）したのに&lt;br /&gt;
        &lt;span style="font-size:x-large"&gt;「あれっ？ 微妙にずれている？？」&lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        &lt;span style="font-size:large; font-weight:bold"&gt;&lt;span style="font-size:xx-large; font-weight:bold; color:#eeeeee; background-color:#222222;"&gt;謎&lt;/span&gt;は解けた！&lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;
        より多くヒットするように "xml" ではなく "t" １文字にしてみました。（読み込んでいるのはXHTML 1.0 Transitional文書です。）&lt;br /&gt;
        &lt;b&gt;太字行&lt;/b&gt;について：Match オブジェクトの Index 、 Length は最初の Match メソッドで渡した被検索文字列に対しての値ではありますが、文字数が同じなのでこれでも問題はありません。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px; font-family: Consolas, 'Courier New', Courier, Monospace; background-color: #ffffff;"&gt;
        Match match = new Regex("&lt;b&gt;t&lt;/b&gt;").Match(richTextBox_Preview.Text);&lt;br /&gt;
        while (match.Success)&lt;br /&gt;
        {&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.Select(match.Index, match.Length);&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;richTextBox_Preview.SelectedText = match.Value;&lt;/b&gt;&lt;br /&gt;
        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = match.NextMatch();&lt;br /&gt;
        }&lt;/p&gt;
    &lt;p&gt;
        １行目でヒットしたものは正しいです。真ん中にもなるとでたらめにしか見えませんが、それでも上の方は惜しかったりします。&lt;/p&gt;
    &lt;p&gt;
        そして気づきました。行数に応じて後ろに下がっているー！&lt;/p&gt;
    &lt;p&gt;
        RichTextBoxのSelectメソッドでは改行が無視されるのかな。 装飾の１つ？&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90445.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>色付き置換 (RichTextBox)</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox.aspx</link><pubDate>Wed, 15 Aug 2007 14:19:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90399.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/15/ReplaceWithColor_UseRichTextBox.aspx#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90399.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90399.aspx</trackback:ping><description>    &lt;p&gt;
        色付き置換 (RichTextBox)&lt;/p&gt;
    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p&gt;
        たまたま昨日書いた３つのエントリのうち２つを合わせたかのようなタイトルではありますが、今日はそんなことをしました。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px"&gt;
        &lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/14/90300.aspx"&gt;.Net Framework で 名前付き タグ付き置換（正規表現置換）を行う&lt;/a&gt;&lt;br /&gt;
        &lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/14/ApplicationIdea_ColoredCode.aspx"&gt;色付きコード&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;
        今、置換メソッドを使うプログラムを作っています。&lt;/p&gt;
    &lt;p&gt;
        どういう目的で置換をするのかというと、テキストの修正です。&lt;/p&gt;
    &lt;p&gt;
        このことは&lt;A href="http://blogs.wankuma.com/gshell/archive/2007/08/14/DotNetStudy_Exception1.aspx" title="タイトル：.Net Framework ケーススタディ　例外編１"&gt;もう１つのエントリ&lt;/a&gt;とも関連していきます。別のプログラム、テンプレートを使って作られたテキストベースのファイルを正しい、統一された書式に近づけていく作業です。&lt;/p&gt;
    &lt;p&gt;
        ＃わずらわしいですね。もう１回言ってしまうと、今やっているのはWebサイトの移行作業です。&lt;/p&gt;
    &lt;p&gt;
        修正後のファイルをWebブラウザ（WebBrowserコントロール）とテキストボックス（TextBoxコントロール）に表示して、確認してから上書きすることにしているのですが、利用する立場になると「変更箇所を提示する」という改良案を優先して実装したくなります。&lt;/p&gt;
    &lt;p&gt;
        案は３つあります。&lt;/p&gt;
    &lt;p&gt;
        １．HTMLのタグで色付けしてWebブラウザで表示する。&lt;br /&gt;
        ２．RichTextBox に読み込み、プログラムで制御して色付けする。&lt;br /&gt;
        ３．.Net Framework 3.0 の RichTextBox 、 FlowDocument を作る。&lt;/p&gt;
    &lt;p&gt;
        １の場合、ブログ投稿ツールのようなHTML編集機能が使えるとしても、置換処理の際には関係のない装飾タグを挿入することができないので、装飾情報を別途保管し、HTML化まで行わないといけません。またテキストに含まれる&amp;lt;,&amp;gt;を文字参照に置き換えないといけません。色付けするのがHTMLソースなので置換箇所は多いです。&lt;/p&gt;
    &lt;p&gt;
        今まで一度もテキストエディタ、ＨＴＭＬエディタを製作しようと思ったことがないので、 RichTextBox なんて使ったことがなかったのですが、使ってみました。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px"&gt;
        余談になります。テキストエディタなんて作っても今あるフリーソフトに実用性で勝てるわけないと考えている私ですが、文書エディタの開発を構想中です。&lt;/p&gt;
    &lt;p&gt;
        以下が実行してみた２のサンプルコードです。&lt;br /&gt;
        （３はしませんでした。System.Windows.Forms.Form で Fx3.0 の System.Windows.Controls.Control を使うにはホストをするはずだけど、それって難しいのかな？）&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px; font-family: Consolas, 'Courier New', Courier, Monospace; background-color: #ffffff;"&gt;
        richTextBox_Preview.Select(20, 5);&lt;br /&gt;
        richTextBox_Preview.SelectionColor = Color.Red;&lt;br /&gt;
        richTextBox_Preview.SelectedText = "置換してやったぜ～～～。";&lt;/p&gt;
    &lt;p&gt;
        開始位置と長さを引数にして Select することで部分が選択され、 SelectionColor で色指定しています。&lt;br /&gt;
        さらに SelectedText を設定することで選択部分が新たな文字列が置き換わります。&lt;/p&gt;
    &lt;p&gt;
        このすごいところが、&lt;br /&gt;
        文字数は違ってもきちんとテキストが置き換わっていること、（普通ですが、１でやろうと思うと・・・。）&lt;br /&gt;
        そして、文字数が違っても（「置換してやったぜ～～～。」の部分全てが）赤色で置き換わっていること、（これもブログ投稿ツールやWebページエディタの挙動と一致しますが、一からやろうと思うと・・・。）&lt;br /&gt;
        です。&lt;/p&gt;
    &lt;p&gt;
        RichTextBox は内部的にテキストと装飾情報に分かれているようです。なので単純な置換であれば Replace ではなく、 Select メソッドと SelectedText プロパティを使用するようにすれば、後はその間に SelectedColor 等の変更を入れてあげるだけで、従来のテキストの置換と同じ感覚で変更箇所を装飾できるようになります。&lt;/p&gt;
    &lt;p&gt;
        ただし、問題もあります。&lt;/p&gt;
    &lt;p&gt;
        ・処理が遅くなる。&lt;br /&gt;
        （一括自動処理ではなく）プレビューで使われるので、何倍時間がかかったかではなく、使う人の感覚次第ってことでシビアな問題ではなさそうです。私はするつもりはありませんが、高速化の情報については下の覚え書きを参考にししてください。&lt;/p&gt;
    &lt;p&gt;
        ・置換処理の書き方に互換性がない。&lt;br /&gt;
        プログラムソースそのものを置換して RichTextBox を使った方法に変更できなくはないが、どちらを使うのにもほとんど変更しなくていいようなユーティリティクラスを作って利用したいところです。&lt;/p&gt;
    &lt;p&gt;
        参考になるリンク（覚え書き） &lt;a href="http://www.geocities.jp/hatanero/"&gt;http://www.geocities.jp/hatanero/&lt;/a&gt;&lt;br /&gt;
        「ソフト工房 波田」というページにリンクします。「プログラムはプロブレム」の中にRichTextBoxについてのリンクがあります。
    &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90399.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>.Net Framework で 名前付き タグ付き置換（正規表現置換）を行う</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/14/90300.aspx</link><pubDate>Tue, 14 Aug 2007 19:15:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/14/90300.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90300.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/14/90300.aspx#Feedback</comments><slash:comments>31</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90300.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90300.aspx</trackback:ping><description>    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p&gt;
        疲れたー。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        社内には正規表現に関する書籍がありません。&lt;/p&gt;
    &lt;p&gt;
        社内には正規表現を詳しく紹介するＣ＃の書籍がありません。&lt;br /&gt;
        （たぶんＣ＃関連で正規表現による置換を扱っている書籍自体が少ないです。）&lt;/p&gt;
    &lt;p&gt;
        そうなるとウェブで探すことになります。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        はぁ・・・、もう何度検索したことか。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        それでも、タイトルにある「タグ付き正規表現による置換」（勝手に略して、タグ付き置換！）は何とか習得しました。&lt;br /&gt;
        処理がブラックボックスなので自信はあまりありません。&lt;/p&gt;
    &lt;p&gt;
        今までは「キャプチャ（()）」に対して $0 S1 &amp;#8230; とやってきましたが、「名前付きキャプチャ（(?&amp;lt;name&amp;gt;...）」を使ってみようと思い、調べました。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        はぁ・・・。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        置換文字列をどうすればいいか検索で見つけた中には書いてありませんでした。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        これで合っているかなぁ？&lt;/p&gt;
    &lt;p class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; explanations = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;
&lt;span class="kwrd"&gt;private&lt;/span&gt; List&amp;lt;Regex&amp;gt; regexes = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Regex&amp;gt;();&lt;br /&gt;
&lt;span class="kwrd"&gt;private&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; replaces = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
explanations.Add(&lt;span class="str"&gt;"OK &amp;lt;br * /&amp;gt;"&lt;/span&gt;);&lt;br /&gt;
regexes.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(&lt;span class="str"&gt;"(?&amp;lt;all&amp;gt;&amp;lt;br[^&amp;lt;&amp;gt;]*?/ *&amp;gt;)"&lt;/span&gt;));&lt;br /&gt;
replaces.Add(&lt;span class="str"&gt;"&lt;b&gt;${all}&lt;/b&gt;"&lt;/span&gt;);&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        ＃盆だからアドバイス来ないだろうなー ＯＴＬ （３連続ＯＴＬをもって明日からはいつも通りにしたい ＯＴＬ）&lt;br /&gt;
        ＃その場合は盆明けにでも書き直して投稿しよー。&lt;/p&gt;
    &lt;p&gt;
        ついでに１部署に１冊は欲しい ".NET Frameworkでも使える正規表現の良本" があれば教えてください。&lt;/p&gt;
    &lt;p&gt;
        参考になるリンク（覚え書き） &lt;a href="http://hodade.adam.ne.jp/seiki/"&gt;http://hodade.adam.ne.jp/seiki/&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90300.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghost_shell (gshell@wankuma.com)</dc:creator><title>.Net Framework ケーススタディ　例外編１</title><link>http://blogs.wankuma.com/gshell/archive/2007/08/14/DotNetStudy_Exception1.aspx</link><pubDate>Tue, 14 Aug 2007 13:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/gshell/archive/2007/08/14/DotNetStudy_Exception1.aspx</guid><wfw:comment>http://blogs.wankuma.com/gshell/comments/90224.aspx</wfw:comment><comments>http://blogs.wankuma.com/gshell/archive/2007/08/14/DotNetStudy_Exception1.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/gshell/comments/commentRss/90224.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/gshell/services/trackbacks/90224.aspx</trackback:ping><description>    &lt;p class="category"&gt;
        カテゴリ：.Net Framework&lt;/p&gt;
    &lt;p&gt;
        &lt;span style="font-size:large"&gt;こんな例外クラス欲しくありませんか？&lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;
        &lt;span style="font-size:x-large"&gt;FileNotFormattedException&lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        私は「作ってくれればいいのにー。」ってだけでなく、&lt;br /&gt;
        &lt;br /&gt;
        throw new FileNotFormattedException&amp;#8230;
        &lt;br /&gt;
        &lt;br /&gt;
        と書いては、「そうね。そんなクラス無かったよね。」と思い返すことを何回かしています。&lt;/p&gt;
    &lt;p&gt;
        （&lt;span style="font-size:large"&gt;※ &lt;span style="color:#ff5555"&gt; ボケ&lt;/span&gt;てはいませんよ。&lt;/span&gt;&lt;span style="font-size:x-small"&gt;分かってはいるけど、せずにはいられないのです。&lt;/span&gt;）&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        FileNotFormattedExceptionは以下の時に発生します。&lt;/p&gt;
    &lt;p style="margin: 20px 40px 20px 40px"&gt;
        ファイルは存在し、取り出すこともできるが、特定の形式になっていない場合。&lt;br /&gt;
        例えばテキスト形式データで、必須のヘッダが無いなど。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        .Net FrameworkにFileNotFormattedExceptionなるクラスが無い理由を考えてみました。&lt;/p&gt;
    &lt;p&gt;
        １．.Net Frameworkを設計する上でそういう状況に陥らないから。&lt;/p&gt;
    &lt;p&gt;
        ２．「ファイル形式になっていない」は「○○ファイルではない」に詳細化できるため、実は意味が無いから。&lt;/p&gt;
    &lt;p&gt;
        &amp;nbsp;&lt;/p&gt;
    &lt;p&gt;
        って、ケーススタディになってねぇ～。&lt;/p&gt;
    &lt;p&gt;
        ＃それよりも肝心な意図が伝わらねぇ～。 ＯＴＬ&lt;/p&gt;
    &lt;p&gt;
        続く（予）&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/gshell/aggbug/90224.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>