« は~とちょこ 26 | Main | 抱き枕@激★店 »

2004.03.14

は~とデーターベース計画


楽しい曲を聴きたいときは楽しい曲を、静かな曲を聴きたいときは静かな曲を検索できるデーターベースプログラムをつくるぞ。

♥クラスライブラリーを作り始める(つづき)
先週に引き続き、XMLファイルを読み書きするクラスライブラリーを作っています。
今週は、データーを格納するクラスを作成し始めました。

CDのデーターを丸ごと格納するクラスですが、XMLファイルを読み書きするクラス(heartXmlWriter)へデーターを渡しやすくするためにクラスの構造を工夫します。
XMLファイルにある多くの要素の親子関係や兄弟関係をデーターのツリー構造であらわします。

データー関係のクラスは、
♥アルバムの全データーを格納するデータークラス
♥アルバム名・リリース日などを入れるアルバムデータークラス、
♥複数のトラックデーターを格納し管理するトラックの配列データークラス、
♥1曲ごとの曲情報・印象情報・ファイル情報を格納するトラックデータークラス
♥曲名、演奏時間などを格納する曲データークラス、
♥1曲ごとの印象を格納する印象データークラス、
♥ファイル名、ファイルサイズなどを格納するファイルデータークラス、
♥それから、上の7つすべてのクラスの基本クラスになる基本データークラス。

基本クラスのメソッドはC++の純粋仮想関数のようになるMustOverrideを指定しました。

8つのクラスを仕上げて一応のテストをするのは結構大変です。
まあ趣味で自分が使うものですから、テストはとりあえず動く程度で良いのですが。

'
'基本クラス
Public MustInherit Class heartData_Base 'heartDataの基本クラス
Public ID As Int32 'ID番号

#Region "XML用機能 オーバーライド"
'このクラスの要素名
Public MustOverride Function GetMYname() As String

'子要素の個数を返す
Public MustOverride Function GetCHILDcount() As Int16

'インデックスに対応する子要素名を返す
Public MustOverride Function GetCHILDname(ByVal index As Int16) As String

'インデックスに対応する子要素を返す
Public MustOverride ReadOnly Property CHILD(ByVal index As Int16) As heartDataBase

'兄弟要素の要素数を返す
Public MustOverride Function GetDATAcount() As Int16

'インデックスに対応する兄弟要素名を返す
Public MustOverride Function GetDATAname(ByVal index As Int16) As String

'インデックスに対応する兄弟要素の値
Public MustOverride Property DATA(ByVal index As Int16) As String

  'あと各クラスでCopyメソッドを定義する

#End Region

End Class


« は~とちょこ 26 | Main | 抱き枕@激★店 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/4052/298077

Listed below are links to weblogs that reference は~とデーターベース計画:

« は~とちょこ 26 | Main | 抱き枕@激★店 »