none
關於Array與資料存放的問題 RRS feed

  • 問題

  • 請問各位前輩:

    我試著將字串資料分割後存進Array

    例如:Dim TestArray() As String = Split(TestString,"@")
    這是成功的。

    但是現在我想要更進一步,將某一維陣列裡面的資料分割後存進一個二維陣列中。

    例如:
    TestArray(1) = "10月16日@禮拜一"
    TestArray(2) = "10月17日@禮拜二"
    並且利用@分割儲存成:
    TestArray2(1,1) = "10月16日"
    TestArray2(1,2) = "禮拜一"
    TestArray2(2,1) = "10月17日"
    TestArray2(2,2) = "禮拜二"

    請問我該怎麼做呢?

    2006年10月16日 下午 12:12

解答

  • 可以做成多層參照,我一般會把資料庫或是 csv 轉成這樣,不過我會保留第 0 列作為標題列。

    假設你原先資料為:TestString ="10月16日@禮拜一" & vbNewLine & "10月17日@禮拜二"

    Dim arrLine() As String = Split(TestString, vbNewLine)
    Dim arrData(UBound(arrLine) As Object

    For ibd = 0 To UBound(arrLine)
       arrData(ibd) = Split(arrLine(ibd), "@")
    Next

    所以:

    arrData(0)(0) = "10月16日"
    arrData(0)(1) = "禮拜一"
    arrData(1)(0) = "10月17日"
    arrData(1)(1) = "禮拜二"

    2006年10月16日 下午 01:00
    版主
  • :::

            Dim TestArray(1) As String
            TestArray(0) = "10月16日@禮拜一"
            TestArray(1) = "10月17日@禮拜二"

            Dim TestArray2(1, 1) As String

            For i As Integer = 0 To TestArray.Length - 1
                Dim s() As String = TestArray(i).Split("@")
                For j As Integer = 0 To s.Length - 1
                    TestArray2(i, j) = s(j)
                Next
            Next

    2006年10月16日 下午 01:05

所有回覆

  • 可以做成多層參照,我一般會把資料庫或是 csv 轉成這樣,不過我會保留第 0 列作為標題列。

    假設你原先資料為:TestString ="10月16日@禮拜一" & vbNewLine & "10月17日@禮拜二"

    Dim arrLine() As String = Split(TestString, vbNewLine)
    Dim arrData(UBound(arrLine) As Object

    For ibd = 0 To UBound(arrLine)
       arrData(ibd) = Split(arrLine(ibd), "@")
    Next

    所以:

    arrData(0)(0) = "10月16日"
    arrData(0)(1) = "禮拜一"
    arrData(1)(0) = "10月17日"
    arrData(1)(1) = "禮拜二"

    2006年10月16日 下午 01:00
    版主
  • :::

            Dim TestArray(1) As String
            TestArray(0) = "10月16日@禮拜一"
            TestArray(1) = "10月17日@禮拜二"

            Dim TestArray2(1, 1) As String

            For i As Integer = 0 To TestArray.Length - 1
                Dim s() As String = TestArray(i).Split("@")
                For j As Integer = 0 To s.Length - 1
                    TestArray2(i, j) = s(j)
                Next
            Next

    2006年10月16日 下午 01:05