読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

C#

PIN拾ってアプリのアクセスコードを拾う

ざくっと書いてみたけど。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Twitterizer; using System.Diagnostics; namespace net.azworks.Twitter { public class TwitterAuth { public static void GetAu…

Twitter タイムラインを拾ってみる

Twitter のタイムラインをC#で拾ってみた。 で、やることを列挙 https://dev.twitter.com/ でTwitter開発者登録+SignIn https://dev.twitter.com/apps で作成するアプリケーションを新規登録。 Consumer key, Consumer secret をメモしとく Optionから欲し…

Twitter タイムラインをストリームで引っこ抜く

前回同様にTwitterizer経由で突っ込んだ。 Stream なので、継続的に拾えるようだ。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Twitterizer; using Twitterizer.Streaming; namespace TwitterTest { pub…

コマンドラインをザクッと解析する

何で今さら?というと、、、、 要はツール作ろうと思ったけど、コマンドライン解析が面倒だったという話。紹介するのはコレhttp://commandline.codeplex.com/ほげっとクラス書いて class Options { [Option("i", "in")] public string inputDir; [Option("o"…

正規表現で特定の要素をぶっこぬく。

教材は、、、ウチのサイトのRSSでいいか。http://d.hatena.ne.jp/white-azalea/rssここからタイトルとリンクを正規表現でぶっこぬく。 正規表現の書き方講座する気はないので、要は抽出置換しか考えない。 <title>(?<title>.+)</title>\s+<link>(?<url>http://[\w_\?\-\./]+)</link>URL の認識…

WPFのTreeViewいじってみた。

バインド対象のモデル。 やべ、C#は覚えてるけど、WPFは2年いじってないからほぼ忘れた(;・∀・) ここ眺めながら必死に思い出す。 class ModelDataValue : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public Mode…

隔離領域ストリーム

マシン、ユーザに対して、アプリケーション単位、アセンブリ単位、ドメイン単位で隔離領域アクセスできるようだ。 static void Main(string[] args) { WriteMessage(); ReadMessage(); Console.ReadLine(); } static void ReadMessage() { IsolatedStorageFi…

ストリーム

Fileとかのストリームはたくさんあるので、使われにくそうなのから。 using System.IO; MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.WriteLine("Welcome to memory stream."); writer.Flush(); stre…

ディレクトリ内ファイルアクセスのトレース

FileSystemWatcher watcher = new FileSystemWatcher(Environment.GetEnvironmentVariable("USERPROFILE")); watcher.Changed += new FileSystemEventHandler( delegate(object sender, FileSystemEventArgs e) { Console.WriteLine("Change : {0}", e.Name)…

ディレクトリ内情報取得

static void Main(string[] args) { DirectoryInfo info = new DirectoryInfo(@"C:\msysgit\msysgit"); foreach (var directory in info.GetDirectories()) Console.WriteLine("Find : {0}", directory.Name); foreach (FileInfo file in info.GetFiles()) C…

ドライブ情報の列挙

using System.IO; foreach (DriveInfo driveInfo in DriveInfo.GetDrives()) { Console.WriteLine("DriveType : {0}, DriveFormat : {1}, Name : {2}, Size : {3}, FreeSpace : {4}", driveInfo.DriveType, driveInfo.DriveFormat, driveInfo.Name, driveInf…

EventLog 書き込む

色々試してみた。 class Program { static void Main(string[] args) { string source = "MySource"; if (!EventLog.SourceExists(source)) { EventLog.CreateEventSource(source, ""); } EventLog.WriteEntry(source, "SampleMessage", EventLogEntryType.I…

何か色々 appConfig 設定ファイル .NET 2.0 var

.NET 2.0 以上で取り出し方。 System.Configration.dll をライブラリ参照に加えて、以下のコード。 System.Configuration.ConfigurationManager.AppSettings["sample"]; (MyConfig)System.Configuration.ConfigurationManager.GetSection("MyConfig"); 何が…

何か色々 appConfig 設定ファイル

SQL の設定 とりあえずSQL周りを色々弄る。 プロジェクト作って、プロジェクトを右クリック、「追加」「新しい項目」「LINQ to SQL」DataClasses1.dbml だかが作れる。 適当にサーバエクスプローラからテーブルをドロップする。 すると、設定がこんなん。 <configuration> <configSections> </configSections></configuration>…

Aspect 指向のライブラリで、インスタンスキャッシュ(シングルトン)しようとして頓挫した、、、

Aspectが全てシングルトンだと過程して、「AAspect」→「BAspect」→「メソッド実行」のチェーンを組んで、実メソッド実行後に「実行メソッド」→「BAspect」→「AAspect」で戻れる実装が再起を除いて思い浮かばない。 再起でスタックを組んでしまうと、「BAspec…

Aspect 指向のライブラリを複数対応できるようにしてみた

http://www.white-azalea.net/index.php/p/azaleaworks/downloads/アップデートしてみました。 これで複数のアスペクトも同時実行できる。 namespace TestAspect { class Program { static void Main(string[] args) { SampleTarget target = new SampleTarg…

基本的な Aspect 実装をしてみた

結局、RealProxy 経由する限り、オブジェクトが MarshalByRefObject になるのは避けれないし、Attribute 実装で new をフックするにも、ContextBoundObject でないと、Attribute インスタンスでフックできない。 とはいえ、これはこれで使ったほうが早いかと…

素の .NET で Aspect 指向したくてがんばってみた。

C# の .NET でアスペクト指向がしたくて根性出してみた。 あぁ、Python ならデコレータで一発なのに、、、、とかやってて思った。*1実装方法的には、RealProxy 噛ませば、メソッドコールを基本すべて横取りできる。 で、RealProxy ラップすると、GetTranspar…

.NET を理解する9

ガベコレされないパターンもあると覚えておく。.NET でガベージコレクションがあるので、みんな結構油断してると思うけど、意外なところでメモリリークすることがある。 代表例を以下に示してみる。 class SampleEventer { int vals; public SampleEventer(i…

.NET を理解する8

スレッド覚えてみる というか半分以上復習。スレッドの立て方一覧。 厳密にはスレッドとは違うけど、非同期実行できるものは列挙。 delegate の BeguinInvoke 経由でメソッドを非同期実行する。 System.Threading.Thread クラスインスタンスからスレッド実行…

.NET を理解する7

サービスの作成 .NET のサービスを作成するにあたり、色々調べてみる。 ServiceBase クラスを継承してサービス作る ServiceController クラスで .NET アプリからサービスの開始停止を制御できる ServiceControllerPermission サービス コントローラに対する…

.NET を理解する6

標準インターフェースを覚えてみる 標準インターフェースとその役割について考えてみる。 IComparable : Generic あり。オブジェクトの大小比較を行う。ソート時の評価で利用。 IDisposeable : オブジェクトガベージ時にリソースを開放する。com オブジェク…

.NET を理解する5

ジェネリックコレクション ジェネリックコレクションは、System.Collection.Generic に存在する、Generic 機能を利用したコレクションクラスです。 これは、対応する非ジェネリックコレクションに比べて、タイプセーフかつ高速に動作します。これには List D…

.NET を理解する4

ジェネリックを理解する .NET Framework 2.0 から追加された機能です。 主にコレクションで良く見られますが、プログラムの設計においてもタイプセーフでかつ汎用性の高いオブジェクトを作成することができます。 論より Run 以下で簡単な Generic の実装サ…

.NET を理解する3

.NET のデータ構造 Stack , Heap , Hash どれもちょっとプログラムを齧ったことがあれば聞き覚えはあるでしょう。 もちろん自分で実装する人もいますが、正直それは時間の無駄です。 Java 然り、C++ の STL 然り、古い言語であっても、そのようなライブラリ…

.NET を理解する2

型について .NET Framework の言語では、クラスとは独自に定義出来る型であり、値型、参照型、メソッド、属性、プロパティを含む事が出来ます。 // 属性 [Serializable] public class SampleClass { // 値型 int id; // 参照型 string name; // メソッド pub…

.NET を理解する(基礎にして初歩にあらず)。

はじめに .NET には様々な「型」が存在しており、これらの「型」を利用したり、ユーザが独自に「型」を定義することで処理の責任範囲や処理の種類を分類します。 オブジェクト指向に関する哲学や考え方を紹介する訳ではありませんので、ここでは説明しません…

StyleCop でカスタムスタイルを入れてみる

http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis&ReleaseId=1425 ここで StyleCop と一緒に配布されてる SDK を落として解凍、、、、、はしなくていいかも知れない。 だって chm ドキュメントが1個転がってるだけ…

.NET 環境を組みなおしてみる

Windows を入れなおすついでに、必須なモノを片っ端から列挙して入れてみる。 VisualStudio2008 Standard を購入。2010もアップデートパッケージ狙い。 Express でもいいかも知れないが、やっぱStandardは目に見えて機能が多い。 (DB 周りのヘルパとか) NUni…

RSS をサクっと拾う。

環境は、C# 3.0 & .NET Framework 3.5 で動作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { XElem…

WPF を勉強してみるⅡ

WPF は見た目だっ!と意気込んで、レイアウトコンポーネントを色々触ってみた。 とりあえず触ったのは以下の連中 Grid UniformGrid Canvas StackPanel WrapPanel DockPanel Grid グリッドレイアウトとは良く言ったもの。 線を引くようにレイアウト配置を決め…

WPF を勉強してみるⅠ

今更だが、食わず嫌い(これまでちょこっと書いて動いたー程度)だったWPFを勉強しようと思った。 理由はコレ次期Visual Studio 2010と.NET Framework 4.0の新機能 やばい。かなりやばい。 Windows7 でも WPF は健在で、マルチタッチスクリーン対応だとぉぉぉ…

AOP(Seaser.NET)をC#でやってみる

前回の続きで、今度はAOP(Aspect-Oriented Programming。アスペクト指向プログラミング)を試してみる。 とりあえず、dll コピーと、参照設定は前回のものと同様にしておく。 AOP アスペクト指向プログラミング どんなもんかといいますと、以下Wikipediaから …

DI (Seaser.NET)を C# で試してみる

DI(Dependency Injection。依存注入)とかAOP(Aspect-Oriented Programming。アスペクト指向プログラミング)とかをC#でできると聞いてやってみた。 で、実際に利用するライブラリに関してはコレ。 Seaser.NET という、Java ではもう有名すぎるアプリケー…

ManagedDll を動的に読み込むあれこれ

流派は2つ。 Assembly 使って、動的にリンクする方法 http://athomejp.com/goldfish/vcs/assemblycall.aspAppDomain 使って、動的にロードする方法 http://d.hatena.ne.jp/akiramei/20071111/1194786373前者のほうが簡易だけど、後者はアンロードできるそう…

ExpressionTree 抜きで動的にLINQの Where を指定するよう試す。

LINQ to SQL では使えないけど、一応手といえば手。 だってExpressionTreeとか弄るのヤだもん。俺、、、、 やってることは、匿名デリゲートを作ってWhereに突っ込んでるだけです。 で、匿名デリゲートを動的にポンポン作れば、動的なフィルタの出来上がり〜…

ディレクトリの中身を再帰的にリストアップ

書いてからPythonにすりゃよかったと後悔 using System; using System.Text; using System.IO; namespace DirectorySearcher { class Program { static void Main(string[] args) { string localDir = System.Reflection.Assembly.GetExecutingAssembly().Lo…

文字列をコンパイルして実行してみる

適当にネット漁ってたら面白そうなAPI落ちてたからやってみた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.CodeDom; using System.CodeDom.Compiler; using Microsoft…

XMLとオブジェクトでマッピングを試みる

C#には XmlSerializer なるクラスが存在してて、このクラスは Stream に、オブジェクトをシリアライズして書き込む。または、デシリアライズするという機能を持っている。 で、属性割り当てとか、要素名指定とか色々できる。以下サンプル。 // .NET 2.0(?)以…

VS2008 でDBをなるべくコードレスで弄ってみる

C#

とりあえずは、DBとテーブル無いと話になんないので作成。 ぶっちゃけ、DB講義ではないので、作成方法は各自に任せる。DBサーバは、VisualStudio付属だったMSSQLServerExpressでやってみた。ここでやった設定だけ記述。 自分のマシン内に、以下のDB、テーブ…

メモ化機構を切り離してみる

メモ化の概念的には、結局のところ、引数パターンに対する辞書があって、一度やった処理は記録して使いまわす。 前回のものから、メモ化部分を抽出するだけしてみると、 def tarai(x, y, z): if x <= y: return y return tarai(memorize(x - 1, y, z), memor…

ゆの in C#

C#

http://d.hatena.ne.jp/nullpobug/20080717/1216288492ここの人に誘われてやってみたが、これではどうも面白くない。 何かどこかでひねりたいところ。LINQ と絡めたいけど、「/」をどうすりゃいいか不明。 参ったね。 namespace yuno { class Yuno { String …

C#3.0 が何気に良い意味で気持ち悪い(3回目)

C#

LINQ が凄いことになっている。 百聞は一見に如かず。 とにかく見ると笑ってしまう。 var 兵器全般 = new[] { new {兵器ID=0, 兵器名="FA-MAS", カテゴリ="アサルトライフル"}, new {兵器ID=1, 兵器名="FN P90", カテゴリ="サブマシンガン"}, new {兵器ID=3,…

C#3.0 が何気に良い意味で気持ち悪い

C#

C# 2.0でやってたものを思い出すと、 yield , 匿名 delegate ,Generics,イテレータ等がある。 実際にコードを書いてみる。yield,Generics,イテレータ namespace CSharp2 { class Program { static void Main(string[] args) { int[] arr = new int[50]; for …

POP3コンポーネント無いのかΣ(゚Д゚;≡;゚д゚)

C#

これだけ至れりつくせりの.NETFrameworkに、 よりにもよってPOP3Clientライブラリが無いのかよ!?作れってコトですか? ヤだよ俺、、、RFC読み漁るとか(−−;オープンソースなコードで http://www.c-sharpcorner.com/UploadFile/ivxivx/SMTPPOP3IMAPLibrary…

C#3.0 が何気に良い意味で気持ち悪い(2回目)

C#

C# の 3.0 について見ていこうと思う。 片っ端から列挙しようか。 暗黙的型付け VBの人たち大喜び? C++の人やJavaの人は悲鳴上げるだろうか? 代入時に型が固定される、暗黙的型付け機能搭載。テストコード var n = 1; System.Console.WriteLine(n.GetType(…

TextBox コンポーネントの値チェックをやってみる。

C#での実装です。 VB.NETの人は脳内補正してください。TextBoxコンポーネント は基本的に Form で インスタンス化 して使うので、 その Form でこんなことをしてみる。 /* 使うもの */ using System.Text.RegularExpressions; /* 定義 */ private System.Win…

暗号化と復号化してみる

オーソドックスに DES 暗号を使ってみる。 使う namespace は using System.Security.Cryptography; using System.IO; で、他に使いそうなもので、以下のメソッドを用意 private static byte[] ResizeBytesArray ( byte[] bytes, int newSize ) { byte[] new…