2009年01月19日

Delphi2009とMySQLのバージョンについて

ひとことだけです。

Delphi2009で接続できるMySQLは、5.0.XXXまで。
5.1.XXXは接続できません。


…問題解決にしばらくかかったよ…
【Delphiの最新記事】
posted by Tig3r at 17:20| Comment(0) | TrackBack(0) | Delphi

2009年01月07日

Delphi2009でDLLを使用する場合、文字コードで嵌まる

MP3を再生したり変換したり、といった機能を持つアプリケーションを作っているわけで、以前はDelphi用のMP3再生VCLであるTMP3PLAYERを使っていたのだが、これが公開停止して暫く経っており、今後入手できる見込みもない。

そこで、今でもVectorにDLLが存在していて、それなりに入手の容易なVBMP3.DLLを用い、自前でMP3関連のモジュールを作ることにした。VBMP3のDLLをDelphiから使用する方法については資料も多いし、全部の機能を使うわけでもないので、必要なものだけヘッダファイル的なものを作って使おうと思っていたのだが…

ちなみにVBMP3は以下で入手可能


続きを読む
posted by Tig3r at 05:25| Comment(0) | TrackBack(0) | Delphi

2009年01月06日

DelphiでDirectXを使う準備(QuadrupleD)

あけまして。

Delphi環境でDirectXを簡単に使用するためには、いくつかの外部モジュールがあるが、その中で長く使用してきたのが、 Project Quadruple D の提供する、QuadrupleD(以下DDDDと表記)だ。


今回は新たに導入したDelphi2009環境にDDDDのインストールを行ったので、その経緯を報告する。

なお、互換性の関連上、導入したのはバージョン2.13a(DirectX8まで対応版)。まだターゲットに2000もあるので。

まずは何はともあれ、上記のサイトから2.13のアーカイブと、2.13aのパッチを入手し解凍する。
続きを読む
posted by Tig3r at 15:57| Comment(0) | TrackBack(0) | Delphi

2008年12月18日

FreeDBからCD情報を取得するためのDISCID算出

ウルトラご無沙汰。

WindowsMediaPlayerなどでは、突っ込んだCDの内容を勝手に調べて、そのアルバム名とかアーティスト情報とか、曲名とかを表示してくれる。これはもちろんCDにその内容が書き込まれているわけではなくて、CDに収録された曲の長さと数の情報から、Internetを通して情報を取得し、それを表示するのだ。

自作のアプリケーションに、この、CDから情報を取得する機能をつけようと思った。

CDをPCに突っ込んで、Explorerで内容を見ると、Track01.cdaといったファイル名のファイルがトラック数だけ存在するのがわかる。これがWindowsが仮想的にCDのTOC情報をファイルとして扱えるように見せている仮装TOCファイルだ。一曲分44バイト。CD一枚分のTOCから、あるアルゴリズムに基づいてDISC_IDを算出してやると、それをもとにFreeDBサーバに対して問い合わせをかけて、CD情報を取得することができる。

で、そのDISC_IDの取得だが、Posix系のOSとかでは簡単に取得するプログラムが流通しているけれども、Windows環境、しかも自分の開発言語であるDelphiにはそんなものない。無いものは作るのがMZユーザDelphiユーザ。早速情報を検索する。続きを読む
posted by Tig3r at 02:58| Comment(0) | TrackBack(0) | Delphi

2008年04月14日

VB.NETでUDP非同期通信

(少々内容の修正をしました)

複数のマシン上で起動するあるプログラムにおいて、相互に他のマシン上で稼動している同プログラムが、正常に稼動しているかどうかを監視する必要が出た。
方法論としては、たとえばDBサーバに対してログを記録しつつ、それを参照したりといったスター型の構築も出来た(そして今考えれば、そっちが多分簡単だった)けど、ここはあえて、プログラム間で相互に通信を行うことで、他のプログラムの稼動状況を監視してみよう、と思い立った。苦難の道の始まりだったのだけど。
 
