請問各位大大陣列的問題
例如:A=Array(AA,SS,DD,FF)
b=Array(FF,AA)
b一定是 a 的子集合(也就是說 b一定是a裡面的東西)
然後將 a 和 b 共有的除去 放到 c 陣列
請問兩個陣列怎麼互相比較字串
還有將剩下的A陣列的字串如何新增加入到C陣列裡面阿??
拜託各位大大了~~><
煩請幫忙解答!!!!!!
2007-01-21 18:28:30 · 1 個解答 · 發問者 戰古魂 1 in 電腦與網際網路 ➔ 程式設計
請問這個只能全部搜尋的方式處理陣列嗎!?
如果陣列內容換成
A=Array(AA,SS,DD,AA,FF,AA)
b=Array(FF,AA,AA)
用大大的方式會輸出結果為 SS DD
那如果輸出的結果要SS DD AA
也就是說 B陣列裡面的有N個才刪除A陣列裡面N個 , 當然A 陣列都會大於N個以上
請問這樣該加上什麼技巧才能解決!!??
2007-01-22 05:08:44 · update #1
哇~~大大你的指令應用好厲害~~佩服@@
我寫了很多迴圈可是還是一直達不到的效果
這讓我有種進步的感覺^^
這類的JOIN函式寫法我沒看過的說~
請問大大有沒有推薦進階應用的書籍阿~
2007-01-24 19:28:14 · update #2
最後我可以在問一下嘛!?
因為我都沒這樣寫過所以不懂
所以我囉唆了點><
I%, J%, S$ <==這個放在宣告裡面的是各代表什麼意思阿!?
Chr(0) <==這個用意
S = Chr(0) & Join(B, Chr(0)) & Chr(0)
InStr(S, Chr(0) & A(I) & Chr(0)) = 0
S = Replace(S, Chr(0) & A(I), "", 1, 1)
這幾行的格式可以再解釋一下嘛!?
拜託了~大大~T.T
2007-01-24 19:51:21 · update #3
Private Sub Command1_Click()
Dim A, B, C(), I%, J%, S$
A = Array("AA", "SS", "DD", "FF")
B = Array("FF", "AA")
'利用Join函數以Chr(0)分隔把B陣列轉成字串
S = Chr(0) & Join(B, Chr(0)) & Chr(0)
For I = 0 To UBound(A)
'以InStr函數找S字串裡是否有跟A陣列內相同的值
If InStr(S, Chr(0) & A(I) & Chr(0)) = 0 Then
'如果沒有就加入C陣列
ReDim Preserve C(J): C(J) = A(I): J = J + 1
End If
Next
'輸出C陣列(還是以Join函數用逗號分隔)
Print Join(C, ",")
End Sub
2007-01-22 13:52:25 補充:
If InStr(S, Chr(0) & A(I) & Chr(0)) = 0 Then
'如果沒有就加入C陣列
ReDim Preserve C(J): C(J) = A(I): J = J 1
'加上這2行
Else
S = Replace(S, Chr(0) & A(I), "", 1, 1)
End If
2007-01-25 00:58:00 補充:
您繆讚了,若有安裝MSDN有空可去看一下VB裡面有那些函數,陳述式,方法...,多少會有收穫,若沒有可到 VB研究小站(本已關站,最近又出現,可惜以前討論區的很多精華都消失了)看看,蠻不錯的
http://vb.ncis.com.tw(不用全型無法顯示)
2007-01-25 13:18:56 補充:
I% = I As Integer , S$ = S As String , J& = J As Long , X! = X As Single , Y# = Y As Double,用符號宣告比較省事.
Join 是將陣列轉成字串(Split是將字串轉陣列)其第2個選項就是要看你以那種字元來組合陣列(分割字串)預設值是空隔
2007-01-25 13:19:31 補充:
以A(0)=1,A(1)=2為例
Join(A,",") = "1,2" 而我只是用Chr(0)來代替逗號而已,S前後要加上Chr(0)是為了InStr(S, Chr(0) & A(I) & Chr(0)) 這個式子去做的,InStr是要找字串裡某字的位置,以S="11,3,2"為例 我們要找S有沒有1時若寫成InStr(S,"1")則它會得到1出現在第1個字,但若改成 S=",11,3,2," 則InStr(S,",1,")=0
2007-01-25 13:28:43 補充:
由此我們就可判斷A陣列裡有無B陣列的值
否: 放到C陣列
是: 用Replace把S字串內跟A(i)相同的字改成空值,Replace(S, Chr(0) & A(I), "", 1, 1)表示只改1個,Replace(S, Chr(0) & A(I), "")就全部改掉,
2007-01-25 13:37:57 補充:
不讓我補充了XD
2007-01-25 13:39:06 補充:
寄給你吧
2007-01-21 20:09:18 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