文字列を固定長文字列を含む構造体へ一括して渡す方法

解決


VB初心者  2005-08-23 20:46:20  No: 91711

下記の用に、固定長文字列を含む構造体への一括渡しを行いたいのですが、方法が分かりません!
申し訳ございませんが教えて下さい!

'構造体宣言
Private Type TYP_TEST
  STR_MOJI1 As String * 1
  STR_MOJI2 As String * 3
End Type

Private Sub BT_TEST_Click()

    Dim STR_DATA As TYP_TEST

    STR_DATA = "1234"

    '

End Sub


VB初心者  2005-08-23 20:52:20  No: 91712

すみません!
内容を編集途中で送信ボタンを2回も押してしまいました!
下記をお願いします!

'構造体宣言
Private Type TYP_TEST
  STR_MOJI1 As String * 1
  STR_MOJI2 As String * 3
End Type

Private Sub BT_TEST_Click()

    Dim STR_DATA As TYP_TEST

    'ここでSTR_DATA.STR_MOJI1="1" STR_DATA.STR_MOJI2="234"と一気に格納したい
    STR_DATA = "1234"

    

End Sub


VB初心者  2005-08-23 20:54:34  No: 91713

度々、申し訳ございません!
VB6.0で開発しております!


てst  2005-08-23 21:14:23  No: 91714

--------------------------------------------------------------------------------
魔界の仮面弁士 2005/08/23(火) 11:51:06
Option Explicit

Private Type A
  A1 As String * a1
  A2 As String * 3
End Type

Private Type B
  B1 As String * 4
End Type

Private Sub Form_Load()
  Dim X As A
  Dim Y As B

  Y.B1 = "1234"
  LSet X = Y
  Debug.Print "A.A1=[" & X.A1 & "], A.A2=[" & X.A2 & "]"
End Sub
--------------------------------------------------------------------------------


papa  2005-08-23 21:17:55  No: 91715

こんな感じでしょうか?

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

Private Type TYP_TEST
  STR_MOJI1 As String * 1
  STR_MOJI2 As String * 3
End Type

Private Sub BT_TEST_Click()

    Dim STR_DATA As TYP_TEST
    Dim a() As Byte
    a = StrConv("1234", vbFromUnicode)
    
    CopyMemory STR_DATA, a(0), Len(STR_DATA)
    
    Debug.Print STR_DATA.STR_MOJI1, STR_DATA.STR_MOJI2
    

End Sub


dark  2005-08-23 21:33:14  No: 91716

2重投稿したスレに適切な解答がついています。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200508/05080111.txt

2重投稿した場合は、どちらのスレも管理してください。
(管理人さんに削除依頼する等)

> てstさん
そのまま引用するならばリンクを張ったほうがいいです。


VB初心者  2005-08-23 22:06:18  No: 91717

皆様、御回答ありがとうございます!
CopyMemoryを使用したやりかたでうまくいきそうです!
お世話になりました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加