實現Choose函數(FB可變的參數數量用法例題)

  勇芳 2018-5-19 5396

VisualBasic6 里有個 Choose函數 ,而在 FreeBasic里沒有,要用到這函數,需要自己寫一個。

Choose 函數

從參數列表中選擇并返回一個值。

語法

Choose(index, choice-1[, choice-2, ... [, choice-n]])

Choose 函數的語法具有以下幾個部分:

index 必要參數,數值表達式或字段,它的運算結果是一個數值,且界于 1 和可選擇的項目數之間。 

choice 必要參數,Variant 表達式,包含可選擇項目的其中之一。 


VisualBasic6 的參數是Variant ,而我們只能 數字寫一個,字符寫一個。

順便我們可以學習到FreeBasic可變的參數數量用法。

數字型例題:

Function ChooseLong cdecl(Index As Long, ...) As Long
  Dim arg As Any Ptr
  Dim i As Integer
  
  arg = va_first()
  If Index = 1 Then
      Function = va_arg(arg, Long)
  Else
      For i = 1 To Index -1
          arg = va_next(arg, Long)
      Next
      Function = va_arg(arg, Long)
  End If
  
End Function

注意:此為特殊函數,因為里面有 cdecl ,需要把此函數放在 VisualFreeBasic 的 FF_AppStart 模塊里才可以編譯。

或者在VFB函數庫里新建一個才可以。

字符型例題:

Function ChooseStr cdecl(Index As Long, ...) As String 
  Dim arg As Any Ptr
  Dim i As Integer
  
  arg = va_first()
  If Index = 1 Then
      Function = *va_arg(arg, ZString Ptr)
  Else
      For i = 1 To Index -1
          arg = va_next(arg, ZString Ptr)
      Next
      Function = *va_arg(arg, ZString Ptr)
  End If
  
End Function


因國家互聯網安全管理要求,關閉回帖功能。大家需要留言,請使用【勇芳軟件客服】即時聯系勇芳點此打開->>勇芳軟件客服
返回
聯系勇芳
一个人看的www视频播放中文_2012中文字幕电影_亚洲国产成人高清在线观看_中文字幕天堂最新版在线网