• 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
User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

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

Postby truongphu » Sun 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:

Code: Select all

  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
Posts: 34
Joined: Sat 29/03/2008 10:25 am
Been thanked: 1 time

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

Postby TTD » Sun 30/03/2008 10:41 pm

Code: Select all

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

User avatar
NXK1138
Thành viên năng nổ
Thành viên năng nổ
Posts: 88
Joined: Fri 19/03/2010 1:29 pm
Has thanked: 2 times
Been thanked: 2 times

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

Postby NXK1138 » Mon 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.

Code: Select all

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
Last edited by NXK1138 on Tue 11/10/2011 7:17 am, edited 1 time in total.

OKMimo
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 447
Joined: Fri 11/02/2011 3:36 pm
Has thanked: 107 times
Been thanked: 56 times

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

Postby OKMimo » Mon 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

User avatar
TheDark
Guru
Guru
Posts: 188
Joined: Thu 04/11/2010 3:56 pm
Location: Mang Thít - Vĩnh Long
Has thanked: 6 times
Been thanked: 33 times

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

Postby TheDark » Tue 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.  


Return to “[VB] Chuỗi và Thời gian”

Who is online

Users browsing this forum: No registered users and 0 guests