Các hàm lấy ký tự trong một chuỗi ký tự

  • Thread starter bvtvba
  • Ngày gửi
B

bvtvba

Guest
Trước hết, ta có một hàm hay dùng để đo độ dài chuỗi ký tự là hàm Len.

1. Hàm Len(s): Sẽ trả về độ dài chuỗi ký tự s (s: string), kiểu dữ liệu trả về là số nguyên Long

Nếu s là rỗng “” thì Len(s) = 0.

Ví dụ:

Mã:
Sub test1()

    Const s As String = ""

    MsgBox Len(s)

End Sub
Chúng ta sẽ thấy thông báo hiện ra kết quả là 0.

Một ví dụ khác:

Mã:
Sub test2()

    Const s As String = "ABC"

    MsgBox Len(s)

End Sub
Chúng ta sẽ thấy thông báo hiện ra kết quả là 3.



2. Hàm Left: Sẽ lấy độ dài chuỗi ký tự s như sau:

Left(s,2): Lấy 2 ký tự bên trái của chuỗi ký tự s.

Ví dụ:

Mã:
Sub test3()

    Const s As String = "ABC"

    MsgBox Left(s, 2)
   
End Sub
Chạy đoạn code trên, bạn sẽ thấy thông báo hiển thị là “AB”.

Nếu bây giờ ta chỉ định vượt quá độ dài của s thì sao?

Ví dụ:

Mã:
Sub test4()

    Dim s2  As String

    Const s As String = "ABC"

    s2 = Left(s, 5)

    MsgBox s2

End Sub
Độ dài chuỗi ký tự s là 3. Nhưng tôi cố tình chỉ định lấy 5 ký tự bên trái của s. Không hề báo lỗi. Khi chạy đoạn code trên, bạn sẽ thấy kết quả hiện ra là “ABC”.

3. Hàm Right: Tương tự hàm Left, nhưng nó lấy từ bên phải.

Ví dụ:

Mã:
Sub test5()

    Dim s2  As String

    Const s As String = "ABC"

    s2 = Right(s, 2)

    MsgBox s2

End Sub
Kết quả hiển thị ra là “BC”.
 
T

thanhphong

Guest
Nói về chủ đề này, nếu không nói về hàm Mid thì thật thiếu sót.
4. Hàm Mid(s,vị_trí,độ_dài):
vị_trí: là vị trí bắt đầu lấy ký tự
độ_dài: là độ dài chuỗi ký tự mà bạn lấy.
Ví dụ:
Mã:
Sub test()
    Dim s2  As String
    Const s As String = "ABCDEF"
    s2 = Mid(s, 3, 2)
    MsgBox s2
End Sub
Chạy code trên và bạn sẽ thấy kết quả hiển thị ra là "CD".
Chuỗi ký tự "ABCDEF", vị trí = 3 tức là chúng ta sẽ bắt đầu từ ký tự C, chúng ta lấy độ dài = 2 tức là ta sẽ lấy số ký tự bắt đầu từ C cho tới khi nào độ dài của chuỗi lấy được = 2, vậy kết quả là "CD".
Bây giờ nếu chúng ta cố ý muốn tạo ra lỗi thì sao đây?
Mã:
Sub test()
    Dim s2  As String
    Const s As String = "ABCDEF"
    s2 = Mid(s, 3, 8)
    MsgBox s2
End Sub
Ta lấy bắt đầu ở vị trí 3 tức là từ ký tự C, và ta sẽ lấy 8 ký tự. Đây là điều không thể. Từ C cho tới ký tự cuối cùng (F) thì số ký tự là 4. Vậy mà ta chỉ định lấy độ dài = 8. Tuy nhiên khi chạy thử code trên, không hề có lỗi nào hiện ra, chúng ta thu được kết quả là "CDEF".
 
Top