• 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

Xóa bỏ các khoảng trống

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

Xóa bỏ các khoảng trống

Gửi bàigửi bởi truongphu » CN 30/03/2008 8:09 pm

Thủ thuật: Xóa bỏ các khoảng trống
Tác giả: truongphu
Mô tả: Xóa bỏ các khoảng trống trong một chuỗi


Hai Function sau có cùng tác dụng:

Mã: Chọn hết

  1. Private Function BoTrông(Câu As String) As String
  2.     Dim i As Integer 'Code by truongphu
  3.     On Error Resume Next
  4.     If Left(Câu, 1) <> " " Then BoTrông = Left(Câu, 1) Else Câu = RTrim(Câu)
  5.         For i = 2 To Len(Câu)
  6.             If Mid(Câu, i, 1) = " " And Mid(Câu, i - 1, 2) = "  " Then
  7.             Else
  8.                 BoTrông = BoTrông & Mid(Câu, i, 1)
  9.             End If
  10.         Next
  11. End Function
  12.  
  13. Private Sub Command1_Click()
  14. Text1 = BoTrông(Text1)
  15. End Sub
  16.  
  17. Private Function PreventDuplicateSpaces(Word)
  18.     Dim i, WordLength, Character, LastCharacter, NewWord
  19.     On Error GoTo ErrorHandler  'VbLib
  20.     WordLength = Len(Word)
  21.     For i = 1 To WordLength
  22.         Character = Mid(Word, i, 1)
  23.         If LastCharacter = " " And Character = " " Then
  24.         Else
  25.             NewWord = NewWord & Character
  26.             LastCharacter = Character
  27.         End If
  28.     Next i
  29.     PreventDuplicateSpaces = Trim(NewWord)
  30.     Exit Function
  31. ErrorHandler:
  32. End Function
  33.  
  34. Private Sub Command2_Click()
  35. Text1 = PreventDuplicateSpaces(Text1)
  36. End Sub


o0o--truongphu--o0o

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

TTD
Thành viên chính thức
Thành viên chính thức
Bài viết: 34
Ngày tham gia: T.Bảy 29/03/2008 10:25 am
Been thanked: 1 time

Re: Xóa bỏ các khoảng trống

Gửi bàigửi bởi TTD » CN 30/03/2008 10:41 pm

Mã: Chọn hết

  1. Do While InStr(str, "  ") > 0
  2.     str = Replace(str, "  ", " ")
  3. Loop
  4. str = Trim(str)

Hình đại diện của người dùng
NXK1138
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 88
Ngày tham gia: T.Sáu 19/03/2010 1:29 pm
Has thanked: 2 time
Been thanked: 2 time

Re: Xóa bỏ các khoảng trống

Gửi bàigửi bởi NXK1138 » T.Hai 10/10/2011 6:44 pm

Cái này cũ rồi nhưng em xin bổ sung nếu có ai cần dùng tới, khắc phục cả lỗi truyền vào chuỗi rỗng.

Mã: Chọn hết

Function Botrong(byval str as string) as String
    Dim i as Long
    str=Trim(str)
    If Len(str)>3 Then
        For i = 2 To Len(str)-1
            If InStr(1, str, "  ") <> 0 Then
                str = Replace(str, "  ", " ")
            End If
        Next i
    End If
    Botrong=str
End Function
Sửa lần cuối bởi NXK1138 vào ngày T.Ba 11/10/2011 7:17 am với 1 lần sửa.

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 445
Ngày tham gia: T.Sáu 11/02/2011 3:36 pm
Has thanked: 107 time
Been thanked: 56 time

Re: Xóa bỏ các khoảng trống

Gửi bàigửi bởi OKMimo » T.Hai 10/10/2011 8:49 pm

vậy tại sao không dùng:
  1. Private Function Xoa(str As String) As String
  2. Xoa=Replace(str," " , "")
  3. End Function

Hình đại diện của người dùng
TheDark
Guru
Guru
Bài viết: 188
Ngày tham gia: T.Năm 04/11/2010 3:56 pm
Đến từ: Mang Thít - Vĩnh Long
Has thanked: 6 time
Been thanked: 33 time

Re: Xóa bỏ các khoảng trống

Gửi bàigửi bởi TheDark » T.Ba 11/10/2011 6:17 am

Như vậy thì "_ _ _" sẽ thành "_ _" chứ không thành "_"
Cách của bác TruongPhu hơi rườm ra. Theo ý tưởng của bác TruongPhu =>
  1. Private Function BoTrông(Câu As String) As String
  2.     Dim i As Integer
  3.     On Error Resume Next
  4.     If Left(Câu, 1) <> " " Then BoTrông = Left(Câu, 1) Else Câu = RTrim(Câu)
  5.         For i = 1 To Len(Câu)
  6.             If Mid(Câu, i, 1) = " " Then
  7.                 Do While  Mid(Câu, i+1, 1) = " "
  8.                        BoTrông = Replace(BoTrông , "  ", " ")          
  9.                        i++                                                          
  10.                 Loop
  11.             End If
  12.         Next
  13. End Function
  14.  


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