- 題名: どうやればいいのでしょうか
- 日時: 2003/08/21 22:55:27
- ID: 428
- この記事の返信元:
- (なし)
- この記事への返信:
- [430] Re[1]: データをまとめて扱うには?2003/08/22 2:22:27
- ツリーを表示
色々な方法がありますが、3つ紹介します。 特徴などを簡単に書きます。 詳しくは、キーワードを拾い出してHelpで検索してみて下さい。 ・構造体を使う =VBAではTypeキーワードに相当します。 Excelマクロなどにも通じた基本的な手法です。 ・クラスを使う =オブジェクト指向なプログラミングです。 javaなどにも通じた一般的スタイルです。 ・DataTableを使う=データベースとの連携やXMLファイルへの保存読出し など、+αの部分で強力な威力を発揮します。 .NETライブラリを積極的に活用する組み方です。 ●構造体を使う '日付と題名とアドレスをまとめてひとつのものとする構造体を作る Private Structure MailData Public Receive As Date Public Title As String Public Address As String End Structure '上記構造体の動的配列を宣言 Private MyMail() As MailData '指定した分だけ作る Private Sub InitMailBox(ByVal mailCount As Integer) ReDim MyMail(mailCount) End Sub '指定の位置へデータを格納する Private Sub SetMail(ByVal index As Integer, _ ByVal recieve As Date, ByVal title As String, ByVal address As String) MyMail(index).Receive = recieve MyMail(index).Title = title MyMail(index).Address = address End Sub ●クラスを使う '日付と題名とアドレスをまとめてひとつのものとするクラス Public Class MyMailData Private m_Receive As Date Private m_Title As String Private m_Address As String Public ReadOnly Property Title() As String Get Return m_Title End Get End Property Public Sub New(ByVal recieve As Date, _ ByVal title As String, ByVal address As String) m_Receive = recieve m_Title = title m_Address = address End Sub End Class '指定した分だけ作る(=呼ばれた回数分作る) Private Sub AddMail(ByVal recieve As Date, _ ByVal title As String, ByVal address As String) Dim mail As MyMailData = New MyMailData(recieve, title, address) MailList.Add(mail) 'MailListはArrayListなどのコレクション End Sub ●DataTableを使う Private table As New DataTable() '日付と題名とアドレスをまとめてひとつのものとするテーブルを作る Private Sub MakeTable() Dim column0 As New DataColumn("Recive", _ System.Type.GetType("System.Data")) Dim column1 As New DataColumn("Title", _ System.Type.GetType("System.String")) Dim column2 As New DataColumn("Address", _ System.Type.GetType("System.String")) table.Columns.Add(column0) table.Columns.Add(column1) table.Columns.Add(column2) End Sub '指定した分だけ作る(=呼ばれた回数分作る) Private Sub InsertMail(ByVal recieve As Date, _ ByVal title As String, ByVal address As String) Dim mail As DataRow mail = table.NewRow() mail("Recive") = recieve mail("Title") = title mail("Address") = address End Sub #タイトルは質問内容を反映したものになるようにしましょう
日付と題名とアドレスをまとめてひとつのものとして、
そのものを指定した分だけ作るにはどうしたらいいのでしょうか?
(日付、題名、アドレス)
(日付、題名、アドレス)
(日付、題名、アドレス)
(日付、題名、アドレス)
・
・
・
・
といったようなかんじです。