<?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>.NET</title><link>http://blogs.wankuma.com/episteme/category/419.aspx</link><description>.NET</description><managingEditor>επιστημη</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>επιστημη</dc:creator><title>NUnit のカスタムConstraint</title><link>http://blogs.wankuma.com/episteme/archive/2008/12/27/165075.aspx</link><pubDate>Sat, 27 Dec 2008 00:44:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/12/27/165075.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/165075.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/12/27/165075.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/165075.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/165075.aspx</trackback:ping><description>&lt;P&gt;きょうびの NUnit では &lt;FONT face="Courier New" size=2&gt;NUnit.Framework.Constraints.Constraint &lt;/FONT&gt;から&lt;BR&gt;導出することで俺流検証クラスが定義できるっぽい。&lt;BR&gt;ちょいとやってみる。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System;&lt;BR&gt;using NUnit.Framework;&lt;BR&gt;using NUnit.Framework.SyntaxHelpers;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;using Wankuma.Episteme.Extensions;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;namespace Wankuma.Episteme.Extensions {&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 LikeString : NUnit.Framework.Constraints.Constraint {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string key_;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public LikeString(string key) { key_ = key; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 検証メソッド&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override bool Matches(object actual) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.actual = actual;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string val = actual as string;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// actualが文字列であり、key_を含むならtrue&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return val != null &amp;amp;&amp;amp; val.Contains(key_);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 出力&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void WriteDescriptionTo(MessageWriter writer) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.WriteExpectedValue(key_);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write(&lt;FONT color=#ff1493&gt;"っぽい文字列");&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 文字列に "っぽい" を拡張&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class ConstraintExtension {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Constraint &lt;FONT color=#0000ff&gt;っぽい&lt;/FONT&gt;(this string arg) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new LikeString(arg);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;namespace NUnitTrial {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestFixture]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Class1 {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Test] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void one() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.That( &lt;FONT color=#ff1493&gt;"わんくま"&lt;/FONT&gt;, &lt;FONT color=#ff1493&gt;"くま"&lt;/FONT&gt;.&lt;FONT color=#0000ff&gt;っぽい&lt;/FONT&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; [Test] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void two() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.That( &lt;FONT color=#ff1493&gt;"にゃんとら"&lt;/FONT&gt;, &lt;FONT color=#ff1493&gt;"くま"&lt;/FONT&gt;.&lt;FONT color=#0000ff&gt;っぽい&lt;/FONT&gt;());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;実行結果:&lt;BR&gt;&lt;/P&gt;&lt;IMG src="http://episteme.wankuma.com/image/ppoi.jpg"&gt;&lt;BR&gt;&lt;BR&gt;お、おもしれぇぢゃねーか♪&lt;BR&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/165075.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>"ぽっぷさん"からおてがみを貰う方法</title><link>http://blogs.wankuma.com/episteme/archive/2008/09/02/155208.aspx</link><pubDate>Tue, 02 Sep 2008 15:41:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/09/02/155208.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/155208.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/09/02/155208.aspx#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/155208.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/155208.aspx</trackback:ping><description>&lt;P&gt;突然降って湧いた相談事で。&lt;/P&gt;
&lt;P&gt;メールを読み、送信者に応じて転送するちっさなアプリが欲しいんだって。&lt;BR&gt;メールを送る方は &lt;A href="http://naka.wankuma.com/site/library/dotnet2.0/net/mail/"&gt;Wankuma.Net.Mail &lt;/A&gt;が使えそう。&lt;BR&gt;&lt;BR&gt;それはそうとして、&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;POP3から拾ってくる&lt;/FONT&gt;&lt;/STRONG&gt;のはどうすりゃえぇの?&lt;BR&gt;.Net Framework の System.Net.Mail 名前空間には 送り側(SMTP)しか見当たらんのですががが。&lt;BR&gt;&lt;BR&gt;# 生socketでプロトコル実装? やれちゅーたらやるけどさぁ....&lt;BR&gt;&lt;BR&gt;[追記] さっそく釣れたおさかなさんに訊いてみたところ、TcpClient用意して&lt;BR&gt;"ぽっぷさん"に直接お伺いをたてろ、ってことのようです。&lt;BR&gt;貰ったメールがmulti-partだったりしたときの分割ルーチンなんかもテメェ&lt;BR&gt;でこしらえにゃならんのかな。ﾏﾝﾄﾞｸｾｰ...&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/155208.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>それっぽくなったぞ</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/24/154139.aspx</link><pubDate>Sun, 24 Aug 2008 19:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/24/154139.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154139.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/24/154139.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154139.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154139.aspx</trackback:ping><description>&lt;P&gt;XNAで遊んでます。ゆっくりゆっくり。&lt;/P&gt;
&lt;P&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/XNAWankuma2.jpg" width=411&gt;&lt;BR&gt;なんとなくSTGぽくなってきました♪ &lt;BR&gt;Viewportをセットし、その中に背景貼ってうにょうにょ...&lt;BR&gt;# STAGE-1:東京新宿某所 の面ですねぃ&lt;BR&gt;&lt;BR&gt;XNAのマニュアル首っ引きで思いつくままがすがす書きなぐってる&lt;BR&gt;もんだからコードがコキタネーっす。まぢにゲームに仕立てるなら&lt;BR&gt;簡易版でいいからタスクシステムでもこしらえ、いったんチャラに&lt;BR&gt;して書き直しですねー。まだまだオモチャで遊んでるレベル。&lt;BR&gt;&lt;BR&gt;そこでしつもーん。&lt;BR&gt;Game::Draw() の中で Viewportを切り替えながら何度も &lt;BR&gt;sprite.Begin()/End() を繰り返せるのでしょか。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;protected override void Draw(GameTime gameTime)&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice.Clear(バック色);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice.Viewport = &lt;FONT color=#0000ff&gt;画面全域&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprite.Begin(); &lt;FONT color=#ff0000&gt;// [ココ]&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#008000&gt; // 得点とか残機とか描く&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprite.End();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice.Viewport = &lt;FONT color=#0000ff&gt;ゲーム領域&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprite.Begin();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 背景とか"くま"とか描く&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprite.End();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Draw(gameTime);&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ってやったらば &lt;FONT color=#ff0000&gt;[ココ]&lt;/FONT&gt; んとこで例外発生。&lt;BR&gt;「&lt;STRONG&gt;End()がちゃんとできてないのにBegin()すな!&lt;/STRONG&gt;」&lt;BR&gt;って怒られました。なんでやろ。&lt;BR&gt;Viewportを差し替えつつ描画する方法、教えてえらいひと。&lt;BR&gt;# できんかったら代替案くだせぃ&lt;BR&gt;&lt;BR&gt;[追記] C#で書いたらできちゃったー。赤坂さんありがとです。&lt;BR&gt;↓こねくり回した結果がこれだよ!&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/XNAWankuma3.jpg" width=411&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154139.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>夢に出そう...</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx</link><pubDate>Thu, 21 Aug 2008 00:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153738.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/21/153738.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153738.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153738.aspx</trackback:ping><description>&lt;P&gt;オノデラさんとこからパクったPNGに差し替え、&lt;BR&gt;フォントをメイリオにして"わんくま同盟"6文字分の&lt;BR&gt;SpriteFontをこしらえて背景色いぢって、と。&lt;BR&gt;&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/XNAWankuma.jpg" width=411&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;くま弾幕&lt;/STRONG&gt;。&lt;BR&gt;※ プロジェクトは&lt;A id=_2637f0e626096a42_HomePageDays_DaysList__ctl2_DayItem_DayList__ctl0_TitleUrl HREF="/episteme/archive/2008/08/16/153225.aspx"&gt;&lt;FONT color=#0000ff&gt;ぽろろっか&lt;/FONT&gt;&lt;/A&gt;のを差し替え。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153738.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>じんわりたのしい</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/19/153470.aspx</link><pubDate>Tue, 19 Aug 2008 13:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/19/153470.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153470.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/19/153470.aspx#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153470.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153470.aspx</trackback:ping><description>&lt;P&gt;XNA Game Studio、ぼちぼち触ってます。焦らずゆっくりゆっくり。&lt;/P&gt;
&lt;P&gt;目下2Dの絵を貼るとことフォントを突っ込んで文字列を描くとこあたり。&lt;BR&gt;↓避けられる程度に減らしました。弾が揺れます。にとりも回ります♪&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/nitori.jpg" width=411&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;FONT color=#808080&gt;そこいらへんに転がってるフリーのフォントをｲﾝｽｺしてXNA Game Studioに"フォント作って"&lt;BR&gt;ってお願いすればSpriteFontをこさえてくれるはずなんだが、&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;フォントのｲﾝｽｺ直後では&amp;#8221;そんなフォント知らないｱﾙ&amp;#8221;とかほざきやがる。&lt;BR&gt;マシン再起動したらうまくいった。そんなもんｽｶ? 教えてえらいひと。&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;なんてんでしょ、不思議な&lt;STRONG&gt;すがすがしさ&lt;/STRONG&gt;を感じます。&lt;BR&gt;イベントドリブンもﾍｯﾀｸﾚもなく、キーをスキャンして/計算して/描く&lt;BR&gt;をひたすら繰り返すだけ。&lt;BR&gt;つまるところ、これが&lt;STRONG&gt;キモ&lt;/STRONG&gt;だよなーと。&lt;BR&gt;&lt;BR&gt;なんかね、昔々たどたどしいBASICでブロック崩し作って遊んだのを&lt;BR&gt;思い出します。&lt;BR&gt;&lt;BR&gt;[追記] &lt;FONT color=#808080&gt;こゆことはオノデラさんか赤坂さんに訊けばいいのかな。&lt;/FONT&gt;&lt;BR&gt;1. XNA GameStudio でこしらえたWindowsアプリで使用できるパッド&lt;BR&gt;はハコサブローの「&lt;STRONG&gt;しいたけパッド&lt;/STRONG&gt;」だけなんでしょーか。&lt;BR&gt;ショップで売ってる980円のパッドは使えないんですかぁ?&lt;BR&gt;2. 借りもんのハコサブローについてきたパッドはワイヤレス。&lt;BR&gt;こいつをPCで使いたければワイヤレスアダプタが要るんですよね?&lt;BR&gt;ヒモ付きしいたけパッドはハコサブロー/PCの両方で使えるんですか?&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153470.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>ぽろろっか</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx</link><pubDate>Sat, 16 Aug 2008 15:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153225.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/16/153225.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153225.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153225.aspx</trackback:ping><description>ふー、ようやっとVisual Studio 2008 SP1 にupdate完了。&lt;BR&gt;&lt;BR&gt;手始めになにやろかってんで、XNA Game Studio が吐いた&lt;BR&gt;C#コードを&lt;STRONG&gt;C++/CLIに移植してみた&lt;/STRONG&gt;。← ﾔﾝﾈｰﾖふつー&lt;BR&gt;&lt;BR&gt;元ネタは先日赤坂さんがやってくれた"しいたけセッション"&lt;BR&gt;にあった「弾幕もどき」。&lt;BR&gt;&lt;BR&gt;Game Studio が吐いたGame1.cs を削除し、代わりにC++/CLIで&lt;BR&gt;Game1.csをポートしたアセンブリの参照を設定。&lt;BR&gt;C#で書けるならC++/CLIでも書けっだろーってことで。&lt;BR&gt;&lt;BR&gt;&lt;IMG height=320 src="http://episteme.wankuma.com/image/danmaku.jpg" width=411&gt;&lt;BR&gt;↑...無理。スキマがありましぇん。&lt;BR&gt;&lt;BR&gt;プロジェクトはコレ。&lt;BR&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-07c558f8e11e708f.skydrive.live.com/embedrowdetail.aspx/WillBeRemovedSoon/WindowsGame1.zip" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;&lt;BR&gt;[追記] ↑VBでもやってみたぉ(プロジェクトに同梱)。&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153225.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>夏も初めのけだるい朝は 趣味のコードとたわむれる</title><link>http://blogs.wankuma.com/episteme/archive/2008/07/05/147462.aspx</link><pubDate>Sat, 05 Jul 2008 12:02:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/07/05/147462.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/147462.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/07/05/147462.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/147462.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/147462.aspx</trackback:ping><description>&lt;P&gt;なぜかマージソート。&lt;BR&gt;&lt;BR&gt;メモリを食わずにファイルIOだけでもソートできる優れもののアルゴリズム。時間計算量はΟ(logN)。&lt;BR&gt;&lt;BR&gt;データの振り分けと併合を繰り返してソートを行います。&lt;BR&gt;元データ: &lt;FONT face="Courier New" color=#0000ff&gt;1 3|2 5|4 7|6 9|8|0 13|12|11&lt;/FONT&gt;&lt;BR&gt;※ | はその位置で昇順になっていないことを表します。&lt;BR&gt;ファイルを二本用意し、| の位置で出力先を切り替えながら出力します:&lt;BR&gt;ファイル1: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;1 3 4 7 8|12&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;ファイル2: &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;2 5 6 9|0 13|11&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;次にこの二本を読み、より小さいほうを取り出して一本の元データに出力します:&lt;BR&gt;元データ: &lt;FONT face="Courier New" color=#0000ff&gt;1 2 3 4 5 6 7 8 9|0 12 13|11&lt;/FONT&gt;&lt;BR&gt;| で区切られた要素列(これを'連'という)はソートされてて、&lt;BR&gt;振り分けと併合によって連の数が減っていきます。&lt;BR&gt;最終的に連の数が1になればソート完了。&lt;BR&gt;&lt;BR&gt;C#で書いてみた。ファイルIOはめんどっちーのでBCLコレクションで:&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;using System;&lt;BR&gt;using System.Collections.Generic;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; class Program {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 二つのキューをマージ(併合)して一つにする&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void merge&amp;lt;T&amp;gt;(Queue&amp;lt;T&amp;gt; in_q1, Queue&amp;lt;T&amp;gt; in_q2, ICollection&amp;lt;T&amp;gt; out_c) where T : IComparable&amp;lt;T&amp;gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#008000&gt; // 入力である二つのキューが共に要素を持っている間&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( in_q1.Count != 0 &amp;amp;&amp;amp; in_q2.Count != 0 ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// より小さい要素を取り出して出力する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Add(( in_q1.Peek().CompareTo(in_q2.Peek()) &amp;lt; 0 )? in_q1.Dequeue():in_q2.Dequeue());&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;// キューに残る(取り出されなかった)要素を出力する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( in_q1.Count != 0 ) { out_c.Add(in_q1.Dequeue()); }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( in_q2.Count != 0 ) { out_c.Add(in_q2.Dequeue()); }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 一つの入力列を二つのキューに分割する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static bool split&amp;lt;T&amp;gt;(ICollection&amp;lt;T&amp;gt; in_c, Queue&amp;lt;T&amp;gt; out_c1, Queue&amp;lt;T&amp;gt; out_c2) where T : IComparable&amp;lt;T&amp;gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T last = default(T);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Queue&amp;lt;T&amp;gt; out_c = out_c1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool switched = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( T current in in_c ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 直前の要素より小さな要素を読み込んだら出力キューを切り替える&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( last != null &amp;amp;&amp;amp; current.CompareTo(last) &amp;lt; 0 ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c = (out_c == out_c1) ? out_c2 : out_c1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Enqueue(last = current);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 一度でも切り替えが起こったらswitchedをtrueにする&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( !switched ) switched = (out_c == out_c2);&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; return switched;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void print&amp;lt;T&amp;gt;(string head, IEnumerable&amp;lt;T&amp;gt; collection) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("{0} : ", head);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ( T item in collection ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("{0} ", item);&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; Console.WriteLine();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void merge_sort&amp;lt;T&amp;gt;(ICollection&amp;lt;T&amp;gt; data) where T : IComparable&amp;lt;T&amp;gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Queue&amp;lt;T&amp;gt; q1 = new Queue&amp;lt;T&amp;gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Queue&amp;lt;T&amp;gt; q2 = new Queue&amp;lt;T&amp;gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( split(data, q1, q2) ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("--------------------------------");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("input&amp;nbsp; ", data);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("split:");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("queue1 ", q1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("queue2 ", q2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.Clear();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge(q1, q2, data);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("merge:");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("output ", data);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q1.Clear();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q2.Clear();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;int&amp;gt; data = new List&amp;lt;int&amp;gt;(new int[] { 1, 3, 2, 5, 4, 7, 6, 9, 8, 0, 13, 12, 11 });&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge_sort(data);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("--------------------------------");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("result ", data);&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;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;...のんちゃんがVBがんがってるらしいから、&lt;BR&gt;僕もグチこぼしてばっかじゃなくVBでも書いてみる:&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;Imports System&lt;BR&gt;Imports System.Collections.Generic&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Module Program&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;' 二つのキューをマージ(併合)して一つにする&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub merge(Of T As IComparable(Of T))(ByVal in_q1 As Queue(Of T), ByVal in_q2 As Queue(Of T), ByVal out_c As ICollection(Of T))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;' 入力である二つのキューが共に要素を持っている間&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While in_q1.Count &amp;lt;&amp;gt; 0 AndAlso in_q2.Count &amp;lt;&amp;gt; 0&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' より小さい要素を取り出して出力する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If in_q1.Peek().CompareTo(in_q2.Peek()) &amp;lt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Add(in_q1.Dequeue())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Add(in_q2.Dequeue())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End While&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;' キューに残る(取り出されなかった)要素を出力する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While in_q1.Count &amp;lt;&amp;gt; 0&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Add(in_q1.Dequeue())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End While&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While in_q2.Count &amp;lt;&amp;gt; 0&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_c.Add(in_q2.Dequeue())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End While&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;' 一つの入力列を二つのキューに分割する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function split(Of T As IComparable(Of T))(ByVal in_c As ICollection(Of T), ByVal out_q1 As Queue(Of T), ByVal out_q2 As Queue(Of T)) As Boolean&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim last As T = Nothing&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim out_q As Queue(Of T) = out_q1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim switched As Boolean = False&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each current As T In in_c&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;' 直前の要素より小さな要素を読み込んだら出力キューを切り替える&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If last IsNot Nothing AndAlso current.CompareTo(last) &amp;lt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If out_q Is out_q1 Then&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; out_q = out_q2&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;&lt;FONT color=#008000&gt; ' 一度でも切り替えが起こったらswitchedをtrueにする&lt;/FONT&gt;&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; switched = True&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&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; out_q = out_q1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last = current&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_q.Enqueue(current)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return switched&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub print(Of T)(ByVal head As String, ByVal collection As IEnumerable(Of T))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("{0} : ", head)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each item As T In collection&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("{0} ", item)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub merge_sort(Of T As IComparable(Of T))(ByVal data As ICollection(Of T))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim q1 As New Queue(Of T)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim q2 As New Queue(Of T)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While split(data, q1, q2)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("-------------------------")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("input&amp;nbsp; ", data)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("split:")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("queue1 ", q1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("queue2 ", q2)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.Clear()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge(q1, q2, data)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("merge:")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("output ", data)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q1.Clear()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q2.Clear()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End While&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sub Main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim data As New List(Of Integer)(New Integer() {1, 3, 2, 5, 4, 7, 6, 9, 8, 0, 13, 12, 11})&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge_sort(data)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("-------------------------")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("result ", data)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;End Module&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/147462.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>こうですね、わかります。</title><link>http://blogs.wankuma.com/episteme/archive/2008/06/26/145636.aspx</link><pubDate>Thu, 26 Jun 2008 11:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/06/26/145636.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/145636.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/06/26/145636.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/145636.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/145636.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;/* &lt;BR&gt;&amp;nbsp;* 可及的速やかに破棄したい&lt;BR&gt;&amp;nbsp;* マネージ対象外リソースを持ったクラスのテンプレ&lt;BR&gt;&amp;nbsp;* C++/CLI版&lt;BR&gt;&amp;nbsp;*/&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;public ref class SampleClass : System::IDisposable {&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp; char* unmanaged_resource; &lt;FONT color=#008000&gt;// マネージ対象外リソース&lt;/FONT&gt;&lt;BR&gt;protected:&lt;BR&gt;&amp;nbsp; bool disposed; &lt;FONT color=#008000&gt;// Dispose()済みならtrue&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // Dispose()後にメソッドが呼ばれたときの用心のため、&lt;BR&gt;&amp;nbsp; // 各public/protectedメソッドはその処理に先立ちこいつを呼ぶことを推奨する。&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; void method() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( disposed ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw gcnew System::ObjectDisposedException(&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;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;this-&amp;gt;GetType()-&amp;gt;ToString(),&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;&amp;nbsp;&amp;nbsp;"has been disposed.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // Dispose()の実処理はココで行う&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; virtual void Dispose(bool disposing) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( !disposed ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( disposing ) {&lt;BR&gt;&lt;FONT color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // managed-resourceを持っている&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ならここでDispose()&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&lt;FONT color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ここでunmanaged-resourceを廃棄&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete[] unmanaged_resource;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disposed = true;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;public:&lt;BR&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // コンストラクタ&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; SampleClass() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unmanaged_resource = new char[100]; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disposed = false;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; // デストラクタ: Dispose() に相当する。&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; virtual ~SampleClass() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dispose(true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#008000&gt; // 後続するFinalize()を抑止する&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System::GC::SuppressFinalize(this);&amp;nbsp;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // ファイナライザ: Finalize()に相当する&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; !SampleClass() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dispose(false);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; }&lt;BR&gt;};&lt;BR&gt;&lt;BR&gt;※ 修正: doDispose → Dispose&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=5&gt;じゃないんだってさ!&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;ref class SampleClass {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;public:&lt;BR&gt;&amp;nbsp; ~SampleClass() { this-&amp;gt;!SampleClass(); }&lt;BR&gt;&amp;nbsp; !SampleClass() { /* unmanaged-resourceを破棄する */ }&lt;BR&gt;};&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/episteme/aggbug/145636.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>こうですか? わかりません!</title><link>http://blogs.wankuma.com/episteme/archive/2008/06/26/145610.aspx</link><pubDate>Thu, 26 Jun 2008 09:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/06/26/145610.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/145610.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/06/26/145610.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/145610.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/145610.aspx</trackback:ping><description>&lt;P&gt;添削お願いしますぅ &amp;gt; えらいひと&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#008000 size=2&gt;/* &lt;BR&gt;&amp;nbsp;* &lt;FONT size=3&gt;可及的速やかに破棄したい&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;* &lt;FONT size=3&gt;unmanaged-resourceを持ったクラスのテンプレ&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;*/&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;public class SampleClass : System.IDisposable {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; private object unmanaged_resource; &lt;FONT color=#008000&gt;// マネージ対象外リソース&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; protected bool &lt;FONT color=#0000ff&gt;disposed&lt;/FONT&gt; = false; &lt;FONT color=#008000&gt;// Dispose()済みならtrue&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// コンストラクタ&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; public SampleClass() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ここでnewしなければならんわけじゃないが&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unmanaged_resource = new object(); &lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // Dispose()後にメソッドが呼ばれたときの用心のため、&lt;BR&gt;&amp;nbsp; // 各public/protectedメソッドはその処理に先立ちこいつを呼ぶことを推奨する&lt;/FONT&gt;。&lt;BR&gt;&amp;nbsp; protected void assertDisposed() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( &lt;FONT color=#0000ff&gt;disposed&lt;/FONT&gt; ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new System.ObjectDisposedException(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.GetType().ToString(),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"has been disposed.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // Dispose()の実処理はココで行う&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; protected void doDispose(bool disposing) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( !&lt;FONT color=#0000ff&gt;disposed &lt;/FONT&gt;) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( disposing ) {&lt;BR&gt;&lt;FONT color=#ff0000&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // managed-resourceを持っている&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ならここでDispose()&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;FONT color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT size=3&gt;&lt;STRONG&gt;// ここでunmanaged-resourceを廃棄&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; disposed = true;&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// Dispose&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; public virtual void Dispose() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; doDispose(true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;// 後続するFinaraize()を抑止&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.GC.SuppressFinalize(this);&amp;nbsp;&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // デストラクタ(=Finalize)&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; public ~SampleClass() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; doDispose(false);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;&lt;BR&gt;※ Finalize→~SampleClass に修正しました&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/145610.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>C++フェチがSTL/CLRネタにC++/CLIで遊ぶ</title><link>http://blogs.wankuma.com/episteme/archive/2008/05/26/139432.aspx</link><pubDate>Mon, 26 May 2008 14:42:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/05/26/139432.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/139432.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/05/26/139432.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/139432.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/139432.aspx</trackback:ping><description>&lt;P&gt;ネタ元 → &lt;A id=RecentPosts__ctl13_Hyperlink2 HREF="/esten/archive/2008/05/26/139355.aspx"&gt;&lt;FONT color=#0000ff&gt;LINQ は面白い(って、わたし、この子ﾘﾝｷｭｰって呼んじゃうのよね、ついｗ）&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;BR&gt;Sub &lt;/SPAN&gt;Main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;SPAN style="COLOR: #a31515"&gt;"今日作ったファイル"&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;Dim &lt;/SPAN&gt;Files = &lt;SPAN style="COLOR: blue"&gt;From &lt;/SPAN&gt;file &lt;SPAN style="COLOR: blue"&gt;In &lt;/SPAN&gt;Directory.GetFiles(&lt;SPAN style="COLOR: #a31515"&gt;"c:\wankuma"&lt;/SPAN&gt;) _&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Where &lt;/SPAN&gt;System.IO.File.GetCreationTime(file).ToString(&lt;SPAN style="COLOR: #a31515"&gt;"yyyyMMdd"&lt;/SPAN&gt;)&amp;nbsp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;SPAN style="COLOR: blue"&gt;Date&lt;/SPAN&gt;.Today.ToString(&lt;SPAN style="COLOR: #a31515"&gt;"yyyyMMdd"&lt;/SPAN&gt;) _&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Order By &lt;/SPAN&gt;(file) _&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Select &lt;/SPAN&gt;file&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;For Each &lt;/SPAN&gt;Todays &lt;SPAN style="COLOR: blue"&gt;In &lt;/SPAN&gt;Files&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(Todays)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT face="Courier New" size=2&gt;Next&lt;BR&gt;End Sub&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;ほほぉ、なるほど。&lt;BR&gt;LINQを持ち合わせていない C++/CLI と STL/CLR でなんとかしてみる:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;value class different_date {&lt;BR&gt;&amp;nbsp; static String^ today = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DateTime::Now.ToString(L&lt;FONT color=#ff1493&gt;"yyyyMMdd"&lt;/FONT&gt;&lt;FONT color=#000000&gt;);&lt;/FONT&gt;&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; static bool exec(String^ file) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return File::GetCreationTime(file).ToString(L&lt;FONT color=#ff1493&gt;"yyyyMMdd")&lt;/FONT&gt; &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; != today;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;int main() {&lt;BR&gt;&amp;nbsp; Console::WriteLine(L&lt;FONT color=#ff1493&gt;"今日作ったファイル");&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; &lt;FONT color=#008000&gt;//&amp;nbsp;ファイル名集合から&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; cliext::vector&amp;lt;String^&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; files(Directory::GetFiles(L&lt;FONT color=#ff1493&gt;"D:\\Program Files\\Work"&lt;/FONT&gt;));&lt;BR&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// 条件を満たさないものを取り除き&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; files.erase(cliext::remove_if(files.begin(), files.end(), &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; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;gcnew Predicate&amp;lt;String^&amp;gt;(different_month::exec)),&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;files.end());&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // ソートして&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; cliext::sort(files.begin(), files.end());&lt;BR&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// 出力する&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; for each ( String^ item in files ) Console::WriteLine(item);&lt;BR&gt;}&lt;BR&gt;&lt;FONT face=Arial size=3&gt;&lt;BR&gt;...努力は認めてくださいまし。LINQはすげーですやっぱ。&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/139432.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>