• 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

Câu lệnh Replace số trong chuỗi với 1 dòng

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Tư 02/04/2008 8:33 am

Em có một chuỗi sau:
chuỗi = 1ca6u0la5c0bo650v7b89

có cách nào tách bỏ số từ chuỗi đó với 1 câu lệnh replace

Mã: Chọn hết

  1. chuỗi mới = replace(chuỗi, [b]số[/b], "")


phải đặc số thành biến như thế nào để chỉ xài 1 câu lệnh duy nhất :-/


tôi thương chỉ mình em, em biết không ? ;;) :-*

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi anhtuyenbk » T.Tư 02/04/2008 8:58 am

Không thể xài 1 câu duy nhất được.
Ít nhất phải 4 câu

Mã: Chọn hết

  1. Dim i as integer
  2. For i=0 to 9
  3.     chuỗi mới = replace(chuỗi, i, "")
  4. Next
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Tư 02/04/2008 10:28 am

cách này em biết rồi, cách này code 4 dòng nhưng bắt máy chạy 10 lần, không biết còn cách nào khác không nếu như em chỉ giết 1 vài ký tự thôi, minh họa là ví dụ bên dưới

Mã: Chọn hết

  1. Dim KýTựCầnBỏ as string, ChuỗiGốc as string, i as integer, j as integer
  2. KýTựCầnBỏ = "a,c,d,1,2,3,4"
  3. ChuỗiGốc = "Ca6ula5cbo65VB32"
  4.  
  5. j = lenght(replace(KýTựCầnBỏ,",",""))
  6.  
  7. Câu Lệnh Tách ra KýTựCầnBỏ thành từng Biến để giết nó
  8.  
  9. For i = 1 to j
  10. Replace = (Chuổi, KýTựCầnBỏ, "")
  11. Next i
  12. End Sub


:-/ :-/ :-/ :-/ :-/
tôi thương chỉ mình em, em biết không ? ;;) :-*

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4762
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: 515 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi truongphu » T.Tư 02/04/2008 10:31 am

tôi cũng nghỉ thế nhưng trong khi TrungDung1997 chưa có ý kiến, tìm tòi thêm chút nữa được chăng ?
o0o--truongphu--o0o

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

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi anhtuyenbk » T.Tư 02/04/2008 11:37 am

OK, còn một cách khác nữa máy chạy ít vòng lặp hơn. Đây là một hàm xây dựng sẵn luôn :D :D

Mã: Chọn hết

  1. Public Function DeleteNumberFromChuoi(ByVal Chuoi As String) As String
  2.     Dim i As Integer, Ketqua As String: Ketqua = ""
  3.     For i = 1 To Len(Chuoi)
  4.         If IsNumeric(Mid(Chuoi, i, 1)) = False Then Ketqua = Ketqua & Mid(Chuoi, i, 1)
  5.     Next
  6.     DeleteNumberFromChuoi = Ketqua
  7. End Function

Cách này bạn thấy dài hơn, nhưng bào đảm tốc độ nhanh hơn nhiều.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

TrungDung1977
Thành viên chính thức
Thành viên chính thức
Bài viết: 44
Ngày tham gia: T.Ba 15/08/2006 11:19 pm
Đến từ: TPHCM

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi TrungDung1977 » T.Tư 02/04/2008 1:10 pm

@truongphu: sao lại lôi tui vào đây? Bạn đánh giá cao mình thì mình cảm ơn, chứ kéo vào chung thì ép người quá :D

Với bài này thì mình không thể có đột phá gì lớn :)

Đoạn code sau đáp ứng vừa đủ theo yêu cầu cua thuongem

Mã: Chọn hết

  1. Dim ChuoiCanBo$, i%, ChuoiGoc$
  2. ChuoiCanBo = "afs345"    'muốn bỏ kí tự gì thì gõ vào đây
  3. ChuoiGoc = "......."
  4. For i = 1 To Len(ChuoiCanBo)
  5.     ChuoiGoc = Replace(ChuoiGoc, Mid(ChuoiCanBo, i, 1), "")
  6. Next

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Tư 02/04/2008 9:24 pm

à đúng rồi, cái đó đó, cám ơn các anh :D
tôi thương chỉ mình em, em biết không ? ;;) :-*

hieucoi
Bài viết: 4
Ngày tham gia: T.Ba 01/04/2008 12:05 am

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi hieucoi » T.Năm 03/04/2008 12:34 am

theo tui thì làm theo cách của anh tuyển là hay nhất....cứ kỉm tra coi có phai số ko.phải thì bỏ đi thui.mà cái này có sẵn bài mẫu trong đĩa học VB rùi mừ.xem thử 1 bài nha
Tập tin đính kèm
demso.rar
(849 Byte) Đã tải 264 lần

Sá chi một kiếp phù du nhỉ
Mà chẳng trao nhau trọn chữ tình

trinick13
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Sáu 15/06/2007 7:25 pm
Đến từ: thành-phố-mà-ai-cũng-bít-là-trinick-sống-ở-đó
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi trinick13 » T.Năm 03/04/2008 12:46 am

Còn đây là cách lấy số trong chuỗi :

Mã: Chọn hết

  1. Msgbox Val("Chỉ lấy được số 1 2 3 4 5 6 7 thôi, coi đi !")
I love Sparrow ... :D :D

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Năm 03/04/2008 12:27 pm

hieucoi đã viết:theo tui thì làm theo cách của anh tuyển là hay nhất....cứ kỉm tra coi có phai số ko.phải thì bỏ đi thui.mà cái này có sẵn bài mẫu trong đĩa học VB rùi mừ.xem thử 1 bài nha


