Pa Callender Posted August 6, 2006 Share Posted August 6, 2006 (edited) Could someone please identify why this script keeps throwing up this error: C:\Documents and Settings\pmcallender\My Documents\My AutoIt Scripts\AutoEd (not au3)\tmp.au3 (31) : ==> "For" statement has no matching "Next" statement.: Func alphavig($offset) Here's the script: expandcollapse popup#NoTrayIcon #include <Array.au3> Dim $VigCipher[26] For $i = 0 to 25 $VigCipher[$i] = alphavig($i) $askKword = StringUpper(InputBox("Keyword","Enter the keyword")) $askString = StringUpper(InputBox("String","Enter the string")) Dim $tempKword[Len($askKword)], $tempString[Len($askString)], $resString[Len($askString)] For $num = 1 to Len($askKword) $tempKword[$num-1] = StringMid($askKword,$i,1) Next For $numi = 1 to Len($askString) $tempString[$num-1] = StringMid($askString,$i,1) Next Dim $kara = Len($askKword), $obili = 0 For $numit = 0 to Len($askString)-1 If StringIsUpper($tempString[$numit]) = 1 Then $tempchar = alphanum($tempString[$numit]) $tempytwo = alphanum($tempKword[$obili]) $resString[$numit] = $VigCipher[$tempchar][$tempytwo] $obili = $obili + 1 If $obili = Len($askKword)-1 Then $obili = 0 EndIf Else $resString[$numit] = $tempString[$numit] EndIf Next MsgBox(0,"Completed!",_ArrayToString($resString,"")) Exit Func alphavig($offset) Dim $vig[26], $res[26] $vig[0] = "A" $vig[1] = "B" $vig[2] = "C" $vig[3] = "D" $vig[4] = "E" $vig[5] = "F" $vig[6] = "G" $vig[7] = "H" $vig[8] = "I" $vig[9] = "J" $vig[10] = "K" $vig[11] = "L" $vig[12] = "M" $vig[13] = "N" $vig[14] = "O" $vig[15] = "P" $vig[16] = "Q" $vig[17] = "R" $vig[18] = "S" $vig[19] = "T" $vig[20] = "U" $vig[21] = "V" $vig[22] = "W" $vig[23] = "X" $vig[24] = "Y" $vig[25] = "Z" For $i = 0 to 25 $res[$i] = $vig[$i+$offset] Next Return $res EndFunc Func Alphanum($in) Dim $out $mid = alphavig(0) If IsString($in) Then $out = _ArraySearch($mid,$in) + 1 Else If IsNumber($in) Then $out = $mid[$in-1] Else SetError(1) EndIf Return $out EndFunc Apologies for the dodgy var names - they just came off the top of my head. Thanks in advance EDIT: Removed mis-interpreted UBB Font tags Edited August 6, 2006 by Pa Callender [size="4"]YOU SHALL NOT PARSE!![/size] Link to comment Share on other sites More sharing options...
MHz Posted August 6, 2006 Share Posted August 6, 2006 Because you are missing a Next keyword. Correctly indented code shows the fault.After a Tidy of script shows errorsexpandcollapse popup#NoTrayIcon #include <Array.au3> Dim $VigCipher[26] For $i = 0 To 25 $VigCipher[$i] = alphavig($i) $askKword = StringUpper(InputBox("Keyword", "Enter the keyword")) $askString = StringUpper(InputBox("String", "Enter the string")) Dim $tempKword[Len ($askKword) ], $tempString[Len ($askString) ], $resString[Len ($askString) ] For $num = 1 To Len ($askKword) $tempKword[$num - 1] = StringMid($askKword, $i, 1) Next For $numi = 1 To Len ($askString) $tempString[$num - 1] = StringMid($askString, $i, 1) Next Dim $kara = Len ($askKword), $obili = 0 For $numit = 0 To Len ($askString) - 1 If StringIsUpper($tempString[$numit]) = 1 Then $tempchar = Alphanum($tempString[$numit]) $tempytwo = Alphanum($tempKword[$obili]) $resString[$numit] = $VigCipher[$tempchar][$tempytwo] $obili = $obili + 1 If $obili = Len ($askKword) - 1 Then $obili = 0 EndIf Else $resString[$numit] = $tempString[$numit] EndIf Next MsgBox(0, "Completed!", _ArrayToString($resString, "")) Exit ;### Tidy Error: Level error -> "For" Not closed before Func statement. ;### Tidy Error: Level error -> "Func" cannot be inside any IF/Do/While/For/Case/Func statement. Func alphavig($offset) Dim $vig[26], $res[26] $vig[0] = "A" $vig[1] = "B" $vig[2] = "C" $vig[3] = "D" $vig[4] = "E" $vig[5] = "F" $vig[6] = "G" $vig[7] = "H" $vig[8] = "I" $vig[9] = "J" $vig[10] = "K" $vig[11] = "L" $vig[12] = "M" $vig[13] = "N" $vig[14] = "O" $vig[15] = "P" $vig[16] = "Q" $vig[17] = "R" $vig[18] = "S" $vig[19] = "T" $vig[20] = "U" $vig[21] = "V" $vig[22] = "W" $vig[23] = "X" $vig[24] = "Y" $vig[25] = "Z" For $i = 0 To 25 $res[$i] = $vig[$i + $offset] Next Return $res EndFunc ;### Tidy Error: Level error -> "For" Not closed before Func statement. ;### Tidy Error: Level error -> "Func" cannot be inside any IF/Do/While/For/Case/Func statement. Func Alphanum($in) Dim $out $mid = alphavig(0) If IsString($in) Then $out = _ArraySearch($mid, $in) + 1 Else If IsNumber($in) Then $out = $mid[$in - 1] Else SetError(1) EndIf Return $out EndFunc Exit ;### Tidy Error: Level error -> "For" Not closed before Func statement. ;### Tidy Error: Level error -> "Func" cannot be inside any IF/Do/While/For/Case/Func statement. Func OnAutoItStart() If WinExists(@ScriptName & '_Interpreter') Then Exit AutoItWinSetTitle(@ScriptName & '_Interpreter') EndFuncFixing the Next where it should go could clear up the errors. Link to comment Share on other sites More sharing options...
Pa Callender Posted August 6, 2006 Author Share Posted August 6, 2006 (edited) Thank you very much! I didn't indent the code correctly because I don't use SciTe4AutoIt3, so I don't have tidy. But thanks to you and your Tidyed version of my code, I realised where the mistake was. Thanyou very very much! Edit: Also realised I'm still in the times when I thought KiXtart was god: Len($askString)oÝ÷ Ûú®¢×¥u·ºÚ"µÍÝ[Ó[ ÌÍØÚÔÝ[Ê Edited August 6, 2006 by Pa Callender [size="4"]YOU SHALL NOT PARSE!![/size] Link to comment Share on other sites More sharing options...
MHz Posted August 6, 2006 Share Posted August 6, 2006 Tidy can be used by other editors as an addon. You can download it from here. It just takes a path to the script as a parameter so is easy to setup. 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