Jump to content
Sign in to follow this  
Webber2222

No "goto" so?

Recommended Posts

Webber2222

Ok... I read the FAQ and I saw that the command "goto" is not there anymore... I don't want to know why :)

But now I have a doubt (I don't think that the example on the FAQ can be applied here).

Let's say I need something like

$var = IniRead("C:\Temp\myfile.ini", "section2", "key", "0");var can be "0" or "1" or "2" or "3"

if $var=0 goto 1
if $var=1 goto 2
if $var=2 goto 3
if $var=3 goto 4

1
$var="sample1"
goto 5
2
$var="sample2"
goto 5
3
$var="sample3"
goto 5
4
$var="sample4"
5
exit

That is just an example, of course.... now... can anyone give me a clue how can I do that without the "goto(s)".

My objctive is to be able to merge different "scripts" in one... launching the "part" I want to after reading the variable from an INI file - FYI... I need to merge them 'cause they alway have the size of 173kb if seperated, and something tells me that if I merge I'll be able to have them all with a file size almos equal :mellow:

Thanks in advance

Share this post


Link to post
Share on other sites
Valuater

maybe

$var = IniRead("C:\Temp\myfile.ini", "section2", "key", "0");var can be "0" or "1" or "2" or "3"

if $var=0 Then goto1()
if $var=1 Then goto2()
if $var=2 Then goto3()
if $var=3 Then goto4()

Func goto1()
$var="sample1"
goto5()
EndFunc

Func goto2()
$var="sample2"
goto5()
EndFunc

Func goto3()
$var="sample3"
goto5()
EndFunc

Func goto4()
$var="sample4"
goto5()
EndFunc

Func goto5()
exit
EndFunc

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites
Confuzzled

Would While...WEnd or Select...Case...EndSelect do the job (refer Help file)?

(Don't forget the otherwise bit, where none of the valid clauses apply - often a gotcha that makes debugging and program flow a real pain)

Edited by Confuzzled

Share this post


Link to post
Share on other sites
Webber2222

@Valuater

Thanks... that worked as smooth as a baby's ass :)

@Confuzzled

I'll take a look into those functions aswell.

Share this post


Link to post
Share on other sites
CyberSlug

If $var = 0 Then
;zeroth stuff
;...
ElseIf $var = 1 Then
;first stuff
;....
ElseIf $var = 2 Then
;second stuff
;....
ElseIf $var = 3 Then
;third stuff
Else
;optional other case
EndIf

Select...Case...EndSelect is also a good choice

Switch...Case...EndSwitch (in beta AutoIt version) is another

Switch $var
Case 0
;zero...
Case 1
;one...
Case 2
;two...
Case 3
;three...
EndSwitch

Edit: Well, the inner blocks should be indented. If you have really long sections of code, you could make the If statement or Case statement call a function like in Valuater's example.

Edited by CyberSlug

Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.