ラベル 35_C# の投稿を表示しています。 すべての投稿を表示
ラベル 35_C# の投稿を表示しています。 すべての投稿を表示

2007年3月3日土曜日

C#でMACアドレス取得

久々にプログラムでも組もうかと窓の杜を眺めていたら、

IPアドレスのダイアログ・コマンドライン入力でMACアドレス取得「MacLookup」


なるものを発見。

真似してつくってみました(真似だけじゃ寂しいので、メインネットワークカードのMACアドレスが初期表示されるようにした。すごいぜ!進化してる)

MacALookup
DLはコチラ ※C#で作ったので要.NetFramework2.0です

30分くらいでできちゃった・・・というか、このソフトの使い道が思いつかない・・・・まぁいいか。
ソースも公開しておきます(続きページで。)

うーむ。以前作った

ダイエット管理ソフト「腹八分」

は、4,5日かかってます。
こりゃ「窓の杜」に応募してみるかな。


■C#のTIPS

興味がない方ごめんなさい。プログラマの方は以下をどうぞ


・IPアドレスからMACアドレスを取得

[DllImport("iphlpapi.dll"(, ExactSpelling = true)]
public static extern int SendARP(UInt32 DestIP, UInt32 SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen);
public void GetMacAddress(uint ipAddr)
{
  byte[] macAddr = new byte[6];
  int lenPhyAddr = 6;
  int hr = SendARP(ipAddr, 0, macAddr, ref lenPhyAddr);
  textBox1.Text = string.Format("{0,2:X}:{1,2:X}:{2,2:X}:{3,2:X}:{4,2:X}:{5,2:X}",
  macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
}

・文字列をIPアドレスに変換

IPAddress ipAddr = IPAddress.Parse(textBox2.Text);
GetMacAddress((uint)ipAddr.Address);

・クリップボードにコピー
Clipboard.SetDataObject(textBox1.Text, true);

・ホスト名からIPアドレスを取得

IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddr = host.AddressList[0];
textBox2.Text = ipAddr.ToString();
GetMacAddress((uint)ipAddr.Address);

これで全部。
シンプルですね。

2006年9月11日月曜日

カブロボ

カブロボ


「スーパー株ロボを作ろう」という本を買ってみた。
現在第一回大会が開かれており一位は5億円で実運用されるリッチな企画だ。


■よくわからなくてもなんとかなる。
登録できるロボットは
JAVAでプログラムしたロボ:5体
汎用ロボ(設定を選ぶだけ):5体

の計10体で9/11現在は964体登録されている。
特に汎用ロボは設定を選ぶだけなので株を知らなくてもなんとかなった。
スーパー株ロボ-公式
公式サイト
2006年9月29日18時まで登録受付中である。
とはいえ本戦は8月1日から始まっており、今から参加しても10位入賞は厳しい感じだ。
カブロボ順位
シャープレシオ
登録が遅かったので、シャープレシオ(日毎の利益率?)だけは2位と4位に食い込んでおり、なかなかの成績である。

■TIPS
実は最初は「スーパー株ロボを作ろう」という本に掲載されているJAVAサンプルをそのままアップしてみたのだが、NULL Pointerエラーが発生した。付属の20株データではエラーが出ないのだが、本サーバーの500株データではどうやら一部のデータが空っぽ(NULL)のためエラーが発生するみたいだ。
解説本もそのあたりが不親切な気がする・・・。試してみたけどエラーが出てしまい登録を断念した人もいるのではなかろうか。
解決方法は
try{}
catch{}

構文でエラー発生を無視するようにプログラムすればよい。
ちょっとわからない人はJavaの登録はやめて汎用ロボだけで十分じゃないかな。

■シロウトですが、儲かりそうな予感
実際にバックテスト(過去のデータを元に株運用テスト)をしてみたところ、まずマイナスにならないとわかった。それは純粋に日経株価平均が右肩上がりだから、普通にやっていれば得するということだ。
ちょっとわかりにくいかな・・・。
例を出すと、競馬はテラ銭を40%(ほんとは25%くらいらしい。ボクの勘違い)取られていることはご存知だろうか。
つまり、馬券収入が1億だったら、そこから4000万円は運営費として取られて、残りの6000万円を配当で分配している。つまり、主催者であるJRAは損しない。また、サイコロのように偶然だけで馬券を買った場合、資金は0.6倍に限りなく近くなる。つまり損するように出来ている。それはパチンコや宝くじも例外ではない。バクチとはそういうもんだ。
だがしかし、株はゼロサムゲーム(合計が決まっている)ではなく、上限そのものが増加している限りやればやるだけプラスになる(はず)ようにできている。逆に言えば全体がマイナスに向かっているときは基本的に損をするということになる。
なるほど。金持ちは更に金持ちになるわけである。
よく株で破産する話も耳にするが、空売りで失敗したり、生活資金をすべてつぎ込んだからだと思われる。いくら儲かるといってもギャンブル要素はあるので余力資金でやるべきなのだ。
ちなみに5000万円を仮想で2年間テストしたところ7500万円になった。実際は税金と手数料を引いて2000万円ほどの利益だと思うが、それにしてもかなりの額ではないか。不労所得で年収1000万なら万々歳である。
恐るべし、株。

■あとがき
脱線してしまったが、カブロボコンテストは損するわけでもなし、試してみるのも一興ではないだろうか。
なかなか面白いもんだ。

2005年8月19日金曜日

ダイエット管理ソフト「腹八分」

スクリーンショット
ダイエット管理ソフト「腹八分」

ダイエット管理ソフト「腹八分」ダウンロードページ

知り合いのイラストレーターさんからの依頼で体重管理ソフトを作ってみました。

■開発中に勉強したこと
< 体重アレコレ >

体重なんて重さがわかればいいやないかー

と思っていたのですが、ダイエットに関しては脂肪率が重要なんですね。
無酸素運動で脂肪を燃焼しても筋肉がつかなければリバウンドしやすいとか、その辺です。
また、計測してみてわかったのですが、

たった一日で1kg~2kg変動する!?

のです。そりゃそうですよね。ご飯食べるとその分体重は増加します。正確に把握するには定期的なチェックが必要なようです。
あとこれは実体験に基づくのですが、25歳を過ぎたあたりから、今までと同じ食生活だと太ることに気づきました。年齢によって代謝が違うからです><
正直、体型は気にしていないのですが、食いすぎが原因の病気は避けたいかなと思います。
< C#アレコレ >
今回C#を使って開発してみました(C#とはプログラム言語でコレでソフトを作ったりする)
開発当初は「まぁ、なんて便利なんでしょう。」と思っておりましたが、
やはり、ちょっと凝ったことをしようと思うと色々テクが必要なようです。
他の言語もそうですよね。
忘れないようにTIPSは記事にする予定です。ひとまずポイントになった項目をあげておきます。
・CSV入出力

・XML入出力

・グリッド(表)表示、加工

・DataSetのソート

・スクロールバーの上下反転

・折れ線描画

・描画領域の自動リサイズ

かな。業務開発でもこの辺のテクは使うんじゃないかと思う。
体重管理に限らず、応用できるソフトのアイデアがあったらコメントなり、メールなりお願いします。
でわでわまた。