プログラム間で相互に小さなメッセージをやりとりすることで監視する、という方法論に適しているのは、やはりオーバヘッドが少なく、かつ接続を占有しないUDPだろうと思う。最大で10台くらいが相互に監視しあう状況になるので、わざわざTCPでコネクション貼ることもないだろう。
 
開発言語はVB.NET。すなわち.NETフレームワークの世界でそれを記述することになる。
.NETフレームワーク2.0では、きっちりUDPの非同期通信がサポートされている。
 
System.Net.Sockets.UdpClientがそれだ。
 
まず不特定との相手先と通信するためのソケットをインスタンスとして生成する。
 続きを読む
posted by Tig3r at 15:31| Comment(0) | TrackBack(0) | VB.NET

2008年03月19日

VB.NETでPingを打つ

さて、今回製造するアプリケーションでは、ネットワークの生死監視を行うにあたり、Pingを利用することになっている。ということで、VB.NET環境化にICMPスタックを組みこまなくてはならな…
 
…いなんてことは多分ないはずだ。.NET環境でそのあたりがカプセルされたクラスがきっとある。ぐぐって1ページ目にきっとある。
 
あった。My.Computer.Network.Pingメソッド。
Systemクラスへの別な、そして簡易なアクセス手段として、Myクラスが提供されている。
 
じゃあ、Pingを打ってみよう…続きを読む
posted by Tig3r at 16:52| Comment(0) | TrackBack(0) | VB.NET

2008年03月17日

.NET環境下でプロセス一覧の取得

さて、遅ればせながら仕事で.NET環境に触れることになったわけだが、今まで持っていたWin32API関連の知識があまり役立たないことに驚いている。
とはいえ、Web上に情報がかなり多いので、そんなに困らないわけだが。
 
今回困っているのは、INIファイルの読み書き、Winsockの利用、プロセス一覧の取得、などだが、そのうちプロセス一覧の取得について、ざっとテストプログラムを書いてみたら思いのほかうまくいったので覚書。
 
なお、System.Management名前空間を利用しているので、参照の追加をしておく必要がある。
 続きを読む
posted by Tig3r at 17:07| Comment(0) | TrackBack(0) | VB.NET

2008年03月14日

Excel_Reviser 最初の一歩

Excel_Reviserの環境構築、というほど大したものでもないが、実行できる状態まで来たので、まずはとりあえず動かしてみる。
 
まず一番最初に、ExcelReviserを使って、サーバ上にあるExcelファイルをただ表示するだけのスクリプトを記述してみる。
 
ExcelReviserの特徴は、テンプレートとなるExcelファイルを読み込んで、それに編集をかけて出力することにある。そこで、簡単だけど複数の要素を含むExcelファイルを作ってみる。
 
orgxls.jpg

 
テスト要素として、罫線、セルの着色、オートシェイプの貼り付け、セル参照、セルの結合、フォントの指定等を詰め込んだファイルを用意し、サーバに置いておく。
 
 続きを読む
posted by Tig3r at 16:54| Comment(0) | TrackBack(0) | PHP

2008年03月13日

貝印 スピーディみじん切り DA-0400を研ぐ

貝印から発売されていて、大体市場価格が千円前後のスピーディみじん切り器、DA-0400は、そのシンプルな見た目とは裏腹に、いや、シンプルだからこそ、実は非常に使い勝手が良い器具です。
no-title

 
うちでも3年ほど前に購入して便利に使っています。しかしさすがに貝印の刃とはいえ、このところ切れ味が鈍ってきました。最初のころは人参なども問題なく切り刻めていたものですが、このごろは刃先が食い込んで回らなくなる始末。
 
てなわけで、刃を研いで見ることにします。
 
 続きを読む
posted by Tig3r at 15:07| Comment(0) | TrackBack(0) | キッチン日記

2008年03月12日

Excel_Reviser入手と展開

先週から先行調査を開始したExcel_Reviserの件だけど、ようやっとその話が具体化してきたので、先行調査についてもちょっと急いで進める所存。
TrackBack先に使用感レポートも知らせたいし。
 
というわけでまずモジュールの入手とドキュメント読みから。
 
 続きを読む
posted by Tig3r at 01:46| Comment(0) | TrackBack(0) | PHP