-
Hàm thay thế chuỗi trong Access
Noname > 23-08-10, 04:02 PM
Đôi khi bạn có nhu cầu thay 1 chuỗi này bằng 1 chuỗi khác. Khi đó bạn có thể dùng hàm Replace. Cú pháp như sau:
Mã:Replace ( string1, find, replacement, [start, [count, [compare]]] )
Ví dụ:
Mã:Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"
Nguồn: techonthenet -
RE: Hàm thay thế chuỗi trong Access
yamakashi2003 > 12-08-20, 12:29 PM
(23-08-10, 04:02 PM)Noname Đã viết: Đôi khi bạn có nhu cầu thay 1 chuỗi này bằng 1 chuỗi khác. Khi đó bạn có thể dùng hàm Replace. Cú pháp như sau:
Bác ơi thường thi hàm này sẽ thay thế bắt đầu từ trái sang phải, nếu em muốn đổi thay thế từ phải sang trái được không ạ
Mã:Replace ( string1, find, replacement, [start, [count, [compare]]] )
Ví dụ:
Mã:Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"
Nguồn: techonthenet
ví dụ:
Replace("alphabeta", "a", "e", 1, 1) would return "alphabete"
Em muốn xin hướng dẫn với dạng tổng quát,tham số count=1, mà không biết chữ cần thay thế xuất hiện mấy lần trong chuỗi ạ. -
RE: Hàm thay thế chuỗi trong Access
ongke0711 > 12-08-20, 11:04 PM
(12-08-20, 12:29 PM)yamakashi2003 Đã viết: Bác ơi thường thi hàm này sẽ thay thế bắt đầu từ trái sang phải, nếu em muốn đổi thay thế từ phải sang trái được không ạ
ví dụ:
Replace("alphabeta", "a", "e", 1, 1) would return "alphabete"
Em muốn xin hướng dẫn với dạng tổng quát,tham số count=1, mà không biết chữ cần thay thế xuất hiện mấy lần trong chuỗi ạ.
Hàm Replace không đổi hướng dò tìm từ bên phải được nhé.
Bạn muốn thay thế chuỗi phía bên phải thì phối hợp các hàm xử lý chuỗi với nhau để ra kết quả mong muốn thôi.
Ví dụ:
- Dùng hàm InstrRev("alphabeta", "a") để xác định vị trí chữ "a" phía bên phải = 9.
- Dùng hàm Left (), Mid() để cắt chuỗi đến vị trí chữ "a" thôi.
- Nối chuỗi cắt với chữ thay thế mới.
Tuỳ bài toán thực tế mà có cách xử lý riêng cho nó.
Còn có bác nào có thời gian thì viết cái hàm mới như ReplaceRev() để thực hiện yêu cầu trên. -
RE: Hàm thay thế chuỗi trong Access
Noname > 13-08-20, 10:24 AM
(12-08-20, 12:29 PM)yamakashi2003 Đã viết:
(23-08-10, 04:02 PM)Noname Đã viết: Đôi khi bạn có nhu cầu thay 1 chuỗi này bằng 1 chuỗi khác. Khi đó bạn có thể dùng hàm Replace. Cú pháp như sau:
Bác ơi thường thi hàm này sẽ thay thế bắt đầu từ trái sang phải, nếu em muốn đổi thay thế từ phải sang trái được không ạ
Mã:Replace ( string1, find, replacement, [start, [count, [compare]]] )
Ví dụ:
Mã:Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"
Nguồn: techonthenet
ví dụ:
Replace("alphabeta", "a", "e", 1, 1) would return "alphabete"
Em muốn xin hướng dẫn với dạng tổng quát,tham số count=1, mà không biết chữ cần thay thế xuất hiện mấy lần trong chuỗi ạ.
Như ông kẹ nói, bạn dùng kết hợp hàm khác mới mang lại hiệu quả.
Có 1 cách hơi củ chuối, nhưng bạn có thể áp dụng với tất cả các nhu cầu làm việc với chuỗi từ bên phải qua. Đó là dùng hàm: StrReverse(chuỗi)
Ví dụ: StrReverse(alphabeta)=> kết quả: atebahpla
Sau khi xử lý, ta lại: StrReverse lần nữa.
Áp dụng tình huống trên của bạn, phát biểu thế này sẽ cho kết quả mong muốn"
StrReverse(Replace(StrReverse("alphabeta");"a";"e";1;1)) => kết quả: alphabete -
RE: Hàm thay thế chuỗi trong Access
ongke0711 > 13-08-20, 11:41 AM
Giờ tôi mới biết tới cái hàm StrReverse() -
RE: Hàm thay thế chuỗi trong Access
thuyyeu99 > 13-08-20, 06:50 PM
Chuỗi ít thì được chuỗi dài là lâu lắm -
RE: Hàm thay thế chuỗi trong Access
yamakashi2003 > 14-08-20, 12:08 PM