bairacdn2005 Posted December 13, 2007 Share Posted December 13, 2007 (edited) I have always encounter this message when trying to test my tool with a long string(It does some string translation)Here's my script ( the component I reckon where the error comes from)expandcollapse popup;This function do the convert to Normal---------------------------------- Func ConverttoNormal ($Inputtext) $Inputtext = GUICtrlRead ($Input) $StringLen = StringLen ($Inputtext) ;Break the text into one single char $ArrayofChar = StringSplit ($Inputtext, "") ;Convert chars in the array made of splitted text $Outputtext = "" For $i = 1 to $StringLen Select Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "\" And $ArrayofChar[$i+2] = "[" $ArrayofChar[$i] = "n" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+3 Case $ArrayofChar[$i] = "/" And $ArrayofChar[$i+1] = "v" And $ArrayofChar[$i+2] = "\" $ArrayofChar[$i] = "m" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+3 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "<" $ArrayofChar[$i] = "k" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "_" $ArrayofChar[$i] = "l" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = ")" $ArrayofChar[$i] = "d" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "º" $ArrayofChar[$i] = "p" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "" And $ArrayofChar[$i+1] = "|" $ArrayofChar[$i] = "h" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "v" And $ArrayofChar[$i+1] = "V" $ArrayofChar[$i] = "w" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "C" And $ArrayofChar[$i+1] = "l" $ArrayofChar[$i] = "a" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "(" And $ArrayofChar[$i+1] = "¬" $ArrayofChar[$i] = "g" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "1" And $ArrayofChar[$i+1] = "2" And ($ArrayofChar[$i-1] = " " Or $ArrayofChar[$i-1] = "t") $ArrayofChar[$i] = "r" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "F" And $ArrayofChar[$i+1] = "_" $ArrayofChar[$i] = "e" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "3" $ArrayofChar[$i] = "b" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "(" $ArrayofChar[$i] = "c" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "f" $ArrayofChar[$i] = "f" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "]" $ArrayofChar[$i] = "i" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "j" $ArrayofChar[$i] = "j" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "º" $ArrayofChar[$i] = "o" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "¶" $ArrayofChar[$i] = "q" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "§" $ArrayofChar[$i] = "s" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "" $ArrayofChar[$i] = "t" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "µ" $ArrayofChar[$i] = "u" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "v" $ArrayofChar[$i] = "v" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "×" $ArrayofChar[$i] = "x" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "¥" $ArrayofChar[$i] = "y" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "z" $ArrayofChar[$i] = "z" $Outputtext = $Outputtext & $ArrayofChar[$i] Case Else $ArrayofChar[$i] = $ArrayofChar[$i] $Outputtext = $Outputtext & $ArrayofChar[$i] EndSelect Next ;This is to clean up the string (eliminate superfluous space) If StringInStr ($Outputtext, " ") <> 0 then For $j = 1 to 2 $Processing = $Outputtext $StringLen = StringLen ($Processing) $ArrayofChar = StringSplit ($Processing, "") $Outputtext = "" For $i = 1 to $StringLen If $ArrayofChar[$i] = " " And $ArrayofChar[$i+1] <> " " Then $i = $i+1 $Outputtext = $Outputtext & $ArrayofChar[$i] Else $Outputtext = $Outputtext & $ArrayofChar[$i] EndIf Next Next EndIf $ArrayofChar = 0 ;This is to display the outcome _GUICtrlEdit_SetText ($Output, $Outputtext) EndFunc ;This function do the convert to Normal---------------------------------- Func ConverttoNormal ($Inputtext) $Inputtext = GUICtrlRead ($Input) $StringLen = StringLen ($Inputtext) ;Break the text into one single char $ArrayofChar = StringSplit ($Inputtext, "") ;Convert chars in the array made of splitted text $Outputtext = "" For $i = 1 to $StringLen Select Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "\" And $ArrayofChar[$i+2] = "[" $ArrayofChar[$i] = "n" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+3 Case $ArrayofChar[$i] = "/" And $ArrayofChar[$i+1] = "v" And $ArrayofChar[$i+2] = "\" $ArrayofChar[$i] = "m" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+3 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "<" $ArrayofChar[$i] = "k" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "_" $ArrayofChar[$i] = "l" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = ")" $ArrayofChar[$i] = "d" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "]" And $ArrayofChar[$i+1] = "º" $ArrayofChar[$i] = "p" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "" And $ArrayofChar[$i+1] = "|" $ArrayofChar[$i] = "h" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "v" And $ArrayofChar[$i+1] = "V" $ArrayofChar[$i] = "w" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "C" And $ArrayofChar[$i+1] = "l" $ArrayofChar[$i] = "a" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "(" And $ArrayofChar[$i+1] = "¬" $ArrayofChar[$i] = "g" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "1" And $ArrayofChar[$i+1] = "2" And ($ArrayofChar[$i-1] = " " Or $ArrayofChar[$i-1] = "t") $ArrayofChar[$i] = "r" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "F" And $ArrayofChar[$i+1] = "_" $ArrayofChar[$i] = "e" $Outputtext = $Outputtext & $ArrayofChar[$i] $i = $i+2 Case $ArrayofChar[$i] = "3" $ArrayofChar[$i] = "b" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "(" $ArrayofChar[$i] = "c" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "f" $ArrayofChar[$i] = "f" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "]" $ArrayofChar[$i] = "i" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "j" $ArrayofChar[$i] = "j" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "º" $ArrayofChar[$i] = "o" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "¶" $ArrayofChar[$i] = "q" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "§" $ArrayofChar[$i] = "s" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "" $ArrayofChar[$i] = "t" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "µ" $ArrayofChar[$i] = "u" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "v" $ArrayofChar[$i] = "v" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "×" $ArrayofChar[$i] = "x" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "¥" $ArrayofChar[$i] = "y" $Outputtext = $Outputtext & $ArrayofChar[$i] Case $ArrayofChar[$i] = "z" $ArrayofChar[$i] = "z" $Outputtext = $Outputtext & $ArrayofChar[$i] Case Else $ArrayofChar[$i] = $ArrayofChar[$i] $Outputtext = $Outputtext & $ArrayofChar[$i] EndSelect Next ;This is to clean up the string (eliminate superfluous space) If StringInStr ($Outputtext, " ") <> 0 then For $j = 1 to 2 $Processing = $Outputtext $StringLen = StringLen ($Processing) $ArrayofChar = StringSplit ($Processing, "") $Outputtext = "" For $i = 1 to $StringLen If $ArrayofChar[$i] = " " And $ArrayofChar[$i+1] <> " " Then $i = $i+1 $Outputtext = $Outputtext & $ArrayofChar[$i] Else $Outputtext = $Outputtext & $ArrayofChar[$i] EndIf Next Next EndIf $ArrayofChar = 0 ;This is to display the outcome _GUICtrlEdit_SetText ($Output, $Outputtext) EndFunc Edited December 13, 2007 by bairacdn2005 Link to comment Share on other sites More sharing options...
Valuater Posted December 13, 2007 Share Posted December 13, 2007 (edited) try this For $i = 1 To $StringLen -1 ; lower the last count due to the [$i + 1] below If $ArrayofChar[$i] = " " And $ArrayofChar[$i + 1] <> " " Then ; $i + 1 will make the error ;$i = $i + 1 ; not needed $Outputtext = $Outputtext & $ArrayofChar[$i] ; this line is the same Else $Outputtext = $Outputtext & $ArrayofChar[$i] ; as this one ?????? EndIf Next ???? 8) Edited December 13, 2007 by Valuater Link to comment Share on other sites More sharing options...
bairacdn2005 Posted December 13, 2007 Author Share Posted December 13, 2007 For $i = 1 To $StringLen -1 ; lower the last count due to the [$i + 1] below If $ArrayofChar[$i] = " " And $ArrayofChar[$i + 1] <> " " Then ; $i + 1 will make the error ;$i = $i + 1 ; not needed $Outputtext = $Outputtext & $ArrayofChar[$i] ; this line is the same Else $Outputtext = $Outputtext & $ArrayofChar[$i] ; as this one ?????? EndIf Next ???? 8)haha just some stupid ideas and short-thinking when trying to find a solution for my clean-up modules I tried your one. The error didnt come up but the program doesnt work properly now T_T. It misses the last character while processing. Due to the last count are lower by 1 , I think I'm trying to make a text with a space between each character to another, and a 3-spaces between words thanks in advance Valuater Link to comment Share on other sites More sharing options...
therks Posted December 13, 2007 Share Posted December 13, 2007 After this line $ArrayofChar = StringSplit ($Inputtext, "") Add this line ReDim $ArrayofChar[$ArrayofChar[0] + 2] My AutoIt Stuff | My Github Link to comment Share on other sites More sharing options...
bairacdn2005 Posted December 13, 2007 Author Share Posted December 13, 2007 ;This is to clean up the string (eliminate superfluous space) If StringInStr ($Outputtext, " ") <> 0 then For $j = 1 to 2 $Processing = $Outputtext $StringLen = StringLen ($Processing) [b] $ArrayofChar = StringSplit ($Processing, "") & " "[/b] $Outputtext = "" For $i = 1 to $StringLen If $ArrayofChar[$i] = " " And $ArrayofChar[$i+1] <> " " Then $i = $i+1 $Outputtext = $Outputtext & $ArrayofChar[$i] Else $Outputtext = $Outputtext & $ArrayofChar[$i] EndIf Next Next EndIf $ArrayofChar = 0 ;This is to display the outcome _GUICtrlEdit_SetText ($Output, $Outputtext) EndFuncoÝ÷ Ø!jxu«mæèÙbèßÛ0¢¹" èÀ6®¶sc²b33c¶Òb33c¶²²æ÷BæVVFV@¢b33c´÷WGWGFWBÒb33c´÷WGWGFWBfײb33c´'&öd6%²b33c¶Ò²F2ÆæR2FR6ÖP¢VÇ6P¢b33c´÷WGWGFWBÒb33c´÷WGWGFWBfײb33c´'&öd6%²b33c¶Ò²2F2öæRóóóóóðthe $i = $i + 1 change the element in the array that doing the jobit looks stupid when "if something and else the same thing" haha oh Saunder you has the same ideal with me:Dthanks you all Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now