Categories: AutoIT

Mã nguồn tiện ích chuyển tiếng Việt có dấu sang không dấu Autoit

Chức năng này giống chức năng loại bỏ dấu trong Unikey tuy nhiên tiện lợi hơn vì chỉ việc copy vào clipboard sau đó nháy chuột phải vào icon chương trình dưới system tray chọn convert là xong.

Các bạn có thể cải tiến để tiện ích hoạt động tốt hơn. Sau đây là toàn bộ code

[au3]
#include <GuiConstantsEx.au3>
#include <ClipBoard.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Opt(‘MustDeclareVars’, 0)
Opt("TrayMenuMode",1)
_Main()
Func _Main()
$convertitem = TrayCreateItem("Convert")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $convertitem
ConvertClipboard()
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
EndFunc

Func ConvertClipboard()
$s_Text=_ClipBoard_GetData ($CF_UNICODETEXT)
$s_Text=cv2urltitle($s_Text)
$s_Text=StringLower($s_Text)
_ClipBoard_SetData($s_Text)
MsgBox(0,"Thành công","Chuỗi nhận được: " & $s_Text)
EndFunc

Func cv2urltitle($text)
$uni1 = StringSplit("á,à,ạ,ả,ã,â,ấ,ầ,ậ,ẩ,ẫ,ă,ắ,ằ,ặ,ẳ",",",2)
For $i=0 to Ubound($uni1)-1
$text = StringReplace($text,$uni1[$i],"a");
Next

$uni2 = StringSplit("Á,À,Ạ,Ả,Ã,Â,Ấ,Ầ,Ậ,Ẩ,Ẫ,Ă,Ắ,Ằ,Ặ,Ẳ",",",2);
For $i=0 to Ubound($uni2)-1
$text = StringReplace($text,$uni2[$i],"A");
Next

$uni3 = StringSplit("é,è,ẹ,ẻ,ẽ,ê,ế,ề,ệ,ể,ễ",",",2);
For $i=0 to Ubound($uni3)-1
$text = StringReplace($text,$uni3[$i],"e");
Next

$uni4 = StringSplit("É,È,Ẹ,Ẻ,Ẽ,Ê,Ế,Ề,Ệ,Ể,Ễ",",",2);
For $i=0 to Ubound($uni4)-1
$text = StringReplace($text,$uni4[$i],"E");
Next

$uni5 = StringSplit("ó,ò,ọ,ỏ,õ,ô,ố,ồ,ộ,ổ,ỗ,ơ,ớ,ờ,ợ,ở",",",2);
For $i=0 to Ubound($uni5)-1
$text = StringReplace($text,$uni5[$i],"o");
Next

$uni6 = StringSplit("Ó,Ò,Ọ,Ỏ,Õ,Ô,Ố,Ồ,Ộ,Ổ,Ỗ,Ơ,Ớ,Ờ,Ợ,Ở",",",2);
For $i=0 to Ubound($uni6)-1
$text = StringReplace($text,$uni6[$i],"O");
Next

$uni7 = StringSplit("ú,ù,ụ,ủ,ũ,ư,ứ,ừ,ự,ử,ữ",",",2);
For $i=0 to Ubound($uni7)-1
$text = StringReplace($text,$uni7[$i],"u");
Next

$uni8 = StringSplit("Ú,Ù,Ụ,Ủ,Ũ,Ư,Ứ,Ừ,Ự,Ử,Ữ",",",2);
For $i=0 to Ubound($uni8)-1
$text = StringReplace($text,$uni8[$i],"U");
Next

$uni9 = StringSplit("í,ì,ị,ỉ,ĩ",",",2);
For $i=0 to Ubound($uni9)-1
$text = StringReplace($text,$uni9[$i],"i");
Next

$uni10 = StringSplit("Í,Ì,Ị,Ỉ,Ĩ",",",2);
For $i=0 to Ubound($uni10)-1
$text = StringReplace($text,$uni10[$i],"I");
Next

$text = StringReplace($text,"đ","d");
$text = StringReplace($text,"Đ","D")
$uni13 = StringSplit("ý,ỳ,ỵ,ỷ,ỹ",",",2);
For $i=0 to Ubound($uni13)-1
$text = StringReplace($text,$uni13[$i],"y");
Next

$uni14 = StringSplit("Ý,Ỳ,Ỵ,Ỷ,Ỹ",",",2);
For $i=0 to Ubound($uni14)-1
$text = StringReplace($text,$uni14[$i],"Y");
Next
Dim $aArray[26] = [".","!","~","@","#","$","%","^","&","*","(",")","-","=","+","|","\","/","?",",","’","<",">",":","’"," "]
For $i=0 to UBound($aArray)-1
$text = StringReplace($text,$aArray[$i],"-");
Next
return $text;
EndFunc
[/au3]

admin

Đơn giản là mình là người đam mê công nghệ, thích học hỏi và chia sẻ. Mình mong muốn nhận được phản hồi của các bạn khi xem bất kỳ bài viết nào trên blog của mình. Mỗi ý kiến đóng góp, mỗi sự sẻ chia và góp ý của các bạn là điều mình cần nhất để blog hoàn thiện hơn. Điều đó thật sự quan trọng đối với mình. Xin chân thành cảm ơn!

Share
Published by
admin

Recent Posts

Thông báo tạm ngừng hoạt động

Lâu nay do một số vấn đề cá nhân nên admin không còn cập nhật…

1 năm ago

Adobe cho tải miễn phí bộ ứng dụng CS2

Năm 2013 đã đến, và Adobe quyết định tung ra một chương trình khuyến mãi…

6 năm ago

Link down đế chế 1 chuẩn Age Of Empires 1 Setup

Age Of Empires 1 Setup by Microsoft Studios Published October 15, 1997 Usage CC0 1.0…

7 năm ago

0191000312218 HA THU TUYEN scam lừa đảo

Haiza!.... Là 1 người cẩn thận có kinh nghiệm giao dịch trực tuyến thế mà…

10 năm ago

Mở file FLV, MP4 trong VirtualDub

Không ai phủ nhận thế mạnh của VirtualDub trong việc xử lý các tập tin…

10 năm ago

6 lời khuyên nên đọc

VỀ KIẾM TIỀN: đừng bao giờ phụ thuộc vào một nguồn thu nhập duy nhất.…

11 năm ago