• Thứ Tư, 18/03/2009 10:15 (GMT+7)

    Chuyển đổi dữ liệu kiểu chuỗi trong ASP

    Câu hỏi :
    Lập trình ASP sử dụng VBScript, xin hỏi làm sao tìm từ theo các dạng khác nhau để thay thế, ví dụ như viet nam, Viet Nam, VIETNAM?
      

    Trả lời :

    Cũng giống như lập trình ứng dụng bằng ngôn ngữ VB, khi lập trình bằng ngôn ngữ VBScript (tập con của VB) trong các trang ASP, bạn có thể dùng hàm định sẵn InStr() để tìm kiếm các chuỗi văn bản theo ngữ nghĩa (thay vì theo mã nhị phân của ký tự). Tham số thứ 4 trong lệnh gọi hàm InStr() sẽ qui định tiêu chuẩn so sánh ký tự dựa trên mã nhị phân hay dựa trên ngữ nghĩa của ký tự. Nếu hàm hoạt động ở chế độ ngữ nghĩa, thì ký tự chữ hoa và chữ thường là giống nhau, nhờ đó bạn có thể tìm được tất cả các chuỗi xác định cho dù được viết bằng chữ hoa hay chữ thường. Đoạn code VBScript sau là hàm tìm và thay thế chuỗi theo yêu cầu của bạn:
     
    'hàm tìm và thay thế chuỗi theo ngữ nghĩa
     'Tham số Sstr chứa chuỗi gốc,
     'SWord chứa chuỗi cần tìm, DWord chứa chuỗi cần thay thế
     Function FindReplace(Sstr, SWord, DWord)
     'khai báo biến chứa chuỗi kết quả
     Dim Dstr
     'khai báo biến chỉ số ký tự
     Dim pos
     Dstr = ""
     Do
     'tìm vị trí có chuỗi SWord
     pos = InStr(1, Sstr, SWord, vbTextCompare)
     If pos <> 0 Then 'nếu có
     Dstr = Dstr & left(Sstr, pos - 1) & DWord
     Sstr = Mid(Sstr, pos + Len(SWord))
     Else 'nếu không có
     Dstr = Dstr & Sstr
     Exit Do
     End If
     Loop While pos <> 0
     'trả về chuỗi kết quả
     FindReplace = Dstr
     End Function
     Nếu bạn viết lệnh gọi hàm FindReplace sau đây:
     Dstr = FindReplace("Nuoc Viet Nam co ten la viet nam, VIET NAM, ViEt NaM,...", "Viet Nam", "Trung Quoc")
     thì chuỗi kết quả Dstr sẽ là:
     "Nuoc Trung Quoc co ten la Trung Quoc, Trung Quoc, Trung Quoc,..."

    Chuyên mục: Lập trình