標題:
[發問]
請問如何將整個陣列值傳到 Sub 或 Function 去使用?
[打印本頁]
作者:
linshin1999
時間:
2011-1-5 17:04
標題:
請問如何將整個陣列值傳到 Sub 或 Function 去使用?
前輩請問如何能將整列的值到 Sub 或 Funtion 去用 ?
例 File_data(2000) 要呼叫 Funtion con_rec() 請問如何將整個 File_data(2000) 陣列值傳過去用?
作者:
暗黑
時間:
2011-1-5 17:16
sub 沒有回傳值
Function 有回傳值
傳值到 副程式裡 方式都一樣
sub >>call ABC(File_data)
Function>> ioi = ABC(File_data)
sub(Function) ABC( byval DATA)
作者:
linshin1999
時間:
2011-1-5 18:20
暗黑兄: 在 ABC 中要宣告 DATA 是陣列嗎? byval 和 byref 都可以嗎? 還是只能用 byval ? 非陣列的寫法我會,陣列的寫法我不會, 我是要把整個陣列帶到副程式去運算.
作者:
fourfruit
時間:
2011-1-5 18:42
在程式前面宣告陣列變數為public
public a(
sub
end sub
function
end function
都可以用
作者:
linshin1999
時間:
2011-1-5 21:36
好像只有這一條路了,請問如果宣告成Public後,Redim 和 Erase 和可用嗎?雖然可以自己去試,但是還是想確定一下,謝謝.
作者:
暗黑
時間:
2011-1-6 13:30
其實 不論陣列 或 非陣列 把它們 都當成一個箱子
今天 我在 A機台(副程式) 要用 File_data 這個箱子(這個箱子 什麼樣子(宣告),自已可以決定吧,圓的、扁的、方的)
然後 A機台做完了 要到 B機台做 ,對機台把 ABC 這個箱子 交給 B機台 然後 B 機台 把 ABC 的箱子叫 DATA (
sub(Function) ABC( byval DATA)
)
而 Function 只是告訴 B 機台 要把結果 回傳 所以 ioi = ABC(File_data)
而IOI 的宣告 就看你回傳陣列 就 宣告陣列
另 PUBLIC 是全區域宣告,這樣玩的話,不用( ioi = ABC(File_data) )這樣子玩了,直接 在副程式裡引用就好了,不用傳來傳去;而用值的傳遞不用 PUBLIC ,主要是 當 副程式完成後,其宣告就可以 NOTHING 了,不會佔太多效能(VB.net記憶体釋放不是做的很好),另程式段在解讀時也比較好看...
BYVAL 這個指令 是偷懶指令 ,表示 動態變數(翻的不是很好), 它會 依 傳過來的格式,宣告成其相同格式...
自已玩玩看 自已体會吧
作者:
linshin1999
時間:
2011-1-6 16:36
為了避免重複讀取,所以把檔案放在陣列中(datatable), 整個糸統都會用到,所以宣告成 Public 會好一點.不然呼叫一次就要讀寫一次,當然因為是Public 所以不用傳來傳去.
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)