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

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

Post by truongphu »

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

Private Function BoTrông(Câu As String) As String    Dim i As Integer 'Code by truongphu    On Error Resume Next    If Left(Câu, 1) <> " " Then BoTrông = Left(Câu, 1) Else Câu = RTrim(Câu)        For i = 2 To Len(Câu)            If Mid(Câu, i, 1) = " " And Mid(Câu, i - 1, 2) = "  " Then            Else                BoTrông = BoTrông & Mid(Câu, i, 1)            End If        NextEnd Function Private Sub Command1_Click()Text1 = BoTrông(Text1)End Sub Private Function PreventDuplicateSpaces(Word)    Dim i, WordLength, Character, LastCharacter, NewWord    On Error GoTo ErrorHandler  'VbLib    WordLength = Len(Word)    For i = 1 To WordLength        Character = Mid(Word, i, 1)        If LastCharacter = " " And Character = " " Then        Else            NewWord = NewWord & Character            LastCharacter = Character        End If    Next i    PreventDuplicateSpaces = Trim(NewWord)    Exit FunctionErrorHandler:End Function Private Sub Command2_Click()Text1 = PreventDuplicateSpaces(Text1)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

Post by TTD »

Code: Select all

Do While InStr(str, "  ") > 0    str = Replace(str, "  ", " ")Loopstr = 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

Post by NXK1138 »

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: 55 times

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

Post by OKMimo »

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

Post by TheDark »

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
Post Reply

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