• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Giới thiệu hàm LeftW, RightW

Các thủ thuật liên quan đến xử lý chuỗi và thời gian
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Giới thiệu hàm LeftW, RightW

Gửi bàigửi bởi truongphu » T.Ba 20/03/2012 8:37 am

Thủ thuật: Giới thiệu hàm LeftW, RightW
Tác giả: truongphu
Mô tả: Giới thiệu hàm LeftW, RightW



Ta quen dùng các hàm VB6 căn bản về chuỗi là Left, Right, Mid...
Chúng hoạt động dựa trên ký tự (character)

Tuy nhiên, thực tế chúng ta hay xử lý lại là các từ (word)
mà nhu cầu nầy rõ ràng rất cần thiết.
Do đó, tôi viết các hàm LeftW, RightW, MidW để phục vụ nhu cầu trên
(ký tự W ở sau có nghĩa là word = từ; tuy nhiên theo thông lệ, W nầy cũng đại biểu cho việc dùng được với các từ unicode)

Trong Project đính kèm, câu chuỗi mẫu để tách trái phải là: (Trích Hướng dẫn của Forum)
Ðể có thể đính kèm tập tin vào bài viết của mình, bạn vào phần "Tải lên tập tin đính kèm."


  1. Private Sub Command1_Click()
  2.     TextBox2.Text = RightW(TextBox1.Text, 6)
  3. End Sub
  4.  
  5. Private Sub Command2_Click()
  6.     TextBox2.Text = LeftW(TextBox1.Text, 12)
  7. End Sub
  8.  
  9. Private Sub Form_Load()
  10. TextBox1.Text = "Ð" & ChrW(7875) & " có th" & ChrW(7875) & _
  11. " " & ChrW(273) & "ính kèm t" & ChrW(7853) & "p tin vào bài vi" & _
  12. ChrW(7871) & "t c" & ChrW(7911) & "a mình, b" & ChrW(7841) & _
  13. "n vào ph" & ChrW(7847) & "n ""T" & ChrW(7843) & "i lên t" & _
  14. ChrW(7853) & "p tin " & ChrW(273) & "ính kèm."""
  15. End Sub
  16.  
  17. Function LeftW(Chuôi As String, sô As Integer) As String
  18.     If InStr(Chuôi, " ") = 0 Then Exit Function ' truongphu
  19.    Dim TáchChuôi() As String:     TáchChuôi = Split(Chuôi, " ")
  20.     ReDim Preserve TáchChuôi(sô - 1)
  21.     LeftW = Join(TáchChuôi, " ")
  22. End Function
  23.  
  24. Function RightW(Chuôi As String, sô As Integer) As String
  25.     If InStr(Chuôi, " ") = 0 Then Exit Function ' truongphu
  26.    Dim TáchChuôi() As String:     TáchChuôi = Split(Chuôi, " ")
  27.     ReDim Preserve TáchChuôi(UBound(TáchChuôi) - sô)
  28.     Dim ChuôiTam As String, dài%
  29.     ChuôiTam = Join(TáchChuôi, " ")
  30.     dài = Len(Chuôi) - Len(ChuôiTam) - 1
  31.     RightW = Right(Chuôi, dài)
  32. End Function
  33.  


còn hàm MidW chưa viết, cũng từa tựa như 2 hàm LeftW và RightW...
Nếu code còn sai sót hay chưa tối ưu, Mong các bạn đóng góp thêm


----
Ghi chú: Trong Project TáchChuôi = Split(Chuôi) xin sửa lại: TáchChuôi = Split(Chuôi, " ")
Tập tin đính kèm
Hàm RightW LeftW MidW.rar
(1.68 KiB) Đã tải 449 lần


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Giới thiệu hàm MidW

Gửi bàigửi bởi truongphu » T.Ba 03/04/2012 4:15 pm

  1. Function MidW(ByVal Chuôi As String, ByVal ViTri As Integer, Optional ByValAs Integer = 0) As String
  2.     If InStr(Chuôi, " ") = 0 Then Exit Function ' truongphu
  3.    Dim TáchChuôi() As String:     TáchChuôi = Split(Chuôi, " ")
  4.         Dim X%: X = UBound(TáchChuôi) + 2 - ViTri
  5.         Dim ChuôiTam As String: ChuôiTam = RightW(Chuôi, X)
  6.     Select Case
  7.         Case 0: MidW = ChuôiTam
  8.         Case Is > 0
  9.             MidW = LeftW(ChuôiTam, sô)
  10.     End Select
  11. End Function


Hàm MidW đi kèm hàm LeftW và hàm RightW vì hàm MidW có dùng 2 hàm nầy.

Project toàn vẹn:
Hàm RightW LeftW MidW.rar
(1.85 KiB) Đã tải 307 lần


Hay không? :-"
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Thống kê các từ trong file text

Gửi bàigửi bởi truongphu » T.Năm 12/07/2012 12:27 pm

Là ví dụ minh họa dùng các hàm LeftW, RightW, MidW.
Có bổ sung hàm LenW
Các hàm LeftW, RightW, MidW được sửa lại tốt hơn.

- Đếm số từ=word trong file.
(không phải số ký tự=character)
- Thống kê số lần các từ trong file
Tập tin đính kèm
Thông kê sô luong các tu (word) trong van ban (document).rar
(4.03 KiB) Đã tải 219 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Quay về “[VB] Chuỗi và Thời gian”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách