tagCANDY CGI VBレスキュー(花ちゃん) - バイト型配列への変換方法(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
バイト型配列への変換方法(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

バイト型配列への変換方法(VB6.0) [No.15の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/27 15:32
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[応用コード][文字列処理][]                                        *
* キーワード:構造体,型変換,ユーザ定義型,Byte型,,                                 *
***********************************************************************************

始めまして、はらだと申します。(同じ悩みを抱えてました。)
こういう方法があります。ご参考まで。
#ただし、LSetのVBリファレンスには
#「予期せぬ結果があるかも…」と記述されていました。

Type Rec1
     B1(3) As Byte '"1234"
     B2(5) As Byte '"あいう"
     B3(3) As Byte '"えお"
End Type
Type RecB
     B0(255) As Byte
End Type

Declare Sub MoveMem Lib "kernel32" Alias "RtlMoveMemory" _
(pDest As Any, pSource As Any, ByVal ByteLen As Long)

Function LeftSet()
    Dim LC_C   As String
    Dim LC_X() As Byte
    Dim LC_1   As Rec1
    Dim LC_1L  As Long
    Dim LC_B   As RecB
    Dim LC_2() As Byte
    
    ReDim LC_X(LenB(StrConv(LC_C, vbFromUnicode)))
    LC_1L = LenB(LC_1)
    ReDim LC_2(LC_1L)
    Erase LC_2()
    
    '文字列→ユーザー定義型
    LC_C = "1234あいうえお"
    LC_X = StrConv(LC_C, vbFromUnicode)
    MoveMem LC_1, LC_X(0), LenB(StrConv(LC_C, vbFromUnicode))
    Debug.Print StrConv(LC_1.B1, vbUnicode)
    Debug.Print StrConv(LC_1.B2, vbUnicode)
    Debug.Print StrConv(LC_1.B3, vbUnicode)
    'ユーザー定義型→バイト型配列
    LSet LC_B = LC_1
    LC_2 = LeftB(LC_B.B0, LC_1L)
    Debug.Print StrConv(LC_2, vbUnicode)
End Function
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