- PR -

VB2005でCのように配列データを構造体にコピーする方法

1
投稿者投稿内容
てんさん
会議室デビュー日: 2006/10/14
投稿数: 8
投稿日時: 2006-11-04 11:50
すごく初歩的な質問ですみません。
VB2005で現在アプリを組んでいますが
C言語のように配列データに入っている連続データを
そのまま構造体に一発でコピーすることはできないのでしょうか。

C言語であればmemcpyのように、型をキャストしてサイズ指定すれば
できますが・・・。

今やりたい内容としては

Dim hairetu(5) as short
で宣言した配列データを

public structure kouzou
public a as short
public b as short
public c as short
public d as short
public e as short
end structure
で宣言した構造体にデータをコピーしたいです。

やはり1つずつ根気よくコピーするしかないのですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-04 13:47
引用:

てんさんさんの書き込み (2006-11-04 11:50) より:

やはり1つずつ根気よくコピーするしかないのですか?


するしかないこともないのですが、その方が良いでしょう。
構造体に Shared メソッドを 1 つ追加しましょう。

コード:

    Public Structure Kouzou
        Public A As Short
        Public B As Short
        Public C As Short
        Public D As Short
        Public E As Short

        Public Shared Function GetKouzouFromArray(ByVal shortArray As Short()) As Kouzou
            If shortArray Is Nothing Then
                Throw New System.ArgumentNullException("shortArray", "Null が渡されました")
            End If

            If shortArray.Length < 5 Then
                Throw New System.ArgumentException("配列の数が不正です", "shortArray")
            End If

            Dim returnValue As New Kouzou()
            returnValue.A = shortArray(0)
            returnValue.B = shortArray(1)
            returnValue.C = shortArray(2)
            returnValue.D = shortArray(3)
            returnValue.E = shortArray(4)

            Return returnValue
        End Function
    End Structure


最初に書く時は面倒ですが、書いた後で面倒になることは少ないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
てんさん
会議室デビュー日: 2006/10/14
投稿数: 8
投稿日時: 2006-11-05 23:47
やはり一つずつやっていくのがいいのですね。
試してみます。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)