.Pass Array to Sub/Function

Category: Arrays

Date: 03-28-2012

Return to Index


 
'It is very common for a programmer to need to pass an array of values
'to a Sub/Function and/or to return the array to the calling code.
 
'PowerBASIC cannot return an array as a Function return value, so arrays
'must be passed ByRef as arguments to the Sub/Function.
 
'Primary Code:
'the calling code:
iResult& = MyFunction ( ArrayA() )      'pass ByRef, not by ByVal
'the Sub/Function statement
Function MyFunction ( TheArray() As Long ) As Long
 
 
'Compilable Example:
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
#Include "Win32API.inc"
Global hDlg as Dword
 
Function PBMain() As Long
   Dialog New Pixels, 0, "Test Code",300,300,200,200, %WS_OverlappedWindow To hDlg
   Control Add Button, hDlg, 100,"Push", 50,10,100,20
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   If CB.Msg = %WM_Command AND CB.Ctl = 100 AND CB.Ctlmsg = %BN_Clicked Then
      Dim MyArray(5) as Long
      Array Assign MyArray() = 5,4,3,2,1,0
      MsgBox MyFunction(MyArray())
 
   End If
End Function
 
Function MyFunction ( A() as LongAs String
   Local i as Long, temp$
   For i = 0 to UBound(A)
      temp$ = temp$ + str$(A(i))
   Next i
   Function = temp$
End Function
 
'gbs_00325
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm