Đây là một Funcion VNINDEX do tôi viết ra để tạo ra tiếng Việt theo thứ tự A Á Ớ của chữ Việt
Khi cho một STRING tiếng Việt vào thì nó return ra một STRING được sắp theo thứ tự của Mỹ và theo đó cứ sắp sếp theo kiểu Mỹ.
Có thề modify lại chút đỉnh là dùng cho bất cứ loại font VN nào. Có thêm thí dụ cho font VPS
Code:
FUNC VNINDEX(VNtxt)
LOCAL N,VNsort,VNnho,VNlon
*****///// Font Unicode ////****************************
VNstr_L:=" aáàảãạăắằẳẵặâấầảãậbcdđeéèẻẽẹêếềểễệfghiíìỉĩịjklmnoóòỏõọơớờởỡợôốồổỗộpqrstuúùủũụưứừửữựvwxyýỳỷỹỵz"
VNstr_U:=" AÁÀẢÃẠĂẮẰẲẴẶÂẤẦẨẪẬBCDĐEÉÈẺẼẸÊẾỀỂỄỆFGHIÍÌỈĨỊJKLMNOÓÒỎÕọƠỚỜỞỠỢÔỐỒỔỖỘPQRSTUÚÙỦŨỤƯỨỪỬỮỰVWXYÝỲỶỸỴZ"
*****/// Font VPS //// **********************************
*****VNstr_L:=" aáàäãåæ¡¢£¤¥âÃÀÄÅÆbcdÇeéèÈëËꉊ‹ÍŒfghiíìÌïÎjklmnoóòÕõ†Ö§©ª«®ôÓÒ°‡¶pqrstuúùûÛøÜÙغ»¿vwxyšÿ›Ïœz"
*****VNstr_U:=" AÁ€‚刎ð¥Âƒ„…ÅÆBCDñEÉ×ÞþËÊ“”•ŒFGHI´µ·¸ÎJKLMNO¹¼½¾†÷žŸ¦®Ô–—˜™¶PQRSTUڨѬøЯ±»¿VWXYݲý³œZ"
***************************
VNsort:=""
FOR N=1 TO LEN(VNtxt)
VNnho:=AT(SUBSTR(VNtxt,N,1),VNstr_L)
IF VNnho=0
VNlon:=AT(SUBSTR(VNtxt,N,1),VNstr_U)
if VNlon>0
VNsort=VNsort+CHR(100+VNlon)
else
VNsort=VNsort+CHR(100+1)
endif
ELSE
VNsort=VNsort+CHR(100+VNnho)
ENDIF
NEXT N
RETURN VNsort
Tôi viết theo ngôn ngử FoxPro
Chiếu theo trên viết lại thành các ngôn ngữ khác rất dể
VNstr_L là list của tất cả các chữ cái của VN viết THƯỜNG
VNstr_U là list của tất cả các chữ cái của VN viết HOA
Function này được tôi dùng cho các chương trình tôi viết cho chử Việt có dấu. Và đã test và dùng rất tốt.
Bookmarks