tách dữ liệu!
Moderator: tungblt
tách dữ liệu!
Các bác chỉ mình với! mình có string sau: " 12@caulacbovb$ " mình muốn tách số 12 hiển thị trên label1 và caulacbovb hiển thị trên label2... tks mọi người!
- nhochoclaptrinh
- Thành viên danh dự
- Posts: 517
- Joined: Sat 28/05/2011 12:10 pm
- Has thanked: 15 times
- Been thanked: 83 times
Re: tách dữ liệu!
- Dim s As String
- Dim num As String
- Dim text As String
- s = "12@caulacbovb$"
- num = Left$(s, InStr(1, s, "@") - 1)
- text = Replace(Right$(s, Len(s) - InStr(1, s, "@")), "$", "")
- MsgBox num
- MsgBox text
Sad eyes never lie

- gtdcomputer
- Thành viên danh dự
- Posts: 1296
- Joined: Fri 18/07/2008 12:08 pm
- Location: Kiên Giang
- Has thanked: 8 times
- Been thanked: 116 times
- Contact:
Re: tách dữ liệu!
NẾu độ dài chuỗi là cố định thì có thể làm thế này:
- Dim s1 As String, s2 As String, b() As String
- s1 = Mid("12@caulacbovb$",0,2) 'Tức là lấy 2 ký tự bắt đầu từ ký tự đầu tiên
- s1 = Mid("12@caulacbovb$", 0, InStr("12@caulacbovb$","@")) 'Tức là cắt chuỗi từ vị trí đầu tiên, đến vị trí chứa ký tự @
- s2 = Mid("12@caulacbovb$", 3) 'Tức là cắt từ ký tự thứ 3, đến hết chuỗi
- s2 = Mid("12@caulacbovb$", InStr("12@caulacbovb$","@")+1) 'Tức là cắt chuỗi từ ký tự @ đến hết chuỗi
- b = Split("12@caulacbovb$","@") 'Tức là tách chuỗi ra thành một mãng với ký tự phân cách là @
- s1 = b(0) 'Phần đầu là 12 trước ký tự phân cách
- s2 = b(1) 'Phần sau là caulacbovb$ sau ký tự phân cách
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật
Re: tách dữ liệu!
tks các bác. các bác có thể chỉ mình viết bằng dòng lệnh for không? mình muốn tách dữ liệu chưa biết số lượng, vd: (một string được ngăn cách như sau bới %...@ và $...#) "%...string1( chưa biết số lượng) @....$string2(chưa biết số lượng) # ". ( ký tự @,#,%,$ là các bit start và bit stop). dùng for để tách ra và hiển thị lên 2 label