玄関へお回り下さい。
主要配列操作関数関係の使用例 (7個)             (SNo.006)
Filter     指定されたフィルター条件に基づいた文字列配列のサブセットを含む配列を返す
GetLowerBound Array 内の指定した次元の下限を取得します
GetUpperBound Array 内の指定した次元の上限を取得します
Join      配列に含まれる多数の部分文字列を結合して作成される文字列を返します
LBound     配列の指定された次元で使用できる添字の最小値を返します。
Split     部分文字列ごとに区切られた文字列からゼロベースの1次元配列を作成し、返します
UBound     配列の指定された次元で使用できる添字の最大値を返します
使用コントロール Button1  〜 Button7
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
★ Filter 関数
 
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'Filter 関数    [名前空間 : Microsoft.VisualBasic]
    '指定されたフィルター条件に基づいた文字列 (String) 配列の
    'サブセットを含むゼロ ベースの配列を返します。
    Dim strItem() As String = {"A123", "B001", "A001", "C003", "a010", "0A0"}
    Dim strFilter() As String
    'strItem() の配列内から A が含まれているデータを strFilter() 配列にセットします
    strFilter = Microsoft.VisualBasic.Filter(strItem, "A", True, CompareMethod.Text)

    For i As Integer = strFilter.GetLowerBound(0) To strFilter.GetUpperBound(0)
        Debug.Write(strFilter(i) & "  ")    '結果  A123 A001 a010 0A0
    Next i
End Sub
 
★ Array.GetLowerBound メソッド

Private Sub Button2_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button2.Click
'Array.GetLowerBound メソッド   [名前空間: System]
    'Array 内の指定した次元の下限を取得します。
   
Dim strItem() As String = {"A123", "B001", "A001", "C003", "a010", "0A0"}
    Debug.WriteLine(strItem.GetLowerBound(0))   
'結果  0
End Sub

★ Array.GetUpperBound メソッド

Private Sub Button3_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button3.Click
'Array.GetUpperBound メソッド   [名前空間: System]
    'Array 内の指定した次元の上限を取得します。
   
Dim strItem() As String = {"A123", "B001", "A001", "C003", "a010", "0A0"}
    Debug.WriteLine(strItem.GetUpperBound(0))   

     '結果  5 (配列は 0 から始まるのでデータ数は6個)

End Sub

★ Join 関数及びString.Join メソッド

Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
'String.Join メソッド   [名前空間: System]
    '指定した String 配列の各要素間にある指定した区切り記号 
    'String を連結し、連結された単一の文字列を作成します。
    Dim myData() As String = {"〒555-0011", "彦根市 城町 1-15", "草柳  強"}
    Dim strWk As String = System.String.Join(ControlChars.CrLf, myData)
    Debug.WriteLine(strWk)      '結果 〒555-0011
                                '       彦根市 城町 1-15
                                '       草柳  強
'---------------------------------------------------------------------------------------------
'Join 関数      [名前空間 : Microsoft.VisualBasic]
    '配列に含まれる多数の部分文字列を結合して作成される文字列を返します。
    Dim strWk1 As String
    'String.Join メソッド とでは、引数が逆になります
    strWk1 = Microsoft.VisualBasic.Join(myData, ControlChars.CrLf)
    Debug.WriteLine(strWk1)     '結果 〒555-0011
                                '       彦根市 城町 1-15
                                '       草柳  強
End Sub

★ LBound 関数

Private Sub Button5_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button5.Click
'LBound 関数    [名前空間 : Microsoft.VisualBasic]
    '配列の指定された次元で使用できる添字の最小値を返します。
    Dim strItem() As String = {"A123", "B001", "A001", "C003", "a010", "0A0"}
    Debug.WriteLine(Microsoft.VisualBasic.LBound(strItem))  '結果  0
End Sub
 
★ Split 関数及びString.Split メソッド
部分文字列ごとに区切られた文字列からゼロベースの 1 次元配列を作成し、返します。 

'String.Split メソッド      [名前空間: System]
   'このインスタンス内で、配列内で指定された 1 つ以上の文字で区切られた部分文字列を
   '識別し、次にこの部分文字列を String 配列に格納します。
   Dim str1 As String = "〒555-0011滋賀県滋賀県彦根市 城町 1-15滋賀県草柳  強"
   Dim strTmp() As String = str1.Split("滋賀県")
   For i As Integer = strTmp.GetLowerBound(0) To strTmp.GetUpperBound(0)
      Debug.WriteLine(strTmp(i))
   Next i

   '結果   〒555-0011            '1文字でしか分割されない 
   '       賀県                  'vbCrLf や ControlChars.NewLine も2文字になるので注意
   '       賀県彦根市 城町 1-15
   '       賀県草柳  強

'---------------------------------------------------------------------------------------------
'String.Split メソッドで1文字以上のセパレーターを指定する場合
   Dim sp(0) As String
   sp(0) = "滋賀県"  '配列で指定する必要がある
  'strTmp = str1.Split(sp, StringSplitOptions.None)                  '空データも返す
   strTmp = str1.Split(sp, StringSplitOptions.RemoveEmptyEntries)    '空データは返さない
   For i As Integer = strTmp.GetLowerBound(0) To strTmp.GetUpperBound(0)
      Debug.WriteLine(strTmp(i))
   Next i
   '結果   〒555-0011            '空データは返さない
   '       彦根市 城町 1-15
   '       草柳  強

'---------------------------------------------------------------------------------------------
'Split 関数    [名前空間 : Microsoft.VisualBasic]
   '部分文字列ごとに区切られた文字列からゼロ ベースの 1 次元配列を作成し、返します。
   Dim strTmp1() As String = Microsoft.VisualBasic.Split(str1, "滋賀県")
   For i As Integer = strTmp1.GetLowerBound(0) To strTmp1.GetUpperBound(0)
      Debug.WriteLine(strTmp1(i))
   Next i
   '結果   〒555-0011
   '                          '空データが返る
   '       彦根市 城町 1-15
   '       草柳  強
 
UBound 関数

Private Sub Button7_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button7.Click
'UBound 関数    [名前空間 : Microsoft.VisualBasic]
    '配列の指定された次元で使用できる添字の最大値を返します。
    Dim strItem() As String = {"A123", "B001", "A001", "C003", "a010", "0A0"}
    Debug.WriteLine(Microsoft.VisualBasic.UBound(strItem))
            '結果  5 (配列は 0 から始まるのでデータ数は6個)
End Sub




2004/05/14
2005/08/31


VBレスキュー(花ちゃん)
VB.NET2003  VB2005