2. Đưa cỏc đoạn Script vào trong trang Web
2.4 Vũng lặp trong VBScript
Khi chúng ta viết code, chúng ta muốn cho phép cùng một khối lệnh chạy một số lần. Chúng ta có thể sử dụng cấu trúc lặp trong code của chúng ta để làm điều này. Trong VBScript chúng ta có bốn vòng lặp:
▪ Vòng lặp For...Next- Lặp 1 khối lệnh trong khi điều kiện đúng(True) hoặc cho đến khi điều kiện còn đúng.
▪ Vòng lặp For Each...Next - Lặp 1 nhúm lệnh cho từng thành phần của 1 mảng hay tập hợp.
▪ Vòng lặp Do...Loop- Lặp 1 khối lệnh trong khi điều kiện đúng(True) hoặc cho đến khi điều kiện còn đúng.
▪ Vòng lặp While...Wend - Thực hiện một dãy lệnh trong khi điều kiện là True.
2.4.1 Vũng lặp For...Next
Chúng ta sử dụng câu lệnh For...Next để chạy một khối lệnh, khi chúng ta biết có bao nhiêu lần thực hiện lại khối lệnh đó.
Cú pháp tổng quát:
For biến_đếm = bắt_đầu To kết_thúc [Step bước_nhảy] [nhóm_lệnh] [Exit For] [nhóm_lệnh] Next Thành phần Mô tả
biến_đếm Biến kiểu số dùng nh- bộ đếm lặp. Không đ- ợc dùng biến kiểu mảng.
bắt_đầu Giá ban đầu của biến đếm.
kết_thúc Giá trị cuối cùng của biến đếm.
b- ớc_nhảy Số l- ợng tăng thêm của biến đếm sau mỗi lần lặp.Nếu không chỉ định thì b- ớc nhảy là 1.
nhóm_lệnh 1 hoặc nhiều câu lệnh mà For và Next sẽ thực hiện theo số lần lặp đã chỉ định.
Chúng ta sử dụng một biến đếm để tăng hoặc giảm sau mỗi lần thực hiện vòng lặp, giống nh- thế này:
For i=1 to 10 some code Next
2.4.1.1 Từ khúa Step
Sử dụng từ khóa Step khi chúng ta muốn tăng hoặc giảm biến đếm bằng giá trị mà chúng ta đã xác định.
For i=2 To 10 Step 2 some code
Next
Để giảm biến đếm, chúng ta phải sử dụng một giá trị của Step là âm. Chúng ta sẽ chỉ ra một giá trị kết thúc nghĩa là giá trị thấp ơn giá trị ban đầu.
Trong ví dụ sau, biến đếm (i) đ- ợc giảm 2 sau mỗi lần lặp.
For i=10 To 2 Step -2 some code
Next
2.4.1.2 Exit a For...Next
Chúng ta có thể thoát khỏi câu lệnh For...Next với từ khóa Exit For.
2.4.1.3 Vũng lặp For Each...Next
➢ Mô tả: Lặp 1 nhóm lệnh cho từng thành phần của 1 mảng hay tập hợp.
➢ Cú pháp For Each thành_phần In nhóm [nhóm_lệnh] [Exit For] [nhóm_lệnh] Next [thành_phần] Thành phần Mô tả
thành_phần Biến dùng để lặp với tất cả các thành phần của tập hợn(collection) hoặc array. đối với collections, thành_phần chỉ có thể là biến
Variant, 1 loại biến Object, or bất kỳ biến Automation object. đối với arrays, thành_phần chỉ có thể là biến Variant.
nhóm Tên của tập hợp object hoặc array.
nhóm_lệnh 1 hoặc nhiều lệnh đ- ợc thực hiện lặp theo từng mục (item) trong nhóm.
➢ Vớ dụ:
dim cars(2) cars(0)="Volvo" cars(1)="Saab"
cars(2)="BMW"
For Each x in cars
document.write(x & "<br />") Next
2.4.2 Vũng lặp Do...Loop
Chúng ta có thể sử câu lệnh Do...Loop để chạy một khối lệnh khi chúng ta không biết bao nhiêu lần lặp. Các khối mã đ- ợc lặp đi lặp lại khi một điều kiện là đúng hay cho đến khi trở thành một điều kiện đúng sự thật.
➢ Cỳ phỏp:
Do [{While | Until} điều_kiện]
[khối_lệnh] [Exit Do] [khối_lệnh] Loop ➢ Hoặc, chỳng ta cú thể dựng cỳ phỏp: Do [khối_lệnh] [Exit Do] [khối_lệnh]
Loop [{While | Until} điều_kiện]
Thành phần Mụ tả
điều_kiện Biểu thức số(numeric) hoặc chuỗi(string) đỳng(True) hoặc sai(False). Nếu điều kiện là Null(khụng cú giỏ trị hợp lệ), điều kiện được xem như False.
khối_lệnh 1 hoặc nhiều lệnh được lặp trong khi điều kiện đứng hoặc đến khi điều kiện đỳng.
➢ L- u ý
✓ Lệnh Exit Do chỉ có thể dùng trong cấu trúc điều khiển Do...Loop để chuyển h- ớng thoát khỏi Do...Loop. Lệnh Exit Do đặt mọi nơi trong
điều kiện (ví dụ, If...Then), Exit Do chuyển điều khiển tức thì cho các lệnh đi ngay sau Loop.
✓ Khi dùng trong nhiều Do...Loop lồng nhau, Exit Do chuyển điều khiển để lặp Do..Loop lồng trên nó 1 cấp.
➢ Ví dụ:
Do Until DefResp = vbNo
MyNum = Int (6 * Rnd + 1) ' Kết sinh ngẫu nhiờn 1 số nguyờn ở giữa 1
và 6.
DefResp = MsgBox (MyNum & " Do you want another number?", vbYesNo)
Loop
Dim Check, Counter
Check = True: Counter = 0 ' Khởi tạo biến. Do ' loop ngoài.
Do While Counter < 20 ' loop trong. Counter = Counter + 1 ' tăng biến đếm. If Counter = 10 Then ' If điều kiện=True... Check = False ' set giỏ trị flag=False.
Exit Do ' Thoỏt loop trong. End If
Loo
Loop Until Check = False
2.4.3 Vũng lặp While...Wend
Thực hiện một dãy lệnh trong khi điều kiện là True.
➢ Cú pháp: While điều_kiện [nhóm_lệnh] Wend Thành phần Mụ tả
điều_kiện 1 biểu thức số hoặc chuỗi định giỏ True hoặc False. Nếu
điều_kiện là Null, điều_kiện xem như False.
nhúm_lệnh Nhúm lệnh được thực hiện khi điều kiện là True.
➢ Vớ dụ
Dim Counter
Counter = 0 ' Khởi tạo biến.
While Counter < 20 ' Test giỏ trị Counter.
Counter = Counter + 1 ' Tăng Counter.
Alert Counter
Wend 'Kết thúc lặp While khi Counter > 19.
2.4.4 Một số hàm thụng dụng trong VBScript. 2.4.4.1 Hàm Abs(number).
➢ Mô tả: trả về trị tuyệt đối của number
➢ Cú pháp: Abs(number) Ví dụ: Dim MyNumber MyNumber = Abs(50.3) ' Trả về 50.3. MyNumber = Abs(-50.3) ' Trả về 50.3.
2.4.4.2 Hàm CreateObject.
➢ Mô tả: Khởi tạo một đối t- ợng.
➢ Cú pháp:
CreateObject (servername.typename [, location])
➢ Ví dụ:
'Tạo 1 connection:
Set Conn = Server.CreateObject("ADODB.Connection") ‘Mở Excel trong đối tượng Application.
ExcelSheet.Application.Visible = True ' Đ-a text vào ô đầu tiên của sheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1"
ExcelSheet.SaveAs "C:\DOCS\TEST.XLS" ' L-u sheet. 'Đóng Excel bằng ph-ơng thức Quittrên Application object. ExcelSheet.Application.Quit
Set ExcelSheet = Nothing ' Giải phóng biến đối t-ợng.
2.4.4.3 Hàm CStr
➢ Mụ tả: chuyển biểu thức (expression) sốsang chuỗi.
➢ Cỳ phỏp:
CStr(expression):
➢ Vớ dụ:
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble là số thực.
MyString = CStr(MyDouble) ' MyString chứa "437.324" là một chuỗi.
Thành phần Mô tả
servername Phải có. Tên của ứng dụng.
typename Phải có. Kiểu của lớp hay đối t- ợng đ- ợc tạo.
2.4.4.4 hàm Date.
➢ Mụ tả: trả về ngày hiện tại.
➢ Vớ dụ
Dim MyDate
MyDate = Date ' MyDate chứa ngày hiện tại
2.4.4.5 Hàm DateValue.
➢ Mụ tả: trả về ngày từ chuỗi dạng ngày
➢ Cỳ phỏp:
DateValue(strdate):
➢ Vớ dụ:
Dim MyDate
MyDate = DateValue("September 11, 1963") ' Trả về 1 date.
2.4.4.6 Hàm LBound
➢ Mụ tả: Trả về cỡ chiều nhỏ nhất của mảng.
➢ Cỳ phỏp
LBound(arrayname[, dimension])
Thành phần Mụ tả
arrayname Tờn biến mảng
dimension Số thứ tự của chiều được mụ tả trong mảng. Dựng 1 cho chiều thứ nhất, 2 cho chiều thứ hai,... Nếu dimension bỏ qua, mặc nhiờn là 1.
2.4.4.7 Hàm UBound
➢ Mụ tả: Trả về cỡ chiều lớn nhất của mảng.
➢ Cỳ phỏp
UBound(arrayname[, dimension])
➢ Vớ dụ Dim A(100,3,4) 2.4.4.8 Hàm LCase.
➢ Mụ tả: Chuyển chuỗi (string) sang chữ thường.
➢ Cỳ phỏp: LCase(string) ➢ Vớ dụ: Dim MyString Dim LCaseString MyString = "VBSCript"
LCaseString = LCase(MyString) ' LCaseString chứa "vbscript"
2.4.4.9 Hàm UCase.
➢ Mụ tả:Chuyển chuỗi (string) sang chữ hoa.
➢ Cỳ phỏp:
UCase(string) Thành
phần Mụ tả
arrayname Tờn biến mảng
dimension Số thứ tự của chiều được mụ tả trong mảng. Dựng 1 cho chiều thứ nhất, 2 cho chiều thứ hai,... Nếu dimension bỏ qua, mặc nhiờn là 1.
Lệnh Giỏ trị trả về
UBound(A, 1) 100
UBound(A, 2) 3
➢ Vớ dụ:
Dim MyString
Dim UCaseString
MyString = "VBSCript"
UCaseString = UCase(MyString) ' UCaseString chứa "VBSCRIPT"
2.4.4.10 Hàm Len
➢ Mụ tả:Trả về độ số lượng ký tự chứa trong chuỗi hoặc biến.
➢ Cỳ phỏp:
Len(String|Varname)
➢ Vớ dụ:
Dim MyString
MyString = Len("VBSCRIPT") ' MyString chứa 8.
2.4.4.11 Hàm LTrim, RTrim, Trim
LTrim(String): trả về chuỗi String nhưng đó cắt bỏ cỏc khoảng trắng trước(bờn trỏi)
chuỗi
RTrim(String): trả về chuỗi String nhưng đó cắt bỏ cỏc khoảng trắng sau(bờn phải)
chuỗi
Trim(String): trả về chuỗi String nhưng đó cắt bỏ cỏc khoảng trắng trước và sau(trỏi &
phải) chuỗi
➢ Vớ dụ:
Dim MyVar
MyVar = LTrim(" vbscript ") ' MyVar chứa "vbscript ". MyVar = RTrim(" vbscript ") ' MyVar chứa " vbscript". MyVar = Trim(" vbscript ") ' MyVar chứa "vbscript".
2.4.4.12 Hàm Mid, Left, Right
➢ Mid(string, start[, length]):
- Trả về chuỗi cắt ra length ký tự từ chuỗi string bắt đầu từ vị trớ start. - Nếu length khụng chỉ ra thỡ lấy đến cuối chuỗi.
➢ Left(String, Length):
- Trả về Length ký tự bờn trỏi của String
➢ Right(String, Length):
- Trả về Length ký tự bờn phảii của String
➢ Vớ dụ:
Dim MyVar
MyVar = Mid("VB Script is fun!", 4, 6) 'MyVar chứa "Script". Dim MyString, LeftString
MyString = "VBSCript"
LeftString = Left(MyString, 3) ' LeftString chứa "VBS". Dim MyString, RightString
MyString = "VBSCript"
2.4.4.13 Hàm Now
➢ Mụ tả:Trả về ngày và giờ hiện tại
➢ Vớ dụ:
Dim MyVar
MyVar = Now ' MyVar chứa ngày và giờ hiện tại.
2.4.4.14 Hàm Space ➢ Mụ tả:Trả về 1 chuỗi cú Number ký tự trắng ➢ Cỳ phỏp: Space(Number) ➢ Vớ dụ: Dim MyString
MyString = Space(10) ' Trả về 1 chuỗi cú 10 khoảng trắng.
MyString = "Hello" & Space(10) & "World" ' Chốn 10 khoảng trắng giữa 1 chuỗi.
2.4.4.15 Hàm Time:
➢ Mụt tả:Trả về giờ hiện tại.
➢ Vớ dụ:
Dim MyTime
MyTime = Time ' Trả về giờ hiện tại.
2.4.4.16 Hàm TimeValue(Time):
➢ Mụ tả: Trả về giờ từ chuỗi giờ Time
➢ Cỳ phỏp:
TimeValue(Time):
➢ Vớ dụ:
Dim MyTime
MyTime = TimeValue("4:35:17 PM") ' MyTime chứa 4:35:17 PM.
2.4.4.17 Hàm MsgBox
➢ Mụ tả:Hiển thị hộp thoại thụng bỏo, chờ người sử dụng click 1 nỳt và trả về 1 giỏ trị.
➢ Cỳ phỏp
➢ Thiết lập Cỏc đối số thiết lập: Hằng Giỏ trị Mụ tả
vbOKOnly 0 Chỉ hiện nỳt OK.
vbOKCancel 1 Hiện OK và Cancel.
vbAbortRetryIgnore 2 Hiện Abort, Retry, và Ignore.
vbYesNoCancel 3 Hiện Yes, No, và Cancel.
vbYesNo 4 Hiện Yes và No.
vbRetryCancel 5 Hiện Retry và Cancel.
vbCritical 16 Hiện Critical Message icon.
vbQuestion 32 Hiện Warning Query icon.
vbExclamation 48 Hiện Warning Message icon.
vbInformation 64 Hiện Information Message icon.
vbDefaultButton1 0 Giỏ trị thứ 1 mặc nhiờn.
vbDefaultButton2 256 Giỏ trị thứ 2 mặc nhiờn.
vbDefaultButton3 512 Giỏ trị thứ 3 mặc nhiờn.
vbDefaultButton4 768 Giỏ trị thứ 4 mặc nhiờn.
vbApplicationModal 0 Cỏc thức Application
vbSystemModal 4096 Cỏch thức System.
Thành phần Mụ tả
prompt Biểu thức chuỗi dài tối đa 1024 ký tự
1 số chỉđịnh kiểu nỳt. title Chuỗi tiờu đề
helpfile Chỉđịnh file help
➢ Giỏ trị trả về
Hàm MsgBox trả về cỏc giỏ trị sau:
Hằng Giỏ trị Nỳt vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No ➢ Vớ dụ: Dim MyVar
MyVar = MsgBox ("Hello World!", 65, "MsgBox Example") ' MyVar chứa 1 hoặc 2, ' tựy thuộc nỳt nào được click