Board logo

標題: [發問] 請問如何將整個陣列值傳到 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/)