第4章 VB.NET程式與 網頁製作的應用 主講人: 姚奉緒 M9153304
本章重點 陣列的宣告與使用 副程式與函數 VB內建函數
陣列的宣告 Dim 陣列名稱(N) As 資料型別 例 Dim Y(10) As Integer 宣告1個含有11個整數元素的陣列 Y(0),Y(1),Y(2),….., Y(10)
設定陣列初值 Dim X()= {“Word”,”Excel”,”Access”} 設定 X(0)= “Word” X(1)= ”Excel” X(2)= ”Access” 注意: 括弧中不可輸入數字
陣列的使用 Dim I Dim X()={“Word”,”Excel”,”Access”,”Outlook”} For I=0 to 3 Response.Write( X(I) & “<P>”) Next I UBound()—找出陣列的最大註標 For I=0 to 3 可改為 For I=0 to Ubound(X)
排序與搜尋 Array.Sort() Array.IndexOf(陣列名稱,資料,開始位置) Dim X()={3,9,15,8,4} Array.Sort(X) 執行後, X()={3,4,8,9,15} Array.IndexOf(陣列名稱,資料,開始位置) 若資料存在則傳回位值, 否則傳回負傳 Dim 姓名()={“Adam”,”Alan”,”Peter”,”Tom”} I=Array.IndexOf(姓名, ”Peter”) 傳回I值為2
多維陣列 Dim 陣列名稱(M,N,L,…..) Dim X(4,3) 宣告一個5列(0~4) x 4行(0~3)之二維陣列 宣告一個4x5x6x7之四維陣列
副程式(Subroutine) ASP.NET規定副程式與函數必須放在<script>與</script>標示之間 <script Language=“VB” runat=“server”> Sub 副程式名稱(參數) . End Sub </script>
<% ‘例1 無參數的副程式 Name = “張無忌” score = 51 Call IsScorePassed ‘Call可省略 Response.Write( “<HR>” ) %> <script Language=“VB” runat=“server”> Dim Name As String Dim score As Integer Sub IsScorePassed Response.Write( Name & “, ” ) If score >= 60 Then Response.Write( “你及格了!” ) Else Response.Write( "你被當掉了!" ) End If End Sub </script>
<% ‘例2 有參數的副程式 IsScorePassed(“張無忌”, 51) IsScorePassed(“王國榮”, 80) Response.Write( “<HR>” ) %> <script Language=“VB” runat=“server”> Dim Name As String Dim score As Integer Sub IsScorePassed( Name, Score) Response.Write( Name & “, ” ) If score >= 60 Then Response.Write( “你及格了!” ) Else Response.Write( "你被當掉了!" ) End If End Sub </script>
函數(Function) 函數是一種特殊形式的副程式, 它包含了副程式所有的功能, 而且增加了回傳值的功能 可分為使用者自行定義的自定函數及VB系統的內建函數
<% Dim A = f(3) Response.Write( “A = ” & A & “<P>” ) ’ 輸出結果: 16 %> <script Language="VB" runat="server"> Function f(X) Return X^2 + 2*X + 1 End Function </script>
內建函數—字串類(1) UCase/LCase—字串轉成大寫/小寫字元 Trim—除去不必要的空白字元 X=“ ASP” “ASP” X=“AbCdE” UCase(X) “ABCDE” LCase(X) “abcde” Trim—除去不必要的空白字元 X=“ ASP” “ASP”
內建函數—字串類(2) Join—合併陣列中資料 Split—將字串拆成陣列 Dim A()={“F11”,”F18”,”F23”,”F56”} Dim X=Join(A,”<p>”) X=“F11<p>F18<p>F23<p>F56” Split—將字串拆成陣列 Dim B=“John,Ken,Leo” Dim List=Split(B,”,”) List(0)=“John”, List(1)=“Ken”,List(2)=“Leo”
內建函數—字串類(3) Replace—字串取代 X=“ABCBE” Replace(X,”B”,”G”) X=“AGCGE”
內建函數—數值類(1) FormatNumber—格式化數值資料 Value—轉換為數值資料 Dim X=Value(“56.78”) Dim X=FormatNumber(60.666667,2) X=60.67 Value—轉換為數值資料 Dim X=Value(“56.78”) X=56.78
內建函數—數值類(2) Rnd—亂數 0<Rnd<1 X=1+FIX(Rnd*42) 產生介於1~42間之樂透數字
內建函數—日期時間類(1) Year/Month/Day–讀取日期資料年/月/天數 Dim D=Now() Y=Year(D) Y=2004 Z=Month(D) Z=7 Hour/Minute/Second–讀取時間資料時/分/秒數 H=Hour(D) H=20 M=Minute(D) M=30
內建函數—日期時間類(2) DateAdd – 將日期加上天數 DateDiff – 計算時間差 Dim D=(“d”, +60, Now) 現在起60天 Dim D=(“m”, +3, Now) 現在起3個月 DateDiff – 計算時間差 S=DateDiff(“s”,Now,#01/01/2010 00:00:00#) 計算現在時間與2010年1月1日間之秒差 S=DateDiff(“d”,Now,#01/01/2010 00:00:00#) 計算現在時間與2010年1月1日間之日差
謝謝收看