áp vô xài đúng hoàn cảnh thì cách nào cũng hay hết bạn ơi :D
Nhưng mà tui đâu có đĩa đó đâu, bạn rãnh thì úp lên share cho tui đi, đc hem :D
cám ơn các anh... ;)
tôi thương chỉ mình em, em biết không ? ;;) :-*

hieucoi
Bài viết: 4
Ngày tham gia: T.Ba 01/04/2008 12:05 am

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi hieucoi » T.Sáu 04/04/2008 4:15 pm

oài!nóa nhiu như thế up khi nào mới xong... :(( .24K 1 phát...đầu tư đi...tuy hơi bị đứt ruôt đóa.mà như cái chương trình kia thì tách chuỗi nào chả đc :) .nhưng mà vb nhìu vấn đề thật.học mãi mà vẫn chưa làm đc bài nào nên hồn cả..nản

Sá chi một kiếp phù du nhỉ
Mà chẳng trao nhau trọn chữ tình

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Bảy 05/04/2008 7:41 am

anhtuyenbk đã viết:Không thể xài 1 câu duy nhất được.
Ít nhất phải 4 câu

Mã: Chọn hết

  1. Dim i as integer
  2. For i=0 to 9
  3.     chuỗi mới = replace(chuỗi, i, "")
  4. Next


anhtuyenbk thêm 1 dòng nữa mới chạy được

Mã: Chọn hết

  1. Dim i as integer
  2. For i=0 to 9
  3.     chuỗi = replace(chuỗi, i, "")
  4. Next
  5. chuỗi mới = chuỗi           ' Thêm Chỗ này
  6.  


Em hỏi thêm, chỗ này bác TrungDung1977 ghi $% vậy nó có ý nghĩa gì
TrungDung1977 đã viết:

Mã: Chọn hết

  1. Dim ChuoiCanBo$, i%, ChuoiGoc$
  2. ChuoiCanBo = "afs345"    'muốn bỏ kí tự gì thì gõ vào đây
  3. ChuoiGoc = "......."
  4. For i = 1 To Len(ChuoiCanBo)
  5.     ChuoiGoc = Replace(ChuoiGoc, Mid(ChuoiCanBo, i, 1), "")
  6. Next


Next Next i khác biệt chỗ nào
tôi thương chỉ mình em, em biết không ? ;;) :-*

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi anhtuyenbk » T.Bảy 05/04/2008 9:06 am

Mã: Chọn hết

  1. NextNext i khác biệt chỗ nào

Chẳng khác biệt gì, cái này tùy vào người siêng hay ko thôi=))
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

TrungDung1977
Thành viên chính thức
Thành viên chính thức
Bài viết: 44
Ngày tham gia: T.Ba 15/08/2006 11:19 pm
Đến từ: TPHCM

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi TrungDung1977 » T.Bảy 05/04/2008 1:54 pm

thuongem đã viết:Em hỏi thêm, chỗ này bác TrungDung1977 ghi $ và % vậy nó có ý nghĩa gì

Đó là kiểu khai báo làm biếng, bạn không nên học
Chỉ xem qua cho biết:
Dim i% = Dim i as Interger
Dim str$ = Dim str as String
Dim a& = Dim a as long
Dim b! = dim b as single
Dim c# = Dim c as Double

Hình đại diện của người dùng
thuongem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 70
Ngày tham gia: T.Sáu 28/03/2008 1:31 am
Đến từ: Vĩnh Long
Has thanked: 2 time
Liên hệ:

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi thuongem » T.Bảy 05/04/2008 2:35 pm

Cám ơn bác TrungDung1977, giờ em đã hiểu mấy cái đó rồi, để em note lại :))
tôi thương chỉ mình em, em biết không ? ;;) :-*

anpro2110
Bài viết: 2
Ngày tham gia: CN 21/12/2008 1:08 am
Đến từ: Hà Nội

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi anpro2110 » CN 21/12/2008 1:16 am

Các bác làm ơn cho em hỏi, sau khi ta Replace để loại bỏ 1 số ký tự trong 1 chuỗi xong, sau đó làm thế nào để có thể gán lại những ký tự đã loại bỏ vào chuỗi đó theo đúng vị trí trước khi Replace.
Thanks!

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4762
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: 515 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi truongphu » CN 21/12/2008 7:58 am

Cho một biến tạm nhớ chuỗi trước khi xử lý.
Khi cần, gọi biến tạm nầy ra
o0o--truongphu--o0o

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

anpro2110
Bài viết: 2
Ngày tham gia: CN 21/12/2008 1:08 am
Đến từ: Hà Nội

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi anpro2110 » CN 21/12/2008 10:33 am

Bạn có thể demo 1 đoạn code ví dụ nho nhỏ được không, để mình có thể hiểu rõ hơn.
Thank you in advance!

Uzumaki Naruto
Thành viên danh dự
Thành viên danh dự
Bài viết: 839
Ngày tham gia: T.Hai 30/04/2007 9:55 pm
Đến từ: Sài Gòn
Has thanked: 7 time
Been thanked: 83 time

Re: Câu lệnh Replace số trong chuỗi với 1 dòng

Gửi bàigửi bởi Uzumaki Naruto » T.Hai 22/12/2008 9:10 pm

Thì giả sử bạn có chuỗi s="1ca6u0la5c0bo650v7b89", trước khi bạn Replace thì gán chuỗi đó vào một biến tạm vd: tmp as String. Rồi gán tmp=s . Sau đó Replace s . Khi cần khôi phục thì s=tmp
Cause you're my special thing
I'm flying without wings


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đ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.10 khách