Các hàm xử lý chuỗi trong Vb6
Space (Num as Long) ‘trả về chuỗi chỉ toàn khoảng trống với số khoảng trống được ấn định bởi tham số Num
VD: str = space (3) —> str = ” “
String (Num as Long, character) ‘trả về một chuõi (theo dạng variant) gồm các ký tự lặp lại. Ký tự lặp lại là ký tự đầu của biểu thức chuổi được truyền ở tham số thứ hai của hàm (character). Tham số thứ nhất (Num) xác nhận số lần lặp lại.
VD: str = string (5, “a”)
str = string (5, “abc”)
str = string (5, 97)
cả 3 ví dụ này đều cho ra chuỗi “aaaaa”
Trim (String) ‘ cắt các khoảng trống ở 2 đầu chuỗi
VD: str = Trim (” Yêu em “) —-> str = “Yeu em”
LTrim (String) ‘ cắt các khoảng trống ở đầu chuỗi
RTrim (String) ‘ cắt các khoảng trống cuối chuõi
Len ( ) ‘ trả về chiều dài của chuỗi bao gồm các khoảng trống và các ký tự
VD: str = Len (“caulacboVB”) —> str = 10
Mid (string, start as Long, length) ‘ trích từ tham số 1(string) một chuỗi ở vị trí bắt đầu được xác định bởi tham số 2(start), với số ký tự được qui định bởi tham số 3(length). Nếu bỏ wa tham số length thì hàm Mid sẽ trích đến hết chuỗi.
VD: str = Mid (“caulacboVB”, 1, 8) —> str = “caulacbo”
InStr (start, string1, string2, compare) ‘ trả về vị trí bắt đầu của một chuỗi con cần tìm trong một chuỗi mẹ. tham số 1(start) xác định vị trí bắt đầu tìm, tham sô 2(string1) là chuỗi mẹ, tham số 3(string2) là chuỗi cần tìm, tham số 4(compare) mặc định là so sánh nhạy ký tự.
Khi bỏ wa tham số thứ nhất thì vị trí bắt đầu tìm mặc định là 1
VD: pos = InStr (“caulacboVB”, “VB”) —> pos = 9
InStrRev (StringCheck as string, StringMatch as string, Start as Long, Compare) ‘ chức năng như InStr nhưng InStrRev hoạt động ngược lại từ cuối chuỗi và cú pháp khác hơn. Cả hai hàm đều là hàm tìm kiếm nhạy ký tự nên cần chú ý chữ thường và chữ HOA. InStrRev thường kết hơp với Mid để tách một tên File khỏi đường dẫn và tên mở rộng.
VD:
PathFile = “C: emp01.tmp”
Pos = InStrRev (pathFile, “”)
PathFile = Mid (PathFile, Pos + 1)
Pos = InStrRev (PathFile, “.”)
PathFile = Mid (PathFile, 1, Pos – 1) —>PathFile = “001”
Left (String, Length as Long) ‘ trích từ đầu một chuỗi của tham số 1(String) với số lượng xác định bởi tham số 2(Length)
VD: str = Left (“caulacboVB”, 6) —> str = “caulac”
Right (String, Length as Long) ‘ như Left nhưng trích ngược từ cuối chuỗi
Replace (Expression as string, Find as string, Replace as string, start, count, compare) ‘ tìm trong tham số thứ 1(Expression) một chuỗi xác định bởi tham số 2(Find) và thay thế bằng một chuỗi được đặt ở tham số 3(Replace). Ba tham số còn lại là tùy chọn. Start qui định vị trí bắt đầu tìm chuỗi cần được thay, nếu bỏ wa mặc định la 1. Count qui định số lần thay thế trong chuỗi, nếu bỏ wa mặc định Replace sẽ tìm và thay thế cho đến hết chuỗi.
VD: str = “bcbcbc”
tmp = Replace (str, “b”, “a”) —> str = “acacac”
tmp = Replace (str, “b”, “a”, 2) —> str = “cacac”
tmp = Replace (str, “b”, “a”, 1, 1) —> str = “acbcbc”
StrComp (String1, String2, Compare) ‘ dùng để so sánh 2 chuỗi.
Trị trả về: (String1 < String2) = -1; (String1 = String2) = 0; (String1 > String2) = 1
Like ‘ so sánh 2 chuỗi cho phép sử dụng biệt ngữ ( như dùng ký tự đại diện trong Dos) trị trả về = True nếu tương hợp
VD: “abcd” Like “*bcd” = True
“abcd” Like “a?cd” = True
“a1cd” Like “a#cd” = True
Chú ý hàm Like mặc định cũng là hàm nhạy ký tự, theo thiết lập Option Compare ở form hoặc module
Chr(charcode as Long) ‘ Chuyển mã Ascii thành ký tự
VD:
MyChar = Chr(65) ‘ Returns A.
MyChar = Chr(97) ‘ Returns a.
MyChar = Chr(62) ‘ Returns >.
MyChar = Chr(37) ‘ Returns %.
Asc(String as String) ‘ trả về mã Ascii của ký tự
VD: Asc (“a”) = 65
ChrW(charcode) ‘ Chuyển mã Ascii thành ký tự (Hỗ trợ Unicode)
VD: ChrW(&H1EC7) = “ệ”
AscW (string) ‘ Chuyển ký tự thành mã Ascii (hỗ trợ Unicode)
VD: AscW(“ệ”) = 7879 = H1EC7
LCase(String) ‘ chuyển đổi chuỗi sang chữ in thường
UCase (String) ‘ ngược với LCase
Join (SourceArray, Delimiter) ‘ tạo chuỗi mới từ một mảng chuỗi (SourceArray) với các phần tử được phân định bởi tham số Delimiter
VD: Arr (0) = “a”
Arr (1) = “b”
Arr (2)= “c”
Print Join (Arr, ” “) = “a b c”
Split (Expression as String, Delimiter, Count, Compare) ‘ tạo mảng chuỗi từ một chuỗi (Expression). Đặt tham số Delimiter để chuyên biệt chỗ ngắt, nếu bỏ wa tham số này mặc định Split sẽ tách tại các khoảng trống của chuỗi. Tham số Count qui định số lần tách. Ba tham số cuối là tùy chọn
VD: Dim str as string, Arr as Variant
str = “cau lac bo vb”
Arr = Split (str) ‘ dùng For duyệt mảng Arr sẽ cho ra : Arr ( 0 ) = “cau”; Arr ( 1 ) = “lac” …Arr ( 3 ) = “vb”
Arr = Split (str, “a”) —> Arr (0) = “c”; Arr (1) = “u l”; Arr (2) = “c bo vb”
Arr = Split (str, ” “, 2) —> Arr (0) = “cau”; Arr(1) = “lac bo vb”
Filter (sourcearray, match [, include [, compare]]) ‘ Lọc mảng sourcesrray với giá trị lọc là match ; include: Lọc đảo (True hoặc False) ; compare: chỉ rõ kiểu dữ liệu để so sánh trong quá trình lọc.
Dùng cho tham số compare
vbUseCompareOption = –1 : Chế độ tùy chọn, VB sẽ tự động lựa lọai dữ liệu thích hợp
vbBinaryCompare = 0 : So sánh nhị phân
vbTextCompare = 1 : So sánh chuỗi
vbDatabaseCompare = 2 : So sánh dữ liệu
VD:
Dim selNames() As String
Dim Names(1 To 5) As String
Names(1) = “A”
Names(2) = “B”
Names(3) = “C”
Names(4) = “D”
Names(5) = “E”
selNames = Filter(Names, “A”) ‘ Returns “A”
selNames = Filter(Names, “B”, False) ‘Returns “A” , “C”, “D”, “E”
StrReverse(expression as String) ‘ Đảo chuỗi expression
VD: StrReverse(“1234567”) ‘ Returns “7654321”