Thủ tục con & Hàm
Các thủ tục con và hàm trong VBScript
Phần này cung cấp tổng quan về cách sử dụng thủ tục con và quy trình trong các script VisualBasic của Altum Designer.
Truyền tham số cho quy trình
Khi một hàm hoặc thủ tục con (một procedure/method) có thể nhận tham số được định nghĩa trong script, các biến có thể được truyền vào hàm hoặc thủ tục con theo hai cách: truyền tham chiếu hoặc truyền giá trị, lần lượt bằng cách sử dụng ByRef hoặc ByVal.
Để khai báo cách truyền tham số cho phương thức, hãy dùng các từ khóa ByRef hoặc ByVal trong danh sách tham số khi định nghĩa hàm hoặc thủ tục con trong câu lệnh Sub hoặc Function. Ví dụ, đoạn mã sau định nghĩa một thủ tục con nhận hai tham số. Tham số thứ nhất được truyền theo giá trị và tham số thứ hai được truyền theo tham chiếu:
Sub Test (ByVal Param1 As Integer , ByRef B As String)
Sự khác biệt giữa hai phương thức này là ByRef truyền một tham chiếu tới biến và cho phép thủ tục con/hàm thay đổi trực tiếp biến thực tế được truyền vào dưới dạng tham số. Đây là phương thức truyền tham số mặc định và sẽ được dùng nếu phương thức không được khai báo tường minh.
ByVal chỉ truyền giá trị của biến. Thủ tục con hoặc hàm có thể sử dụng giá trị này, nhưng biến gốc được truyền vào sẽ không bị thay đổi.
Các ví dụ sau minh họa sự khác nhau giữa các phương thức. Quy trình chính như sau:
Sub Main
Dim X, Y
X = 45 : Y = "Number"
Test X, Y ' Call to a subprocedure called Test.
MsgBox X
MsgBox Y
End Sub
Quy trình trên bao gồm một lệnh gọi đến thủ tục con Test — xem bên dưới.
Nếu thủ tục con được định nghĩa như sau:
Sub Test (ByRef A, ByRef B)
B = B & " = " & A : A = 10*A
End Sub
Khi đó các biến X và Y trong quy trình chính được thủ tục con tham chiếu trực tiếp. Kết quả là các giá trị của X và Y bị thủ tục con thay đổi, do đó sau khi Test được thực thi; X = 450 và Y = "Number = 45". Đây là hành vi mặc định khi phương thức không được khai báo tường minh.
Tuy nhiên, nếu thủ tục con được định nghĩa như sau:
Sub Test (ByVal A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Thì sau khi Test được thực thi, quy trình chính sẽ cho biết; X = 45 và Y = "Number" — tức là chúng vẫn giữ nguyên.
Ngoài ra, nếu thủ tục con được định nghĩa như sau (kết hợp các phương thức):
Sub Test (ByRef A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Thì sau khi Test được thực thi, X = 450 và Y = "Number", vì Y được truyền theo giá trị nên nó không thay đổi.
Bạn có thể ghi đè thiết lập ByRef của một hàm hoặc thủ tục con bằng cách đặt tên biến trong dấu ngoặc đơn ở câu lệnh gọi.
Gọi Test bằng câu lệnh sau:
Test (X), Y
...sẽ truyền biến X theo giá trị, bất kể phương thức được định nghĩa cho tham số đó trong phần định nghĩa quy trình là gì.
Các routine ngày và giờ
Ngôn ngữ VBScript hỗ trợ một tập hợp các routine Ngày/Giờ như trình bày dưới đây:
|
|
|
|
|
|
|
|
|
|
|
|
Các routine File IO
Ngôn ngữ VBScript hỗ trợ tập hợp các routine File IO sau:
|
|
|
|
|
|
|
|
|
Các routine toán học
Ngôn ngữ VBScript hỗ trợ tập hợp các routine toán học sau:
|
|
|
|
|
|
|
|
|
|
|
|
Các routine chuỗi
Ngôn ngữ VBScript hỗ trợ nhiều routine chuỗi như trình bày dưới đây:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Các routine xử lý máy chủ
Các routine xử lý máy chủ được sử dụng khi làm việc với các process trong script, đặc biệt khi cần trích xuất (lấy) hoặc thiết lập chuỗi cho các tham số của process.
Để thực thi các process và tham số trong script, hãy sử dụng các hàm sau:
|
|
|
|
|
|
|
|
|
Useful functions
|
|
|
|
|
|
|
|
|
Useful Dialogs
|
|
|
|
|
|