#include <GuiConstantsEx.au3> #include <ButtonConstants.au3> ; Global $sCharsTags_Table_File = @ScriptDir & "\Chars&Tags Table.ini" $hGUI = GUICreate("Simple Text Colorizer", 300, 200) GUICtrlCreateLabel("Text to colorize:", 10, 5, 140) GUICtrlSetFont(-1, 10, 800) $SourceText_Edit = GUICtrlCreateEdit("Enter text to colorize", 10, 20, 280, 60) If ClipGet() <> "" Then GUICtrlSetData(-1, ClipGet()) GUICtrlCreateLabel("Colorized results:", 10, 85, 180) GUICtrlSetFont(-1, 10, 800) $Results_Edit = GUICtrlCreateEdit("", 10, 100, 280, 60) $Copy_Button = GUICtrlCreateButton("Copy", 160, 170, 60, 20) GUICtrlSetFont(-1, 8) $CopyExit_Button = GUICtrlCreateButton("Copy && Exit", 230, 170, 62, 20) GUICtrlSetFont(-1, 7.5) $Colorize_Button = GUICtrlCreateButton("Colorize", 10, 170, 60, 20, $BS_DEFPUSHBUTTON) $Exit_Button = GUICtrlCreateButton("Exit", 80, 200-30, 60, 20) GUISetState(@SW_SHOW, $hGUI) _ColorizeText_Proc(-1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $Exit_Button Exit Case $Colorize_Button $sColorized_Text = _ColorizeText_Proc(GUICtrlRead($SourceText_Edit)) GUICtrlSetData($Results_Edit, $sColorized_Text) Case $Copy_Button, $CopyExit_Button ClipPut(GUICtrlRead($Results_Edit)) If $nMsg = $CopyExit_Button Then Exit EndSwitch WEnd Func _ColorizeText_Proc($sText) If $sText = "" Then Return SetError(1, 0, 0) Local $sChars = "abcdefghijklmnpoqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщэюяьъ" Local $iChr_InStr, $iIniWrite_Error = 0 Local $sColor_Tags = _ "red|green|blue|brown|darkblue|purple|orange|gray|green|magna|indigo|blue|orange|brown|gray|purple|" & _ "green|orange|magna|purple|orange|green|indigo|blue|red|darkgreen|darkyellow|brown|green|blue|brown|" & _ "orange|green|green|purple|magna|green|blue|red|brown|orange|indigo|darkgreen|darkyellow|" & _ "blue|red|green|orange|magna|purple|orange|green|indigo|blue|red|darkgreen|gray|brown|darkyellow" Local $aColor_Tags = StringSplit($sColor_Tags, "|") Local $aText = StringSplit($sText, "") If $sText = -1 Then ;Generating Chars&Tags Table file If FileExists($sCharsTags_Table_File) Then Return 1 Local $aChars = StringSplit($sChars, "") For $i = 1 To $aChars[0] IniWrite($sCharsTags_Table_File, "Chars&Tags Table", $aChars[$i], $aColor_Tags[$i]) If @error Then Return SetError(@error, 0, 0) Next Return 1 EndIf Local $aRead_CharsTags_Table = IniReadSection($sCharsTags_Table_File, "Chars&Tags Table") If Not @error Then $sChars = "" $aColor_Tags = "" Dim $aColor_Tags[$aRead_CharsTags_Table[0][0]+1] For $i = 1 To $aRead_CharsTags_Table[0][0] $sChars &= $aRead_CharsTags_Table[$i][0] $aColor_Tags[$i] = $aRead_CharsTags_Table[$i][1] Next EndIf $sText = "" For $i = 1 To $aText[0] $iChr_InStr = StringInStr($sChars, $aText[$i]) If $iChr_InStr > 0 Then $sText &= "[color=" & $aColor_Tags[$iChr_InStr] & "]" & $aText[$i] & "[/color]" Else $sText &= $aText[$i] EndIf Next Return $sText EndFunc |