Xóa khoảng trắng Space trong các phần tử trong mảng

Liên hệ QC

lehoctk

Thành viên chính thức
Tham gia
20/2/21
Bài viết
60
Được thích
1
Mong các thành viên trên diễn đàn cho em xin ý kiến về vấn đề loại bỏ khoảng trắng thừa trong các phần tử trong mảng.
Hiện tại em có thử đoạn đoạn code bên dưới nhưng không loại bỏ được khoảng trắng ở cuối chuỗi.
PHP:
Function RemoveSpaceChar(ByVal Str As String)
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
        .MultiLine = True
        .Global = True
        .Pattern = "\s+"
        RemoveSpaceChar = Trim(.Replace(Str, Space(1)))
    End With
End Function

Sub tst()
    Dim i, tmp, data
    data = Array("         Banh       da do       500g        Xuan       Loc    ")
    For i = 0 To UBound(data)
        tmp = RemoveSpaceChar(data(i))
    Next
End Sub
A/c nào có thể chỉ cho em nguyên nhân lỗi được không ạ, em cảm ơn.
 
Vâng e, cảm ơn, em cũng đã tham khảo tư vấn của bác batman1 về việc dùng Chr(160) và giải quyết được vấn đề rồi ạ. Em cảm ơn tất cả các anh/chị đã chỉ dạy. Em xin kết thúc cuộc thảo luận ở đây ạ.
Sao bạn không hỏi tại sao lại có những loại khoảng trắng như char 32, char 160

Char 32 sẽ bị thu gọn lại khi ô có WrapText, char này gọi là khoảng trắng cổ điển. Một số trường hợp gặp lỗi che mất ký tự. Vì vậy mà char 160 được sinh ra để giải quyết vấn đề này.

Char 160 sẽ không bị thu gọn lại khi ô có WrapText, char này còn gọi là khoảng trắng không ngắt. Có tác dụng trong co giãn văn bản không bị lỗi che mất ký tự. Nó được dùng đa số trong kỹ thuật hiển thị văn bản. Bạn sẽ gặp nó đa số trong "Ngôn ngữ Đánh dấu", như xml, html, ....
 
Upvote 0
Cái lầm tưởng tôi nói, đó là lầm tưởng dữ liệu của mình có thể gõ tay lại và chúng bằng nhau. Lẽ ra gõ tay vào code nào thì phải kiểm tra kết quả của code đó, lại đi kiểm tra kết quả của code khác.
Thực ra tôi hỏi là chủ thớt có kiểm tra cái được tung lên GPE không, vì tôi có biết mặt mũi cái tập tin thế nào đâu mà hỏi về nó. Và tôi cũng viết rõ trong bài #12 là tôi không gặp lỗi, và viết rõ cả cách test. Tại sao chủ thớt tới tận bài #13 vẫn không giật mình, không thử chạy cái được tung lên GPE?
 
Upvote 0
Bạn nói dối, tôi không tin bạn.
...
Thớt cẩu thả, trả lời đại cho nên thành ra nói dối (nói chuyện không chắc mà cứ cãi là chắc thì coi như nói dối). Có lẽ do không quen nói chuyện kỹ thuật (cần chắc chắn), chứ thực tâm không muốn vậy.

...
Kết luận: xóa dấu cách thừa và các dấu cách cứng với mã 160.
Mã:
Function RemoveSpaceChar(ByVal Str As String)
    RemoveSpaceChar = Replace(Application.Trim(Str), Chr(160), "")
End Function
Bác phải đổi 160 thành 32 trước khi trim chứ. Nếu bản chính có dùng 160 ở giữa thì từ không bị dính lại.

Vâng e, cảm ơn, em cũng đã tham khảo tư vấn của bác batman1 về việc dùng Chr(160) và giải quyết được vấn đề rồi ạ. Em cảm ơn tất cả các anh/chị đã chỉ dạy. Em xin kết thúc cuộc thảo luận ở đây ạ.
Bạn còn non tay lắm. Chưa hoàn toàn làm chủ được luật dấu cách thì chưa kết thúc được ở đây đâu.
 
Upvote 0
Bạn còn non tay lắm. Chưa hoàn toàn làm chủ được luật dấu cách thì chưa kết thúc được ở đây đâu.
Bác cho em hỏi "Luật dấu cách" thì còn có thêm những kiến thức nào nữa ạ, mong bác chia sẻ thêm ạ.
Bài đã được tự động gộp:

À đúng
Mã:
Function RemoveSpaceChar(ByVal Str As String)
    RemoveSpaceChar = Application.Trim(Replace(Str, Chr(160), Chr(32)))
End Function
Vâng, chỗ này thì em hiểu nên đã chủ động sửa lại như này rồi ạ.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom